1 #include "TransformRF32.h"
2 #include <stdio.h>
3 #include "Error.h"
4 #include "Test.h"
5 
6 
7 #define SNR_THRESHOLD 120
8 
9 
10 
test_rfft_f32()11     void TransformRF32::test_rfft_f32()
12     {
13        float32_t *inp = input.ptr();
14 
15        float32_t *tmp = inputchanged.ptr();
16 
17        float32_t *outp = outputfft.ptr();
18 
19        memcpy(tmp,inp,sizeof(float32_t)*input.nbSamples());
20 
21         arm_rfft_fast_f32(
22              &this->instRfftF32,
23              tmp,
24              outp,
25              this->ifft);
26 
27         ASSERT_SNR(outputfft,ref,(float32_t)SNR_THRESHOLD);
28         ASSERT_EMPTY_TAIL(outputfft);
29 
30     }
31 
32 
setUp(Testing::testID_t id,std::vector<Testing::param_t> & paramsArgs,Client::PatternMgr * mgr)33     void TransformRF32::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
34     {
35 
36 
37        (void)paramsArgs;
38 
39        switch(id)
40        {
41 
42           case TransformRF32::TEST_RFFT_F32_1:
43 
44             input.reload(TransformRF32::INPUTS_RFFT_NOISY_32_F32_ID,mgr);
45             ref.reload(  TransformRF32::REF_RFFT_NOISY_32_F32_ID,mgr);
46 
47             arm_rfft_fast_init_f32(&this->instRfftF32 ,32);
48 
49             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
50 
51             this->ifft=0;
52 
53           break;
54 
55           case TransformRF32::TEST_RFFT_F32_17:
56 
57             input.reload(TransformRF32::INPUTS_RIFFT_NOISY_32_F32_ID,mgr);
58             ref.reload(  TransformRF32::INPUTS_RFFT_NOISY_32_F32_ID,mgr);
59 
60             arm_rfft_fast_init_f32(&this->instRfftF32 ,32);
61 
62             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
63 
64             this->ifft=1;
65 
66           break;
67 
68           case TransformRF32::TEST_RFFT_F32_2:
69 
70             input.reload(TransformRF32::INPUTS_RFFT_NOISY_64_F32_ID,mgr);
71             ref.reload(  TransformRF32::REF_RFFT_NOISY_64_F32_ID,mgr);
72 
73             arm_rfft_fast_init_f32(&this->instRfftF32 ,64);
74 
75             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
76 
77             this->ifft=0;
78 
79           break;
80 
81           case TransformRF32::TEST_RFFT_F32_18:
82 
83             input.reload(TransformRF32::INPUTS_RIFFT_NOISY_64_F32_ID,mgr);
84             ref.reload(  TransformRF32::INPUTS_RFFT_NOISY_64_F32_ID,mgr);
85 
86             arm_rfft_fast_init_f32(&this->instRfftF32 ,64);
87 
88             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
89 
90             this->ifft=1;
91 
92           break;
93 
94           case TransformRF32::TEST_RFFT_F32_3:
95 
96             input.reload(TransformRF32::INPUTS_RFFT_NOISY_128_F32_ID,mgr);
97             ref.reload(  TransformRF32::REF_RFFT_NOISY_128_F32_ID,mgr);
98 
99             arm_rfft_fast_init_f32(&this->instRfftF32 ,128);
100 
101             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
102 
103             this->ifft=0;
104 
105           break;
106 
107           case TransformRF32::TEST_RFFT_F32_19:
108 
109             input.reload(TransformRF32::INPUTS_RIFFT_NOISY_128_F32_ID,mgr);
110             ref.reload(  TransformRF32::INPUTS_RFFT_NOISY_128_F32_ID,mgr);
111 
112             arm_rfft_fast_init_f32(&this->instRfftF32 ,128);
113 
114             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
115 
116             this->ifft=1;
117 
118           break;
119 
120           case TransformRF32::TEST_RFFT_F32_4:
121 
122             input.reload(TransformRF32::INPUTS_RFFT_NOISY_256_F32_ID,mgr);
123             ref.reload(  TransformRF32::REF_RFFT_NOISY_256_F32_ID,mgr);
124 
125             arm_rfft_fast_init_f32(&this->instRfftF32 ,256);
126 
127             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
128 
129             this->ifft=0;
130 
131           break;
132 
133           case TransformRF32::TEST_RFFT_F32_20:
134 
135             input.reload(TransformRF32::INPUTS_RIFFT_NOISY_256_F32_ID,mgr);
136             ref.reload(  TransformRF32::INPUTS_RFFT_NOISY_256_F32_ID,mgr);
137 
138             arm_rfft_fast_init_f32(&this->instRfftF32 ,256);
139 
140             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
141 
142             this->ifft=1;
143 
144           break;
145 
146           case TransformRF32::TEST_RFFT_F32_5:
147 
148             input.reload(TransformRF32::INPUTS_RFFT_NOISY_512_F32_ID,mgr);
149             ref.reload(  TransformRF32::REF_RFFT_NOISY_512_F32_ID,mgr);
150 
151             arm_rfft_fast_init_f32(&this->instRfftF32 ,512);
152 
153             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
154 
155             this->ifft=0;
156 
157           break;
158 
159           case TransformRF32::TEST_RFFT_F32_21:
160 
161             input.reload(TransformRF32::INPUTS_RIFFT_NOISY_512_F32_ID,mgr);
162             ref.reload(  TransformRF32::INPUTS_RFFT_NOISY_512_F32_ID,mgr);
163 
164             arm_rfft_fast_init_f32(&this->instRfftF32 ,512);
165 
166             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
167 
168             this->ifft=1;
169 
170           break;
171 
172           case TransformRF32::TEST_RFFT_F32_6:
173 
174             input.reload(TransformRF32::INPUTS_RFFT_NOISY_1024_F32_ID,mgr);
175             ref.reload(  TransformRF32::REF_RFFT_NOISY_1024_F32_ID,mgr);
176 
177             arm_rfft_fast_init_f32(&this->instRfftF32 ,1024);
178 
179             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
180 
181             this->ifft=0;
182 
183           break;
184 
185           case TransformRF32::TEST_RFFT_F32_22:
186 
187             input.reload(TransformRF32::INPUTS_RIFFT_NOISY_1024_F32_ID,mgr);
188             ref.reload(  TransformRF32::INPUTS_RFFT_NOISY_1024_F32_ID,mgr);
189 
190             arm_rfft_fast_init_f32(&this->instRfftF32 ,1024);
191 
192             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
193 
194             this->ifft=1;
195 
196           break;
197 
198           case TransformRF32::TEST_RFFT_F32_7:
199 
200             input.reload(TransformRF32::INPUTS_RFFT_NOISY_2048_F32_ID,mgr);
201             ref.reload(  TransformRF32::REF_RFFT_NOISY_2048_F32_ID,mgr);
202 
203             arm_rfft_fast_init_f32(&this->instRfftF32 ,2048);
204 
205             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
206 
207             this->ifft=0;
208 
209           break;
210 
211           case TransformRF32::TEST_RFFT_F32_23:
212 
213             input.reload(TransformRF32::INPUTS_RIFFT_NOISY_2048_F32_ID,mgr);
214             ref.reload(  TransformRF32::INPUTS_RFFT_NOISY_2048_F32_ID,mgr);
215 
216             arm_rfft_fast_init_f32(&this->instRfftF32 ,2048);
217 
218             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
219 
220             this->ifft=1;
221 
222           break;
223 
224           case TransformRF32::TEST_RFFT_F32_8:
225 
226             input.reload(TransformRF32::INPUTS_RFFT_NOISY_4096_F32_ID,mgr);
227             ref.reload(  TransformRF32::REF_RFFT_NOISY_4096_F32_ID,mgr);
228 
229             arm_rfft_fast_init_f32(&this->instRfftF32 ,4096);
230 
231             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
232 
233             this->ifft=0;
234 
235           break;
236 
237           case TransformRF32::TEST_RFFT_F32_24:
238 
239             input.reload(TransformRF32::INPUTS_RIFFT_NOISY_4096_F32_ID,mgr);
240             ref.reload(  TransformRF32::INPUTS_RFFT_NOISY_4096_F32_ID,mgr);
241 
242             arm_rfft_fast_init_f32(&this->instRfftF32 ,4096);
243 
244             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
245 
246             this->ifft=1;
247 
248           break;
249 
250           /* STEP FUNCTIONS */
251 
252           case TransformRF32::TEST_RFFT_F32_9:
253 
254             input.reload(TransformRF32::INPUTS_RFFT_STEP_32_F32_ID,mgr);
255             ref.reload(  TransformRF32::REF_RFFT_STEP_32_F32_ID,mgr);
256 
257             arm_rfft_fast_init_f32(&this->instRfftF32 ,32);
258 
259             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
260 
261             this->ifft=0;
262 
263           break;
264 
265           case TransformRF32::TEST_RFFT_F32_25:
266 
267             input.reload(TransformRF32::INPUTS_RIFFT_STEP_32_F32_ID,mgr);
268             ref.reload(  TransformRF32::INPUTS_RFFT_STEP_32_F32_ID,mgr);
269 
270             arm_rfft_fast_init_f32(&this->instRfftF32 ,32);
271 
272             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
273 
274             this->ifft=1;
275 
276           break;
277 
278           case TransformRF32::TEST_RFFT_F32_10:
279 
280             input.reload(TransformRF32::INPUTS_RFFT_STEP_64_F32_ID,mgr);
281             ref.reload(  TransformRF32::REF_RFFT_STEP_64_F32_ID,mgr);
282 
283             arm_rfft_fast_init_f32(&this->instRfftF32 ,64);
284 
285             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
286 
287             this->ifft=0;
288 
289           break;
290 
291           case TransformRF32::TEST_RFFT_F32_26:
292 
293             input.reload(TransformRF32::INPUTS_RIFFT_STEP_64_F32_ID,mgr);
294             ref.reload(  TransformRF32::INPUTS_RFFT_STEP_64_F32_ID,mgr);
295 
296             arm_rfft_fast_init_f32(&this->instRfftF32 ,64);
297 
298             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
299 
300             this->ifft=1;
301 
302           break;
303 
304           case TransformRF32::TEST_RFFT_F32_11:
305 
306             input.reload(TransformRF32::INPUTS_RFFT_STEP_128_F32_ID,mgr);
307             ref.reload(  TransformRF32::REF_RFFT_STEP_128_F32_ID,mgr);
308 
309             arm_rfft_fast_init_f32(&this->instRfftF32 ,128);
310 
311             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
312             this->ifft=0;
313 
314           break;
315 
316           case TransformRF32::TEST_RFFT_F32_27:
317 
318             input.reload(TransformRF32::INPUTS_RIFFT_STEP_128_F32_ID,mgr);
319             ref.reload(  TransformRF32::INPUTS_RFFT_STEP_128_F32_ID,mgr);
320 
321             arm_rfft_fast_init_f32(&this->instRfftF32 ,128);
322 
323             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
324 
325             this->ifft=1;
326 
327           break;
328 
329           case TransformRF32::TEST_RFFT_F32_12:
330 
331             input.reload(TransformRF32::INPUTS_RFFT_STEP_256_F32_ID,mgr);
332             ref.reload(  TransformRF32::REF_RFFT_STEP_256_F32_ID,mgr);
333 
334             arm_rfft_fast_init_f32(&this->instRfftF32 ,256);
335 
336             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
337 
338             this->ifft=0;
339 
340           break;
341 
342           case TransformRF32::TEST_RFFT_F32_28:
343 
344             input.reload(TransformRF32::INPUTS_RIFFT_STEP_256_F32_ID,mgr);
345             ref.reload(  TransformRF32::INPUTS_RFFT_STEP_256_F32_ID,mgr);
346 
347             arm_rfft_fast_init_f32(&this->instRfftF32 ,256);
348 
349             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
350 
351             this->ifft=1;
352 
353           break;
354 
355           case TransformRF32::TEST_RFFT_F32_13:
356 
357             input.reload(TransformRF32::INPUTS_RFFT_STEP_512_F32_ID,mgr);
358             ref.reload(  TransformRF32::REF_RFFT_STEP_512_F32_ID,mgr);
359 
360             arm_rfft_fast_init_f32(&this->instRfftF32 ,512);
361 
362             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
363 
364             this->ifft=0;
365 
366           break;
367 
368           case TransformRF32::TEST_RFFT_F32_29:
369 
370             input.reload(TransformRF32::INPUTS_RIFFT_STEP_512_F32_ID,mgr);
371             ref.reload(  TransformRF32::INPUTS_RFFT_STEP_512_F32_ID,mgr);
372 
373             arm_rfft_fast_init_f32(&this->instRfftF32 ,512);
374 
375             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
376 
377             this->ifft=1;
378 
379           break;
380 
381           case TransformRF32::TEST_RFFT_F32_14:
382 
383             input.reload(TransformRF32::INPUTS_RFFT_STEP_1024_F32_ID,mgr);
384             ref.reload(  TransformRF32::REF_RFFT_STEP_1024_F32_ID,mgr);
385 
386             arm_rfft_fast_init_f32(&this->instRfftF32 ,1024);
387 
388             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
389 
390             this->ifft=0;
391 
392           break;
393 
394           case TransformRF32::TEST_RFFT_F32_30:
395 
396             input.reload(TransformRF32::INPUTS_RIFFT_STEP_1024_F32_ID,mgr);
397             ref.reload(  TransformRF32::INPUTS_RFFT_STEP_1024_F32_ID,mgr);
398 
399             arm_rfft_fast_init_f32(&this->instRfftF32 ,1024);
400 
401             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
402 
403             this->ifft=1;
404 
405           break;
406 
407           case TransformRF32::TEST_RFFT_F32_15:
408 
409             input.reload(TransformRF32::INPUTS_RFFT_STEP_2048_F32_ID,mgr);
410             ref.reload(  TransformRF32::REF_RFFT_STEP_2048_F32_ID,mgr);
411 
412             arm_rfft_fast_init_f32(&this->instRfftF32 ,2048);
413 
414             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
415 
416             this->ifft=0;
417 
418           break;
419 
420           case TransformRF32::TEST_RFFT_F32_31:
421 
422             input.reload(TransformRF32::INPUTS_RIFFT_STEP_2048_F32_ID,mgr);
423             ref.reload(  TransformRF32::INPUTS_RFFT_STEP_2048_F32_ID,mgr);
424 
425             arm_rfft_fast_init_f32(&this->instRfftF32 ,2048);
426 
427             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
428 
429             this->ifft=1;
430 
431           break;
432 
433           case TransformRF32::TEST_RFFT_F32_16:
434 
435             input.reload(TransformRF32::INPUTS_RFFT_STEP_4096_F32_ID,mgr);
436             ref.reload(  TransformRF32::REF_RFFT_STEP_4096_F32_ID,mgr);
437 
438             arm_rfft_fast_init_f32(&this->instRfftF32 ,4096);
439 
440             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
441 
442             this->ifft=0;
443 
444           break;
445 
446           case TransformRF32::TEST_RFFT_F32_32:
447 
448             input.reload(TransformRF32::INPUTS_RIFFT_STEP_4096_F32_ID,mgr);
449             ref.reload(  TransformRF32::INPUTS_RFFT_STEP_4096_F32_ID,mgr);
450 
451             arm_rfft_fast_init_f32(&this->instRfftF32 ,4096);
452 
453             inputchanged.create(input.nbSamples(),TransformRF32::TEMP_F32_ID,mgr);
454 
455             this->ifft=1;
456 
457           break;
458 
459 
460 
461        }
462 
463 
464       outputfft.create(ref.nbSamples(),TransformRF32::OUTPUT_RFFT_F32_ID,mgr);
465 
466 
467     }
468 
tearDown(Testing::testID_t id,Client::PatternMgr * mgr)469     void TransformRF32::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
470     {
471         (void)id;
472         outputfft.dump(mgr);
473     }
474