?? fft.h
字號:
/*===================================================================
File name : FFT.H
Originator : Digital Control Systems Group
Texas Instruments
Description:
Header file containing object definitions, proto type declaration and
default object initializers for FFT modules.
===================================================================
History:
-------------------------------------------------------------------
20-3-2000 Release Rev 1.0
--------------------------------------------------------------------*/
#ifndef __FFT_H__
#define __FFT_H__
#define NULL 0
typedef struct {
int *ipcbptr;
int *magptr;
int peakmag;
int peakfrq;
int normflag;
int size;
int *winptr;
void (*init)(void);
void (*izero)(void *);
void (*calc)(void *);
void (*mag)(void *);
void (*win)(void *);
}FFT128C;
#define FFT256C FFT128C
#define FFT512C FFT128C
typedef FFT128C *FFT128C_handle;
typedef FFT256C *FFT256C_handle;
typedef FFT512C *FFT512C_handle;
typedef struct {
int *ipcbptr;
int *magptr;
int peakmag;
int peakfrq;
int normflag;
int size;
int *winptr;
void (*init1)(void);
void (*init2)(void);
void (*calc)(void *);
void (*split)(void *);
void (*mag)(void *);
void (*win)(void *);
}FFT128R;
#define FFT256R FFT128R
#define FFT512R FFT128R
typedef FFT128R *FFT128R_handle;
typedef FFT256R *FFT256R_handle;
typedef FFT512R *FFT512R_handle;
typedef struct {
int acqflag;
int count;
int size;
int input;
int *tempptr;
int *buffptr;
void (*update)(void *);
}FFTCACQ;
typedef struct {
int acqflag;
int count;
int size;
int input;
int *tempptr;
int *buffptr;
void (*update)(void *);
}FFTRACQ;
#define FFT128C_DEFAULTS { (int *)NULL,\
(int *)NULL,\
0,\
0,\
0,\
128,\
(int *)NULL,\
(void (*)(void ))FFT128C_init,\
(void (*)(void *))FFTC_izero,\
(void (*)(void *))FFT128C_calc,\
(void (*)(void *))FFTC_mag,\
(void (*)(void *))FFTC_win}
#define FFT256C_DEFAULTS { (int *)NULL,\
(int *)NULL,\
0,\
0,\
0,\
256,\
(int *)NULL,\
(void (*)(void ))FFT256C_init,\
(void (*)(void *))FFTC_izero,\
(void (*)(void *))FFT256C_calc,\
(void (*)(void *))FFTC_mag,\
(void (*)(void *))FFTC_win}
#define FFT512C_DEFAULTS { (int *)NULL,\
(int *)NULL,\
0,\
0,\
0,\
512,\
(int *)NULL,\
(void (*)(void ))FFT512C_init,\
(void (*)(void *))FFTC_izero,\
(void (*)(void *))FFT512C_calc,\
(void (*)(void *))FFTC_mag,\
(void (*)(void *))FFTC_win}
#define FFT128R_DEFAULTS { (int *)NULL,\
(int *)NULL,\
0,\
0,\
0,\
64,\
(int *)NULL,\
(void (*)(void ))FFT64C_init,\
(void (*)(void ))FFT128R_init,\
(void (*)(void *))FFT64C_calc,\
(void (*)(void *))FFT128R_split,\
(void (*)(void *))FFTR_mag,\
(void (*)(void *))FFTR_win}
#define FFT256R_DEFAULTS { (int *)NULL,\
(int *)NULL,\
0,\
0,\
0,\
128,\
(int *)NULL,\
(void (*)(void ))FFT128C_init,\
(void (*)(void ))FFT256R_init,\
(void (*)(void *))FFT128C_calc,\
(void (*)(void *))FFT256R_split,\
(void (*)(void *))FFTR_mag,\
(void (*)(void *))FFTR_win}
#define FFT512R_DEFAULTS { (int *)NULL,\
(int *)NULL,\
0,\
0,\
0,\
256,\
(int *)NULL,\
(void (*)(void ))FFT256C_init,\
(void (*)(void ))FFT512R_init,\
(void (*)(void *))FFT256C_calc,\
(void (*)(void *))FFT512R_split,\
(void (*)(void *))FFTR_mag,\
(void (*)(void *))FFTR_win}
#define FFTRACQ_DEFAULTS { 1,\
0,\
0,\
0,\
(int *)NULL,\
(int *)NULL,\
(void (*)(void *))FFTR_acq}
#define FFTCACQ_DEFAULTS { 1,\
0,\
0,\
0,\
(int *)NULL,\
(int *)NULL,\
(void (*)(void *))FFTC_acq}
/*-------------------------------------------------------------
Prototypes for the functions
---------------------------------------------------------------*/
void FFTC_acq(void *);
void FFTC_izero(void *);
void FFTC_win(void *);
void FFTC_mag(void *);
void FFT64C_init(void);
void FFT128C_init(void);
void FFT256C_init(void);
void FFT512C_init(void);
void FFT64C_calc(void *);
void FFT128C_calc(void *);
void FFT256C_calc(void *);
void FFT512C_calc(void *);
void FFTC_brev1(int *src, int *dst, int size);
void FFTC_brev2(int *src, int *dst, int size);
void FFT128R_init(void );
void FFT256R_init(void );
void FFT512R_init(void );
void FFT128R_split(void *);
void FFT256R_split(void *);
void FFT512R_split(void *);
void FFTR_win(void *);
void FFTR_mag(void *);
void FFTR_brev(int *src, int *dst, int size);
void FFTR_acq(void *);
#define HAMMING128 {\
2621,2640,2695,2787,2916,3080,3281,3516,3787,4091,\
4429,4799,5201,5633,6095,6585,7102,7646,8214,8805,\
9418,10051,10703,11371,12056,12754,13464,14185,14914,15650,\
16391,17136,17881,18626,19369,20108,20841,21566,22282,22986,\
23678,24354,25015,25658,26281,26883,27463,28019,28549,29053,\
29529,29976,30393,30780,31134,31455,31742,31995,32213,32396,\
32543,32653,32727,32763}
#define HAMMING256{\
2621,2626,2640,2663,2695,2736,2786,2845,2913,2991,\
3077,3172,3276,3388,3509,3639,3778,3925,4080,4243,\
4415,4595,4782,4978,5181,5392,5610,5836,6069,6309,\
6555,6809,7069,7336,7609,7888,8173,8464,8760,9062,\
9369,9681,9998,10319,10646,10976,11310,11649,11991,12336,\
12685,13037,13391,13749,14108,14470,14834,15199,15566,15935,\
16304,16674,17045,17416,17788,18159,18530,18900,19270,19639,\
20007,20373,20738,21101,21461,21820,22176,22529,22879,23226,\
23570,23910,24247,24579,24907,25231,25551,25865,26175,26479,\
26778,27072,27360,27642,27918,28188,28451,28708,28958,29202,\
29438,29667,29889,30104,30311,30510,30702,30886,31061,31229,\
31388,31539,31682,31816,31942,32059,32167,32266,32357,32439,\
32511,32575,32630,32675,32712,32739,32758,32767}
#define HAMMING512 {\
2621,2623,2626,2632,2640,2650,2662,2677,2694,2714,\
2735,2759,2785,2814,2844,2877,2912,2950,2989,3031,\
3075,3121,3170,3220,3273,3328,3385,3444,3506,3570,\
3635,3703,3773,3845,3920,3996,4074,4155,4237,4322,\
4408,4497,4587,4680,4774,4871,4969,5069,5171,5275,\
5381,5489,5599,5710,5824,5939,6056,6174,6295,6417,\
6541,6666,6793,6922,7053,7185,7318,7454,7590,7729,\
7868,8010,8152,8297,8442,8589,8738,8887,9039,9191,\
9345,9499,9656,9813,9972,10131,10292,10454,10617,10782,\
10947,11113,11280,11448,11618,11788,11959,12130,12303,12477,\
12651,12826,13002,13178,13355,13533,13711,13891,14070,14250,\
14431,14612,14794,14976,15158,15341,15525,15708,15892,16076,\
16261,16445,16630,16815,17000,17185,17370,17556,17741,17926,\
18112,18297,18482,18667,18852,19037,19221,19405,19589,19773,\
19957,20140,20322,20505,20686,20868,21049,21229,21409,21589,\
21767,21945,22123,22300,22476,22651,22826,23000,23173,23345,\
23516,23687,23857,24025,24193,24360,24525,24690,24854,25016,\
25178,25338,25497,25655,25812,25968,26122,26275,26427,26577,\
26726,26874,27020,27165,27309,27451,27591,27730,27868,28004,\
28138,28271,28402,28532,28660,28786,28911,29034,29155,29275,\
29392,29508,29623,29735,29846,29954,30061,30166,30269,30371,\
30470,30567,30663,30756,30848,30937,31025,31110,31194,31275,\
31355,31432,31507,31580,31651,31720,31787,31852,31914,31975,\
32033,32089,32143,32195,32244,32292,32337,32380,32420,32459,\
32495,32529,32561,32590,32618,32643,32665,32686,32704,32720,\
32734,32745,32754,32761,32765,32767}
#define HANNING128 {\
19,78,175,310,483,695,943,1228,1549,1905,\
2296,2720,3176,3664,4182,4728,5303,5904,6529,7178,\
7849,8540,9250,9976,10718,11473,12240,13017,13801,14592,\
15387,16185,16982,17779,18572,19360,20141,20913,21674,22423,\
23157,23875,24576,25257,25917,26555,27168,27756,28316,28849,\
29352,29824,30264,30672,31045,31384,31687,31954,32184,32376,\
32531,32647,32724,32763}
#define HANNING256 {\
5,20,44,78,122,176,239,312,395,487,\
589,700,821,950,1089,1238,1395,1561,1736,1920,\
2112,2313,2523,2740,2966,3200,3442,3691,3948,4213,\
4485,4763,5049,5342,5641,5947,6258,6576,6900,7230,\
7564,7905,8250,8600,8955,9314,9677,10045,10416,10791,\
11169,11550,11934,12321,12710,13102,13495,13890,14287,14685,\
15084,15483,15883,16284,16684,17085,17485,17884,18282,18680,\
19076,19470,19862,20253,20641,21026,21409,21789,22165,22538,\
22907,23273,23634,23991,24344,24691,25034,25372,25704,26030,\
26351,26666,26975,27277,27573,27863,28145,28420,28688,28949,\
29202,29448,29686,29916,30137,30351,30556,30753,30941,31121,\
31291,31453,31606,31749,31884,32009,32125,32231,32328,32416,\
32493,32562,32620,32669,32708,32737,32757,32767}
#define HANNING512 {\
1,5,11,20,31,44,60,79,99,123,\
148,177,207,240,276,314,354,397,442,489,\
539,591,646,703,762,824,888,954,1023,1094,\
1167,1242,1320,1400,1482,1567,1654,1743,1834,1927,\
2023,2120,2220,2322,2426,2532,2640,2751,2863,2977,\
3094,3212,3332,3455,3579,3705,3833,3963,4095,4228,\
4364,4501,4640,4781,4924,5068,5214,5361,5511,5662,\
5814,5968,6124,6281,6440,6600,6762,6925,7090,7255,\
7423,7591,7761,7933,8105,8279,8454,8630,8808,8986,\
9166,9346,9528,9711,9895,10079,10265,10452,10639,10828,\
11017,11207,11397,11589,11781,11974,12168,12362,12557,12752,\
12948,13145,13342,13539,13737,13935,14134,14333,14532,14731,\
14931,15131,15331,15532,15732,15933,16133,16334,16535,16735,\
16936,17136,17337,17537,17737,17937,18137,18336,18535,18734,\
18932,19130,19328,19525,19722,19918,20114,20309,20503,20697,\
20890,21083,21275,21466,21656,21846,22035,22223,22410,22596,\
22781,22965,23149,23331,23512,23692,23871,24049,24226,24402,\
24576,24749,24921,25092,25261,25429,25596,25761,25925,26087,\
26248,26408,26566,26722,26877,27030,27182,27332,27481,27627,\
27772,27916,28058,28198,28336,28472,28607,28739,28870,28999,\
29126,29251,29375,29496,29615,29733,29848,29961,30073,30182,\
30289,30394,30497,30598,30697,30793,30888,30980,31070,31158,\
31244,31327,31408,31487,31564,31638,31710,31780,31847,31913,\
31975,32036,32094,32150,32203,32254,32303,32349,32393,32435,\
32474,32510,32545,32576,32606,32633,32657,32679,32699,32716,\
32731,32743,32753,32760,32765,32767}
#define BLACKMAN128{\
0,7,29,65,117,184,268,369,487,625,\
783,962,1163,1388,1638,1913,2217,2549,2910,3302,\
3725,4181,4669,5191,5746,6334,6956,7610,8297,9015,\
9764,10541,11345,12174,13026,13899,14789,15695,16612,17539,\
18470,19403,20335,21260,22175,23077,23960,24822,25658,26464,\
27236,27971,28665,29315,29916,30467,30964,31404,31786,32108,\
32367,32563,32694,32760}
#define BLACKMAN256 {\
0,2,7,16,29,45,65,89,116,148,\
183,222,266,314,366,422,483,549,620,695,\
776,862,953,1050,1153,1261,1376,1496,1623,1757,\
1897,2043,2197,2358,2526,2701,2883,3074,3272,3477,\
3691,3912,4142,4380,4626,4880,5142,5413,5692,5979,\
6275,6579,6891,7211,7540,7876,8220,8572,8932,9299,\
9674,10056,10445,10840,11242,11651,12065,12485,12911,13342,\
13778,14218,14662,15111,15563,16017,16475,16935,17397,17860,\
18324,18789,19253,19718,20182,20644,21104,21563,22018,22470,\
22919,23363,23802,24237,24665,25087,25503,25911,26312,26704,\
27088,27462,27828,28183,28527,28861,29183,29494,29793,30079,\
30352,30613,30859,31092,31311,31515,31705,31880,32039,32183,\
32312,32425,32522,32603,32668,32717,32750,32766}
#define BLACKMAN512 {\
0,0,2,4,7,11,16,22,29,36,\
45,54,65,76,88,102,116,131,147,164,\
182,201,221,243,265,288,312,338,364,392,\
420,450,481,513,547,581,617,654,692,732,\
773,815,858,903,949,997,1046,1096,1148,1201,\
1256,1312,1370,1429,1490,1552,1616,1682,1749,1818,\
1888,1960,2034,2110,2187,2266,2347,2430,2514,2600,\
2688,2778,2870,2964,3060,3157,3257,3358,3461,3567,\
3674,3783,3894,4008,4123,4240,4359,4481,4604,4730,\
4857,4987,5118,5252,5388,5526,5665,5807,5951,6097,\
6246,6396,6548,6702,6859,7017,7178,7340,7505,7671,\
7839,8010,8182,8356,8533,8711,8891,9073,9257,9442,\
9630,9819,10010,10203,10397,10593,10791,10990,11192,11394,\
11598,11804,12011,12220,12430,12641,12854,13068,13283,13500,\
13718,13937,14157,14378,14600,14823,15047,15271,15497,15723,\
15951,16178,16407,16636,16865,17096,17326,17557,17788,18020,\
18251,18483,18715,18947,19179,19411,19643,19874,20105,20336,\
20567,20797,21027,21256,21485,21713,21940,22166,22392,22616,\
22840,23063,23284,23505,23724,23941,24158,24373,24587,24799,\
25009,25218,25425,25631,25834,26036,26235,26433,26629,26822,\
27013,27202,27389,27574,27755,27935,28112,28286,28458,28627,\
28793,28957,29118,29275,29430,29582,29731,29876,30019,30158,\
30295,30428,30557,30683,30806,30926,31042,31154,31263,31369,\
31470,31569,31663,31754,31841,31924,32004,32079,32151,32219,\
32283,32343,32400,32452,32500,32545,32585,32622,32654,32682,\
32707,32727,32743,32755,32763,32767}
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -