资源简介

东南大学数字信号处理期末复习 东南大学 数字信号 9系 计算机系

资源截图

代码片段和文件信息

#include   
#include   
#include   

const int N = 1024;  
const float PI = 3.1416;  

inline void swap (float &a float &b)  
{  
float t;  
t = a;  
a = b;  
b = t;  
}  

void bitrp (float xreal [] float ximag [] int n)  
{  
// 位反转置换 Bit-reversal Permutation  
int i j a b p;  

for (i = 1 p = 0; i < n; i *= 2)  
{  
p ++;  
}  
for (i = 0; i < n; i ++)  
{  
a = i;  
b = 0;  
for (j = 0; j < p; j ++)  
{  
b = (b << 1) + (a & 1);    // b = b * 2 + a % 2;  
a >>= 1;        // a = a / 2;  
}  
if ( b > i)  
{  
swap (xreal [i] xreal [b]);  
swap (ximag [i] ximag [b]);  
}  
}  
}  

void FFT(float xreal [] float ximag [] int n)  
{  
// 快速傅立叶变换,将复数 x 变换后仍保存在 x 中,xreal ximag 分别是 x 的实部和虚部  
float wreal [N / 2] wimag [N / 2] treal timag ureal uimag arg;  
int m k j t index1 index2;  

bitrp (xreal ximag n);  

// 计算 1 的前 n / 2 个 n 次方根的共轭复数 W‘j = wreal [j] + i * wimag [j]  j = 0 1 ...  n / 2 - 1  
arg = - 2 * PI / n;  
treal = cos (arg);  
timag = sin (arg);  
wreal [0] = 1.0;  
wimag [0] = 0.0;  
for (j = 1; j < n / 2; j ++)  
{  
wreal [j] = wreal [j - 1] * treal - wimag [j - 1] * timag;  
wimag [j] = wreal [j - 1] * timag + wimag [j - 1] * treal;  
}  

for (m = 2; m <= n; m *= 2)  
{  
for (k = 0; k < n; k += m)  
{  
for (j = 0; j < m / 2; j ++)  
{  
index1 = k + j;  
index2 = index1 + m / 2;  
t = n * j / m;    // 旋转因子 w 的实部在 wreal [] 中的下标为 t  
treal = wreal [t] * xreal [index2] - wimag [t] * ximag [index2];  
timag = wreal [t] * ximag [index2] + wimag [t] * xreal [index2];  
ureal = xreal [index1];  
uimag = ximag [index1];  
xreal [index1] = ureal + treal;  
ximag [index1] = uimag + timag;  
xreal [index2] = ureal - treal;  
ximag [index2] = uimag - timag;  
}  
}  
}  
}  

void  IFFT (float xreal [] float ximag [] int n)  
{  
// 快速傅立叶逆变换  
float wreal [N / 2] wimag [N / 2] treal timag ureal uimag arg;  
int m k j t index1 index2;  

bitrp (xreal ximag n);  

// 计算 1 的前 n / 2 个 n 次方根 Wj = wreal [j] + i * wimag [j]  j = 0 1 ...  n / 2 - 1  
arg = 2 * PI / n;  
treal = cos (arg);  
timag = sin (arg);  
wreal [0] = 1.0;  
wimag [0] = 0.0;  
for (j = 1; j < n / 2; j ++)  
{  
wreal [j] = wreal [j - 1] * treal - wimag [j - 1] * timag;  
wimag [j] = wreal [j - 1] * timag + wimag [j - 1] * treal;  
}  

for (m = 2; m <= n; m *= 2)  
{  
for (k = 0; k < n; k += m)  
{  
for (j = 0; j < m / 2; j ++)  
{  
index1 = k + j;  
index2 = index1 + m / 2;  
t = n * j / m;    // 旋转因子 w 的实部在 wreal [] 中的下标为 t  
treal = wreal [t] * xreal [index2] - wimag [t] * ximag [index2];  
timag = wreal [t] * ximag [index2] + wimag [t] * xreal [index2];  
ureal = xreal [index1];  
uimag = ximag [index1];  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-01-12 20:34  数字信号处理课件(1)\
     文件     1934336  2018-01-08 19:26  数字信号处理课件(1)\05-第五章-快速傅里叶变换(蝶形运算).ppt
     目录           0  2018-01-08 10:32  数字信号处理课件(1)\09015227郭保申数字信号处理实验\
     文件      183692  2018-01-07 17:19  数字信号处理课件(1)\09015227郭保申数字信号处理实验\09015227郭保申数字信号处理实验报告.docx
     文件       39077  2018-01-07 18:29  数字信号处理课件(1)\09015227郭保申数字信号处理实验\7bf0c30f4a66cfe62ef52&.jpg
     目录           0  2018-01-07 18:35  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\
     目录           0  2018-01-07 18:35  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\Debug\
     文件       33792  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\Debug\FFT.exe
     文件      325992  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\Debug\FFT.ilk
     文件      371712  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\Debug\FFT.pdb
     目录           0  2018-01-07 18:35  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\
     目录           0  2018-01-07 18:35  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\
     文件        1178  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\CL.read.1.tlog
     文件         254  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\CL.write.1.tlog
     文件         406  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\FFT.exe.embed.manifest
     文件         472  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\FFT.exe.embed.manifest.res
     文件         381  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\FFT.exe.intermediate.manifest
     文件          81  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\FFT.lastbuildstate
     文件        4310  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\FFT.log
     文件       21433  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\FFT.obj
     文件         713  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\FFT.vcxprojResolveAssemblyReference.cache
     文件           0  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\FFT.write.1.tlog
     文件         196  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\FFT_manifest.rc
     文件         594  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\cl.command.1.tlog
     文件           2  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\link-cvtres.read.1.tlog
     文件           2  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\link-cvtres.write.1.tlog
     文件           2  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\link.5688-cvtres.read.1.tlog
     文件           2  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\link.5688-cvtres.write.1.tlog
     文件           2  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\link.5688.read.1.tlog
     文件           2  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\link.5688.write.1.tlog
     文件        1316  2018-01-07 16:57  数字信号处理课件(1)\09015227郭保申数字信号处理实验\FFT\FFT\Debug\link.command.1.tlog
............此处省略58个文件信息

评论

共有 条评论