1 /******************************************************************************
2  * @file     window_functions.h
3  * @brief    Public header file for CMSIS DSP Library
4  * @version  v1.15.0
5  * @date     15 December 2022
6  * Target Processor: Cortex-M and Cortex-A cores
7  ******************************************************************************/
8 /*
9  * Copyright (c) 2010-2022 Arm Limited or its affiliates. All rights reserved.
10  *
11  * SPDX-License-Identifier: Apache-2.0
12  *
13  * Licensed under the Apache License, Version 2.0 (the License); you may
14  * not use this file except in compliance with the License.
15  * You may obtain a copy of the License at
16  *
17  * www.apache.org/licenses/LICENSE-2.0
18  *
19  * Unless required by applicable law or agreed to in writing, software
20  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
21  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22  * See the License for the specific language governing permissions and
23  * limitations under the License.
24  */
25 
26 
27 #ifndef WINDOW_FUNCTIONS_H_
28 #define WINDOW_FUNCTIONS_H_
29 
30 #include "arm_math_types.h"
31 #include "arm_math_memory.h"
32 
33 #include "dsp/none.h"
34 #include "dsp/utils.h"
35 
36 
37 #ifdef   __cplusplus
38 extern "C"
39 {
40 #endif
41 
42 /**
43  * @defgroup groupWindow Window Functions
44  */
45 
46  /**
47    * @brief Welch window (double).
48    * @param[out] pDst       points to the output generated window
49    * @param[in]  blockSize  number of samples in the window
50    *
51    * @par Parameters of the window
52    *
53    * | Parameter                             | Value              |
54    * | ------------------------------------: | -----------------: |
55    * | Peak sidelobe level                   |           21.3 dB  |
56    * | Normalized equivalent noise bandwidth |          1.2 bins  |
57    * | Flatness                              |        -2.2248 dB  |
58    * | Recommended overlap                   |            29.3 %  |
59    *
60    */
61   void arm_welch_f64(
62         float64_t * pDst,
63         uint32_t blockSize);
64 
65  /**
66    * @brief Welch window (float).
67    * @param[out] pDst       points to the output generated window
68    * @param[in]  blockSize  number of samples in the window
69    *
70    * @par Parameters of the window
71    *
72    * | Parameter                             | Value              |
73    * | ------------------------------------: | -----------------: |
74    * | Peak sidelobe level                   |           21.3 dB  |
75    * | Normalized equivalent noise bandwidth |          1.2 bins  |
76    * | Flatness                              |        -2.2248 dB  |
77    * | Recommended overlap                   |            29.3 %  |
78    *
79    *
80    */
81   void arm_welch_f32(
82         float32_t * pDst,
83         uint32_t blockSize);
84  /**
85    * @brief Bartlett window (double).
86    * @param[out] pDst       points to the output generated window
87    * @param[in]  blockSize  number of samples in the window
88    *
89    * @par Parameters of the window
90    *
91    * | Parameter                             | Value              |
92    * | ------------------------------------: | -----------------: |
93    * | Peak sidelobe level                   |           26.5 dB  |
94    * | Normalized equivalent noise bandwidth |       1.3333 bins  |
95    * | Flatness                              |        -1.8242 dB  |
96    * | Recommended overlap                   |            50.0 %  |
97    *
98    */
99   void arm_bartlett_f64(
100         float64_t * pDst,
101         uint32_t blockSize);
102 
103  /**
104    * @brief Bartlett window (float).
105    * @param[out] pDst       points to the output generated window
106    * @param[in]  blockSize  number of samples in the window
107    *
108    * @par Parameters of the window
109    *
110    * | Parameter                             | Value              |
111    * | ------------------------------------: | -----------------: |
112    * | Peak sidelobe level                   |           26.5 dB  |
113    * | Normalized equivalent noise bandwidth |       1.3333 bins  |
114    * | Flatness                              |        -1.8242 dB  |
115    * | Recommended overlap                   |            50.0 %  |
116    *
117    *
118    */
119   void arm_bartlett_f32(
120         float32_t * pDst,
121         uint32_t blockSize);
122  /**
123    * @brief Hamming window (double).
124    * @param[out] pDst       points to the output generated window
125    * @param[in]  blockSize  number of samples in the window
126    *
127    * @par Parameters of the window
128    *
129    * | Parameter                             | Value              |
130    * | ------------------------------------: | -----------------: |
131    * | Peak sidelobe level                   |           42.7 dB  |
132    * | Normalized equivalent noise bandwidth |       1.3628 bins  |
133    * | Flatness                              |        -1.7514 dB  |
134    * | Recommended overlap                   |              50 %  |
135    *
136    */
137   void arm_hamming_f64(
138         float64_t * pDst,
139         uint32_t blockSize);
140 
141  /**
142    * @brief Hamming window (float).
143    * @param[out] pDst       points to the output generated window
144    * @param[in]  blockSize  number of samples in the window
145    *
146    * @par Parameters of the window
147    *
148    * | Parameter                             | Value              |
149    * | ------------------------------------: | -----------------: |
150    * | Peak sidelobe level                   |           42.7 dB  |
151    * | Normalized equivalent noise bandwidth |       1.3628 bins  |
152    * | Flatness                              |        -1.7514 dB  |
153    * | Recommended overlap                   |              50 %  |
154    *
155    *
156    */
157   void arm_hamming_f32(
158         float32_t * pDst,
159         uint32_t blockSize);
160  /**
161    * @brief Hanning window (double).
162    * @param[out] pDst       points to the output generated window
163    * @param[in]  blockSize  number of samples in the window
164    *
165    * @par Parameters of the window
166    *
167    * | Parameter                             | Value              |
168    * | ------------------------------------: | -----------------: |
169    * | Peak sidelobe level                   |           31.5 dB  |
170    * | Normalized equivalent noise bandwidth |          1.5 bins  |
171    * | Flatness                              |        -1.4236 dB  |
172    * | Recommended overlap                   |              50 %  |
173    *
174    */
175   void arm_hanning_f64(
176         float64_t * pDst,
177         uint32_t blockSize);
178 
179  /**
180    * @brief Hanning window (float).
181    * @param[out] pDst       points to the output generated window
182    * @param[in]  blockSize  number of samples in the window
183    *
184    * @par Parameters of the window
185    *
186    * | Parameter                             | Value              |
187    * | ------------------------------------: | -----------------: |
188    * | Peak sidelobe level                   |           31.5 dB  |
189    * | Normalized equivalent noise bandwidth |          1.5 bins  |
190    * | Flatness                              |        -1.4236 dB  |
191    * | Recommended overlap                   |              50 %  |
192    *
193    *
194    */
195   void arm_hanning_f32(
196         float32_t * pDst,
197         uint32_t blockSize);
198  /**
199    * @brief Nuttall3 window (double).
200    * @param[out] pDst       points to the output generated window
201    * @param[in]  blockSize  number of samples in the window
202    *
203    * @par Parameters of the window
204    *
205    * | Parameter                             | Value              |
206    * | ------------------------------------: | -----------------: |
207    * | Peak sidelobe level                   |           46.7 dB  |
208    * | Normalized equivalent noise bandwidth |       1.9444 bins  |
209    * | Flatness                              |         -0.863 dB  |
210    * | Recommended overlap                   |            64.7 %  |
211    *
212    */
213   void arm_nuttall3_f64(
214         float64_t * pDst,
215         uint32_t blockSize);
216 
217  /**
218    * @brief Nuttall3 window (float).
219    * @param[out] pDst       points to the output generated window
220    * @param[in]  blockSize  number of samples in the window
221    *
222    * @par Parameters of the window
223    *
224    * | Parameter                             | Value              |
225    * | ------------------------------------: | -----------------: |
226    * | Peak sidelobe level                   |           46.7 dB  |
227    * | Normalized equivalent noise bandwidth |       1.9444 bins  |
228    * | Flatness                              |         -0.863 dB  |
229    * | Recommended overlap                   |            64.7 %  |
230    *
231    *
232    */
233   void arm_nuttall3_f32(
234         float32_t * pDst,
235         uint32_t blockSize);
236  /**
237    * @brief Nuttall4 window (double).
238    * @param[out] pDst       points to the output generated window
239    * @param[in]  blockSize  number of samples in the window
240    *
241    * @par Parameters of the window
242    *
243    * | Parameter                             | Value              |
244    * | ------------------------------------: | -----------------: |
245    * | Peak sidelobe level                   |           60.9 dB  |
246    * | Normalized equivalent noise bandwidth |         2.31 bins  |
247    * | Flatness                              |        -0.6184 dB  |
248    * | Recommended overlap                   |            70.5 %  |
249    *
250    */
251   void arm_nuttall4_f64(
252         float64_t * pDst,
253         uint32_t blockSize);
254 
255  /**
256    * @brief Nuttall4 window (float).
257    * @param[out] pDst       points to the output generated window
258    * @param[in]  blockSize  number of samples in the window
259    *
260    * @par Parameters of the window
261    *
262    * | Parameter                             | Value              |
263    * | ------------------------------------: | -----------------: |
264    * | Peak sidelobe level                   |           60.9 dB  |
265    * | Normalized equivalent noise bandwidth |         2.31 bins  |
266    * | Flatness                              |        -0.6184 dB  |
267    * | Recommended overlap                   |            70.5 %  |
268    *
269    *
270    */
271   void arm_nuttall4_f32(
272         float32_t * pDst,
273         uint32_t blockSize);
274  /**
275    * @brief Nuttall3a window (double).
276    * @param[out] pDst       points to the output generated window
277    * @param[in]  blockSize  number of samples in the window
278    *
279    * @par Parameters of the window
280    *
281    * | Parameter                             | Value              |
282    * | ------------------------------------: | -----------------: |
283    * | Peak sidelobe level                   |           64.2 dB  |
284    * | Normalized equivalent noise bandwidth |       1.7721 bins  |
285    * | Flatness                              |        -1.0453 dB  |
286    * | Recommended overlap                   |            61.2 %  |
287    *
288    */
289   void arm_nuttall3a_f64(
290         float64_t * pDst,
291         uint32_t blockSize);
292 
293  /**
294    * @brief Nuttall3a window (float).
295    * @param[out] pDst       points to the output generated window
296    * @param[in]  blockSize  number of samples in the window
297    *
298    * @par Parameters of the window
299    *
300    * | Parameter                             | Value              |
301    * | ------------------------------------: | -----------------: |
302    * | Peak sidelobe level                   |           64.2 dB  |
303    * | Normalized equivalent noise bandwidth |       1.7721 bins  |
304    * | Flatness                              |        -1.0453 dB  |
305    * | Recommended overlap                   |            61.2 %  |
306    *
307    *
308    */
309   void arm_nuttall3a_f32(
310         float32_t * pDst,
311         uint32_t blockSize);
312  /**
313    * @brief Nuttall3b window (double).
314    * @param[out] pDst       points to the output generated window
315    * @param[in]  blockSize  number of samples in the window
316    *
317    * @par Parameters of the window
318    *
319    * | Parameter                             | Value              |
320    * | ------------------------------------: | -----------------: |
321    * | Peak sidelobe level                   |           71.5 dB  |
322    * | Normalized equivalent noise bandwidth |       1.7037 bins  |
323    * | Flatness                              |        -1.1352 dB  |
324    * | Recommended overlap                   |            59.8 %  |
325    *
326    */
327   void arm_nuttall3b_f64(
328         float64_t * pDst,
329         uint32_t blockSize);
330 
331  /**
332    * @brief Nuttall3b window (float).
333    * @param[out] pDst       points to the output generated window
334    * @param[in]  blockSize  number of samples in the window
335    *
336    * @par Parameters of the window
337    *
338    * | Parameter                             | Value              |
339    * | ------------------------------------: | -----------------: |
340    * | Peak sidelobe level                   |           71.5 dB  |
341    * | Normalized equivalent noise bandwidth |       1.7037 bins  |
342    * | Flatness                              |        -1.1352 dB  |
343    * | Recommended overlap                   |            59.8 %  |
344    *
345    *
346    */
347   void arm_nuttall3b_f32(
348         float32_t * pDst,
349         uint32_t blockSize);
350  /**
351    * @brief Nuttall4a window (double).
352    * @param[out] pDst       points to the output generated window
353    * @param[in]  blockSize  number of samples in the window
354    *
355    * @par Parameters of the window
356    *
357    * | Parameter                             | Value              |
358    * | ------------------------------------: | -----------------: |
359    * | Peak sidelobe level                   |           82.6 dB  |
360    * | Normalized equivalent noise bandwidth |       2.1253 bins  |
361    * | Flatness                              |        -0.7321 dB  |
362    * | Recommended overlap                   |            68.0 %  |
363    *
364    */
365   void arm_nuttall4a_f64(
366         float64_t * pDst,
367         uint32_t blockSize);
368 
369  /**
370    * @brief Nuttall4a window (float).
371    * @param[out] pDst       points to the output generated window
372    * @param[in]  blockSize  number of samples in the window
373    *
374    * @par Parameters of the window
375    *
376    * | Parameter                             | Value              |
377    * | ------------------------------------: | -----------------: |
378    * | Peak sidelobe level                   |           82.6 dB  |
379    * | Normalized equivalent noise bandwidth |       2.1253 bins  |
380    * | Flatness                              |        -0.7321 dB  |
381    * | Recommended overlap                   |            68.0 %  |
382    *
383    *
384    */
385   void arm_nuttall4a_f32(
386         float32_t * pDst,
387         uint32_t blockSize);
388  /**
389    * @brief 92 db blackman harris window (double).
390    * @param[out] pDst       points to the output generated window
391    * @param[in]  blockSize  number of samples in the window
392    *
393    * @par Parameters of the window
394    *
395    * | Parameter                             | Value              |
396    * | ------------------------------------: | -----------------: |
397    * | Peak sidelobe level                   |           92.0 dB  |
398    * | Normalized equivalent noise bandwidth |       2.0044 bins  |
399    * | Flatness                              |        -0.8256 dB  |
400    * | Recommended overlap                   |            66.1 %  |
401    *
402    */
403   void arm_blackman_harris_92db_f64(
404         float64_t * pDst,
405         uint32_t blockSize);
406 
407  /**
408    * @brief 92 db blackman harris window (float).
409    * @param[out] pDst       points to the output generated window
410    * @param[in]  blockSize  number of samples in the window
411    *
412    * @par Parameters of the window
413    *
414    * | Parameter                             | Value              |
415    * | ------------------------------------: | -----------------: |
416    * | Peak sidelobe level                   |           92.0 dB  |
417    * | Normalized equivalent noise bandwidth |       2.0044 bins  |
418    * | Flatness                              |        -0.8256 dB  |
419    * | Recommended overlap                   |            66.1 %  |
420    *
421    *
422    */
423   void arm_blackman_harris_92db_f32(
424         float32_t * pDst,
425         uint32_t blockSize);
426  /**
427    * @brief Nuttall4b window (double).
428    * @param[out] pDst       points to the output generated window
429    * @param[in]  blockSize  number of samples in the window
430    *
431    * @par Parameters of the window
432    *
433    * | Parameter                             | Value              |
434    * | ------------------------------------: | -----------------: |
435    * | Peak sidelobe level                   |           93.3 dB  |
436    * | Normalized equivalent noise bandwidth |       2.0212 bins  |
437    * | Flatness                              |        -0.8118 dB  |
438    * | Recommended overlap                   |            66.3 %  |
439    *
440    */
441   void arm_nuttall4b_f64(
442         float64_t * pDst,
443         uint32_t blockSize);
444 
445  /**
446    * @brief Nuttall4b window (float).
447    * @param[out] pDst       points to the output generated window
448    * @param[in]  blockSize  number of samples in the window
449    *
450    * @par Parameters of the window
451    *
452    * | Parameter                             | Value              |
453    * | ------------------------------------: | -----------------: |
454    * | Peak sidelobe level                   |           93.3 dB  |
455    * | Normalized equivalent noise bandwidth |       2.0212 bins  |
456    * | Flatness                              |        -0.8118 dB  |
457    * | Recommended overlap                   |            66.3 %  |
458    *
459    *
460    */
461   void arm_nuttall4b_f32(
462         float32_t * pDst,
463         uint32_t blockSize);
464  /**
465    * @brief Nuttall4c window (double).
466    * @param[out] pDst       points to the output generated window
467    * @param[in]  blockSize  number of samples in the window
468    *
469    * @par Parameters of the window
470    *
471    * | Parameter                             | Value              |
472    * | ------------------------------------: | -----------------: |
473    * | Peak sidelobe level                   |           98.1 dB  |
474    * | Normalized equivalent noise bandwidth |       1.9761 bins  |
475    * | Flatness                              |        -0.8506 dB  |
476    * | Recommended overlap                   |            65.6 %  |
477    *
478    */
479   void arm_nuttall4c_f64(
480         float64_t * pDst,
481         uint32_t blockSize);
482 
483  /**
484    * @brief Nuttall4c window (float).
485    * @param[out] pDst       points to the output generated window
486    * @param[in]  blockSize  number of samples in the window
487    *
488    * @par Parameters of the window
489    *
490    * | Parameter                             | Value              |
491    * | ------------------------------------: | -----------------: |
492    * | Peak sidelobe level                   |           98.1 dB  |
493    * | Normalized equivalent noise bandwidth |       1.9761 bins  |
494    * | Flatness                              |        -0.8506 dB  |
495    * | Recommended overlap                   |            65.6 %  |
496    *
497    *
498    */
499   void arm_nuttall4c_f32(
500         float32_t * pDst,
501         uint32_t blockSize);
502  /**
503    * @brief Hft90d window (double).
504    * @param[out] pDst       points to the output generated window
505    * @param[in]  blockSize  number of samples in the window
506    *
507    * @par Parameters of the window
508    *
509    * | Parameter                             | Value              |
510    * | ------------------------------------: | -----------------: |
511    * | Peak sidelobe level                   |           90.2 dB  |
512    * | Normalized equivalent noise bandwidth |       3.8832 bins  |
513    * | Flatness                              |        -0.0039 dB  |
514    * | Recommended overlap                   |            76.0 %  |
515    *
516    */
517   void arm_hft90d_f64(
518         float64_t * pDst,
519         uint32_t blockSize);
520 
521  /**
522    * @brief Hft90d window (float).
523    * @param[out] pDst       points to the output generated window
524    * @param[in]  blockSize  number of samples in the window
525    *
526    * @par Parameters of the window
527    *
528    * | Parameter                             | Value              |
529    * | ------------------------------------: | -----------------: |
530    * | Peak sidelobe level                   |           90.2 dB  |
531    * | Normalized equivalent noise bandwidth |       3.8832 bins  |
532    * | Flatness                              |        -0.0039 dB  |
533    * | Recommended overlap                   |            76.0 %  |
534    *
535    *
536    */
537   void arm_hft90d_f32(
538         float32_t * pDst,
539         uint32_t blockSize);
540  /**
541    * @brief Hft95 window (double).
542    * @param[out] pDst       points to the output generated window
543    * @param[in]  blockSize  number of samples in the window
544    *
545    * @par Parameters of the window
546    *
547    * | Parameter                             | Value              |
548    * | ------------------------------------: | -----------------: |
549    * | Peak sidelobe level                   |           95.0 dB  |
550    * | Normalized equivalent noise bandwidth |       3.8112 bins  |
551    * | Flatness                              |         0.0044 dB  |
552    * | Recommended overlap                   |            75.6 %  |
553    *
554    */
555   void arm_hft95_f64(
556         float64_t * pDst,
557         uint32_t blockSize);
558 
559  /**
560    * @brief Hft95 window (float).
561    * @param[out] pDst       points to the output generated window
562    * @param[in]  blockSize  number of samples in the window
563    *
564    * @par Parameters of the window
565    *
566    * | Parameter                             | Value              |
567    * | ------------------------------------: | -----------------: |
568    * | Peak sidelobe level                   |           95.0 dB  |
569    * | Normalized equivalent noise bandwidth |       3.8112 bins  |
570    * | Flatness                              |         0.0044 dB  |
571    * | Recommended overlap                   |            75.6 %  |
572    *
573    *
574    */
575   void arm_hft95_f32(
576         float32_t * pDst,
577         uint32_t blockSize);
578  /**
579    * @brief Hft116d window (double).
580    * @param[out] pDst       points to the output generated window
581    * @param[in]  blockSize  number of samples in the window
582    *
583    * @par Parameters of the window
584    *
585    * | Parameter                             | Value              |
586    * | ------------------------------------: | -----------------: |
587    * | Peak sidelobe level                   |          116.8 dB  |
588    * | Normalized equivalent noise bandwidth |       4.2186 bins  |
589    * | Flatness                              |        -0.0028 dB  |
590    * | Recommended overlap                   |            78.2 %  |
591    *
592    */
593   void arm_hft116d_f64(
594         float64_t * pDst,
595         uint32_t blockSize);
596 
597  /**
598    * @brief Hft116d window (float).
599    * @param[out] pDst       points to the output generated window
600    * @param[in]  blockSize  number of samples in the window
601    *
602    * @par Parameters of the window
603    *
604    * | Parameter                             | Value              |
605    * | ------------------------------------: | -----------------: |
606    * | Peak sidelobe level                   |          116.8 dB  |
607    * | Normalized equivalent noise bandwidth |       4.2186 bins  |
608    * | Flatness                              |        -0.0028 dB  |
609    * | Recommended overlap                   |            78.2 %  |
610    *
611    *
612    */
613   void arm_hft116d_f32(
614         float32_t * pDst,
615         uint32_t blockSize);
616  /**
617    * @brief Hft144d window (double).
618    * @param[out] pDst       points to the output generated window
619    * @param[in]  blockSize  number of samples in the window
620    *
621    * @par Parameters of the window
622    *
623    * | Parameter                             | Value              |
624    * | ------------------------------------: | -----------------: |
625    * | Peak sidelobe level                   |          144.1 dB  |
626    * | Normalized equivalent noise bandwidth |       4.5386 bins  |
627    * | Flatness                              |         0.0021 dB  |
628    * | Recommended overlap                   |            79.9 %  |
629    *
630    */
631   void arm_hft144d_f64(
632         float64_t * pDst,
633         uint32_t blockSize);
634 
635  /**
636    * @brief Hft144d window (float).
637    * @param[out] pDst       points to the output generated window
638    * @param[in]  blockSize  number of samples in the window
639    *
640    * @par Parameters of the window
641    *
642    * | Parameter                             | Value              |
643    * | ------------------------------------: | -----------------: |
644    * | Peak sidelobe level                   |          144.1 dB  |
645    * | Normalized equivalent noise bandwidth |       4.5386 bins  |
646    * | Flatness                              |         0.0021 dB  |
647    * | Recommended overlap                   |            79.9 %  |
648    *
649    *
650    */
651   void arm_hft144d_f32(
652         float32_t * pDst,
653         uint32_t blockSize);
654  /**
655    * @brief Hft169d window (double).
656    * @param[out] pDst       points to the output generated window
657    * @param[in]  blockSize  number of samples in the window
658    *
659    * @par Parameters of the window
660    *
661    * | Parameter                             | Value              |
662    * | ------------------------------------: | -----------------: |
663    * | Peak sidelobe level                   |          169.5 dB  |
664    * | Normalized equivalent noise bandwidth |       4.8347 bins  |
665    * | Flatness                              |         0.0017 dB  |
666    * | Recommended overlap                   |            81.2 %  |
667    *
668    */
669   void arm_hft169d_f64(
670         float64_t * pDst,
671         uint32_t blockSize);
672 
673  /**
674    * @brief Hft169d window (float).
675    * @param[out] pDst       points to the output generated window
676    * @param[in]  blockSize  number of samples in the window
677    *
678    * @par Parameters of the window
679    *
680    * | Parameter                             | Value              |
681    * | ------------------------------------: | -----------------: |
682    * | Peak sidelobe level                   |          169.5 dB  |
683    * | Normalized equivalent noise bandwidth |       4.8347 bins  |
684    * | Flatness                              |         0.0017 dB  |
685    * | Recommended overlap                   |            81.2 %  |
686    *
687    *
688    */
689   void arm_hft169d_f32(
690         float32_t * pDst,
691         uint32_t blockSize);
692  /**
693    * @brief Hft196d window (double).
694    * @param[out] pDst       points to the output generated window
695    * @param[in]  blockSize  number of samples in the window
696    *
697    * @par Parameters of the window
698    *
699    * | Parameter                             | Value              |
700    * | ------------------------------------: | -----------------: |
701    * | Peak sidelobe level                   |          196.2 dB  |
702    * | Normalized equivalent noise bandwidth |       5.1134 bins  |
703    * | Flatness                              |         0.0013 dB  |
704    * | Recommended overlap                   |            82.3 %  |
705    *
706    */
707   void arm_hft196d_f64(
708         float64_t * pDst,
709         uint32_t blockSize);
710 
711  /**
712    * @brief Hft196d window (float).
713    * @param[out] pDst       points to the output generated window
714    * @param[in]  blockSize  number of samples in the window
715    *
716    * @par Parameters of the window
717    *
718    * | Parameter                             | Value              |
719    * | ------------------------------------: | -----------------: |
720    * | Peak sidelobe level                   |          196.2 dB  |
721    * | Normalized equivalent noise bandwidth |       5.1134 bins  |
722    * | Flatness                              |         0.0013 dB  |
723    * | Recommended overlap                   |            82.3 %  |
724    *
725    *
726    */
727   void arm_hft196d_f32(
728         float32_t * pDst,
729         uint32_t blockSize);
730  /**
731    * @brief Hft223d window (double).
732    * @param[out] pDst       points to the output generated window
733    * @param[in]  blockSize  number of samples in the window
734    *
735    * @par Parameters of the window
736    *
737    * | Parameter                             | Value              |
738    * | ------------------------------------: | -----------------: |
739    * | Peak sidelobe level                   |          223.0 dB  |
740    * | Normalized equivalent noise bandwidth |       5.3888 bins  |
741    * | Flatness                              |         0.0011 dB  |
742    * | Recommended overlap                   |            83.3 %  |
743    *
744    */
745   void arm_hft223d_f64(
746         float64_t * pDst,
747         uint32_t blockSize);
748 
749  /**
750    * @brief Hft223d window (float).
751    * @param[out] pDst       points to the output generated window
752    * @param[in]  blockSize  number of samples in the window
753    *
754    * @par Parameters of the window
755    *
756    * | Parameter                             | Value              |
757    * | ------------------------------------: | -----------------: |
758    * | Peak sidelobe level                   |          223.0 dB  |
759    * | Normalized equivalent noise bandwidth |       5.3888 bins  |
760    * | Flatness                              |         0.0011 dB  |
761    * | Recommended overlap                   |            83.3 %  |
762    *
763    *
764    */
765   void arm_hft223d_f32(
766         float32_t * pDst,
767         uint32_t blockSize);
768  /**
769    * @brief Hft248d window (double).
770    * @param[out] pDst       points to the output generated window
771    * @param[in]  blockSize  number of samples in the window
772    *
773    * @par Parameters of the window
774    *
775    * | Parameter                             | Value              |
776    * | ------------------------------------: | -----------------: |
777    * | Peak sidelobe level                   |          248.4 dB  |
778    * | Normalized equivalent noise bandwidth |       5.6512 bins  |
779    * | Flatness                              |         0.0009 dB  |
780    * | Recommended overlap                   |            84.1 %  |
781    *
782    */
783   void arm_hft248d_f64(
784         float64_t * pDst,
785         uint32_t blockSize);
786 
787  /**
788    * @brief Hft248d window (float).
789    * @param[out] pDst       points to the output generated window
790    * @param[in]  blockSize  number of samples in the window
791    *
792    * @par Parameters of the window
793    *
794    * | Parameter                             | Value              |
795    * | ------------------------------------: | -----------------: |
796    * | Peak sidelobe level                   |          248.4 dB  |
797    * | Normalized equivalent noise bandwidth |       5.6512 bins  |
798    * | Flatness                              |         0.0009 dB  |
799    * | Recommended overlap                   |            84.1 %  |
800    *
801    *
802    */
803   void arm_hft248d_f32(
804         float32_t * pDst,
805         uint32_t blockSize);
806 
807 
808 #ifdef   __cplusplus
809 }
810 #endif
811 
812 #endif /* ifndef _BASIC_MATH_FUNCTIONS_H_ */
813