有关傅里叶变换的MATLAB仿真
- 格式:docx
- 大小:84.91 KB
- 文档页数:10
有关傅里叶变换的MATLAB仿真
Homework 1:
1) Determine the DFT of sequence x(n)=R4(n) with N=4, N=8 and N=16 by MATLAB, and plot the figures;
程序如下:
function[Xk] = DFT(xn,N)
k = [0:1:N-1];
n = [0:1:N-1];
Wn = exp(-j*2*pi/N);
kn = k'*n;
Wn_kn = Wn.^kn;
Xk = xn*Wn_kn;
clear
xn1=[1 1 1 1];
xn2=[1 1 1 1 0 0 0 0];
xn3=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0];
N1=length(xn1);
N2=length(xn2);
N3=length(xn3);
XK1=DFT(xn1,N1); magX1=abs(XK1);
XK2=DFT(xn2,N2); magX2=abs(XK2);
XK3=DFT(xn3,N3); magX3=abs(XK3)
subplot(3,1,1);
L1=0:1:N1-1;
stem(L1,magX1); axis([0 N1 0 5]);
subplot(3,1,2);
L2=0:1:N2-1;
stem(L2,magX2); axis([0 N2 0 5]);
subplot(3,1,3);
L3=0:1:N3-1;
stem(L3,magX3);
axis([0 N3 0 5]);
最终方针波形如下:
2) Determine the FT of sequence x(n)=R4(n) by MATLAB, and plot the figure;
程序如下:
function Ke=FT(xn,N)
n=0:1:N-1;
w=0:0.01*pi:2*pi;
Wn=exp(-j*n'*w);
Ke=xn*Wn;
end
clear;
xn=[1 1 1 1];
w=0:0.01*pi:2*pi;
N=length(xn);
Ke=FT(xn,N);
Ke1=abs(Ke);
plot(w,Ke1);
axis([0 2*pi 0 5]);
最终仿真波形如下:
3) Compare figures and give the relationship between DFT and FT;
程序如下:(调用函数上边已经求得,这里不再重复)clear
xn1=[1 1 1 1];
xn2=[1 1 1 1 0 0 0 0];
xn3=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0];
N1=length(xn1);
N2=length(xn2);
N3=length(xn3);
XK1=DFT(xn1,N1);
magX1=abs(XK1);
XK2=DFT(xn2,N2);
magX2=abs(XK2);
XK3=DFT(xn3,N3);
magX3=abs(XK3);
subplot(4,1,1);
L1=0:1:N1-1;
stem(L1,magX1);
axis([0 N1 0 5]);
xlabel('N=4');
subplot(4,1,2);
L2=0:1:N2-1; stem(L2,magX2); axis([0 N2 0 5]); xlabel('N=8');
subplot(4,1,3);
L3=0:1:N3-1; stem(L3,magX3); axis([0 N3 0 5]); xlabel('N=16');
subplot(4,1,4);
xn=[1 1 1 1];
w=0:0.01*pi:2*pi; N=length(xn);
Ke=FT(xn,N);
Ke1=abs(Ke); plot(w,Ke1);
axis([0 2*pi 0 5]); xlabel('FT');
Homework 2:
1) Computing the 24-points DFTs of the two sequences that x1(n)= cos(nπ/6) and x2(n)= cos(nπ/4) using a single 24-point DFT by Matlab;
2) Plot the figure of x1(n), x2(n), |X1(k)| and |X2(k)|;
3) Analysis the value of |X1(k)| and |X2(k)|;
4) Applying IDFT to X1(k) and X2(k) to obtain x1N(n) and x2N(n);
程序如下:
function[Xk] = DFT(xn,N)
k = [0:1:N-1];
n = [0:1:N-1];
Wn = exp(-j*2*pi/N);
kn = k'*n;
Wn_kn = Wn.^kn;
Xk = xn*Wn_kn;
function[xn] =IDFT(Xk,N) k = [0:1:N-1];
n = [0:1:N-1];
Wn = exp(-j*2*pi/N);
kn = k'*n;
Wn_kn = Wn.^(-kn);
xn = (Xk*Wn_kn)/N;
clear
N=24;
n=0:23;
xn1=cos(n*pi/6);
xn2=cos(n*pi/4);
xn=xn1+j*xn2;