有关傅里叶变换的MATLAB仿真.docx
《有关傅里叶变换的MATLAB仿真.docx》由会员分享,可在线阅读,更多相关《有关傅里叶变换的MATLAB仿真.docx(9页珍藏版)》请在冰豆网上搜索。
有关傅里叶变换的MATLAB仿真
有关傅里叶变换的MATLAB仿真
Homework1:
1)DeterminetheDFTofsequencex(n)=R4(n)withN=4,N=8andN=16byMATLAB,andplotthefigures;
程序如下:
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=[1111];
xn2=[11110000];
xn3=[1111000000000000];
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([0N105]);
subplot(3,1,2);
L2=0:
1:
N2-1;
stem(L2,magX2);
axis([0N205]);
subplot(3,1,3);
L3=0:
1:
N3-1;
stem(L3,magX3);
axis([0N305]);
最终方针波形如下:
2)DeterminetheFTofsequencex(n)=R4(n)byMATLAB,andplotthefigure;
程序如下:
functionKe=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=[1111];
w=0:
0.01*pi:
2*pi;
N=length(xn);
Ke=FT(xn,N);
Ke1=abs(Ke);
plot(w,Ke1);
axis([02*pi05]);
最终仿真波形如下:
3)ComparefiguresandgivetherelationshipbetweenDFTandFT;
程序如下:
(调用函数上边已经求得,这里不再重复)
clear
xn1=[1111];
xn2=[11110000];
xn3=[1111000000000000];
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([0N105]);
xlabel('N=4');
subplot(4,1,2);
L2=0:
1:
N2-1;
stem(L2,magX2);
axis([0N205]);
xlabel('N=8');
subplot(4,1,3);
L3=0:
1:
N3-1;
stem(L3,magX3);
axis([0N305]);
xlabel('N=16');
subplot(4,1,4);
xn=[1111];
w=0:
0.01*pi:
2*pi;
N=length(xn);
Ke=FT(xn,N);
Ke1=abs(Ke);
plot(w,Ke1);
axis([02*pi05]);
xlabel('FT');
Homework2:
1)Computingthe24-pointsDFTsofthetwosequencesthatx1(n)=cos(nπ/6)andx2(n)=cos(nπ/4)usingasingle24-pointDFTbyMatlab;
2)Plotthefigureofx1(n),x2(n),|X1(k)|and|X2(k)|;
3)Analysisthevalueof|X1(k)|and|X2(k)|;
4)ApplyingIDFTtoX1(k)andX2(k)toobtainx1N(n)andx2N(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;
XK=DFT(xn,N);
XKN=conj(XK);
fork=2:
N
XKN(k)=conj(XK(N-k+2));
end
XK1=(XK+XKN)/2
XK2=(XK-XKN)/(2*j)
x1n=IDFT(XK1,N);
x2n=IDFT(XK2,N);
subplot(2,2,1)
stem(n,xn1);
subplot(2,2,2)
stem(n,xn2);
subplot(2,2,3)
stem(n,x1n);
axis([030-11]);
subplot(2,2,4)
stem(n,x2n);
axis([030-11]);
最终仿真波形如下图:
5)Comparex1(n)andx1N(n);Comparex2(n)andx2N(n);
这里,x1(n)是程序中的xn1,x2(n)是程序中的xn2;x1N(n)是程序中的x1n,x1N(n)是程序中的x2n,他们的比较如上图所示。