FFT算法的应用
- 格式:doc
- 大小:48.50 KB
- 文档页数:3
实验6 FFT算法的应用
实验内容:
2N点实数序列
n,012,.....2,1,0),192cos(21)72cos()(其他NnnNn
N
nx
N=64。用一个64点的复数FFT程序,一次算出X(k)=DFTNnx2)]([,并绘出
)(kX
。
(2)已知某序列在单位圆上的N=64等分样点的Z变换为
63.....2,1,0,8.011)()(/2kekXzX
Nkj
k
。用N点IFFT程序计算
)],([)(kXIDFTnx
绘出)(nx
。
实验要求:利用MATLAB编程完成计算,绘出相应图形。并与理论计
算相比较,说明实验结果的原因。
(1)程序:
>> clear;
>> N=64;
>> n1=0:2:2*N-2; %对2*N-1取偶
>> n2=1:2:2*N-1; %对2*N-1取奇
>> x1=cos(2*pi*7*n1/N)+0.5*cos(2*pi*19*n1/N); %对x(n) 取偶
>> x2=cos(2*pi*7*n2/N)+0.5*cos(2*pi*19*n2/N); %对x(n)取奇
>> X1=fft(x1,N); %偶数部分N点的DFT
>> X2=fft(x2,N); %奇数部分N点的DFT
>> k=0:N-1;
>> WN=exp(-j*2*pi*k/N); %求kNW
>> a1=X1+WN.*X2; %X(k)前N点的值
>> a2=X1-WN.*X2; %X(k)后N点的值
>> X=[a1,a2]; %得X(k)
>> n=0:2*N-1;
>> stem(n,abs(X)); %画)(kX
>> ylabel('|X(k)|');
)(kX
图像:
020406080100120140
0
10
20
30
40
50
60
70
|
X
(
k
)
|
理论计算:
nkNjNnenNnNkX2120))192cos(21)72(cos()(
,12,.....2,1,0Nk
(2)程序:
>> clear
>> N=64;
>> k=0:63;
>> X1=-j*2*pi/N*k;
>> X2=1-0.8*exp(X1);
>> X=1./X2; %得出X(k)
>> x=ifft(X,N); %求得x(n);
>> stem(k,x); %画x(n)
x(n)图像:
010203040506070
0
0.2
0.4
0.6
0.8
1
1.2
1.4
理论计算:
nkNj
NkNkjeeNnx210/2)8.011(1)(
,63.....2,1,0n
分析:
直接计算DFT与FFT算法的计算量之比为NNM2log2。当N很大时,DFT运算量
很大,对实时性很强的信号处理来说,要求计算速度快,因此需要运用FFT方法,
可以大大减少运算次数。