快速傅里叶变换的C语言编程
FFT的C语言编程
一、上机目的
掌握基2时域抽取FFT算法及其C语言编程。
二、上机内容
1.根据已给参考程序和说明,自行编写蝶形计算部分的程序;
2.用FFT计算下面8点复数信号的离散傅利叶变换;
x(0)=1+5i;x(1)=2+2i;x(2)=5+2i;x(3)=3+7i;
x(4)=7+6i;x(5)=5+3i;x(6)=9+1i;x(7)=3+8i;
3.分别计算下面16、32点信号的FFT,fs=16Hz,利用Matlab的做图功能画出两个信号的频谱图( f - |X(ejw)|),给出两个信号中所包含的频率值。
16点信号:
x(0)=0;x(1)=0.7071;x(2)=1;x(3)=0.7071;x(4)=0;x(5)=-0.7071;x(6)=-1; x(7)=-0.7071;x(8)=0;x(9)=0.7071;x(10)=1;x(11)=0.7071;x(12)=0; x(13)=-0.7071;x(14)=-1;x(15)=-0.7071;
32点信号:
x(0)=0;x(1)=1.0898;x(2)=1.7071;x(3)=1.6310;x(4)=1;x(5)=0.2168;
x(6)=-0.2929;x(7)=-0.3244;x(8)=0;x(9)=0.3244;x(10)=0.2929;x(11)=-0.2168; x(12)=-1;x(13)=-1.631;x(14)=-1.7071;x(15)=-1.0898;x(16)=0;x(17)=1.0898; x(18)=1.7071;x(19)=1.631;x(20)=1;x(21)=0.2168;x(22)=-0.2929;x(23)=-0.3244; x(24)=0;x(25)=0.3244;x(26)=0.2929;x(27)=-0.2168;x(28)=-1;x(29)=-1.631; x(30)=-1.7071;x(31)=-1.0898;