⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fft.h

📁 2407TI库函数
💻 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 + -