MATLAB离散傅里叶变换及应用Word格式文档下载.docx
《MATLAB离散傅里叶变换及应用Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MATLAB离散傅里叶变换及应用Word格式文档下载.docx(10页珍藏版)》请在冰点文库上搜索。
k=0:
Xk=xn*exp(-j*2*pi/N).^(n'
*k);
x=(Xk*exp(j*2*pi/N).^(n'
*k))/N;
subplot(2,2,1),stem(n,xn);
title('
x(n)'
);
subplot(2,2,2),stem(n,abs(x));
IDFT|X(k)|'
subplot(2,2,3),stem(k,abs(Xk));
|X(k)|'
subplot(2,2,4),stem(k,angle(Xk));
arg|X(k)|'
运行图如下:
从得到的结果可见,与周期序列不同的是,有限长序列本身是仅有N点的离散序列,相当于周期序列的主值部分。
因此,其频谱也对应序列的主值部分,是含N点的离散序列。
2、序列DFT与周期序列DFS
已知周期序列的主值x(n)=[0,1,2,3,4,5,6,7],求x(n)周期重复次数为4次时的DFS。
(1)画出原主值和信号周期序列信号。
(2)画出序列傅里叶变换对应的
和
的图形。
4*N-1;
xn1=xn(mod(n,N)+1);
Xk=xn1*exp(-j*2*pi/N).^(n'
subplot(2,2,1),stem(xn);
原主值信号x(n)'
subplot(2,2,2),stem(n,xn1);
周期序列信号'
运行结果如下:
由这个周期序列的实验我们可以看出,有限长序列x(n)可以看成是周期序列
的一个周期;
反之,周期序列
可以看成是有限长序列x(n)以N为周期的周期延拓。
频域上的情况也是相同的。
从这个意义上说,周期序列只有有限个序列值有意义。
3、序列DFT与离散时间傅里叶变换DTFT的联系
求x(n)=[0,1,2,3,4,5,6,7],0≤n≤7的DTFT,将(-2p,2p)区间分成500份。
(1)画出原信号。
(2)画出由离散时间傅里叶变换求得的幅度谱X(ejw)和相位谱arg[X(ejw)]图形。
N-1;
w=linspace(-2*pi,2*pi,500);
X=xn*exp(-j*n'
*w);
subplot(3,1,1),stem(n,xn,'
k'
ylabel('
subplot(3,1,2),plot(w,abs(X),'
axis([-2*pi,2*pi,1.1*min(abs(X)),1.1*max(abs(X))]);
幅度谱'
subplot(3,1,3),plot(w,angle(X),'
axis([-2*pi,2*pi,1.1*min(angle(X)),1.1*max(angle(X))]);
相位谱'
由图12-3可以看出,两者有一定的差别。
主要原因在于,该例进行DTFT时,X(ejw)在单位圆上取250个点进行分割;
而图12-1进行DFT时,X(k)是在单位圆上N=8的等间距点上取值,X(k)的序列长度与X(ejw)相比不够长。
4仍然用x(n)=[0,1,2,3,4,5,6,7],将x(n)的有限长序列后面补足至N=100,求其DFT,并与例3进行比较。
N=100;
xn=[0,1,2,3,4,5,6,7,zeros(1,N-8)];
subplot(2,1,1),stem(k,abs(Xk));
subplot(2,1,2),stem(k,angle(Xk));
二、序列的移位和周期延拓运算。
已知
,利用MATLAB生成并图示序列
其中
程序清单如下:
N=24;
M=8;
m=3;
xn=0.8.^n.*(n>
=0&
n<
M);
subplot(3,1,1);
stem(n,xn,'
.'
grid;
axis([0length(xn),01]);
序列x(n)'
xc=xn(mod(n,8)+1);
subplot(3,1,2);
stem(n,xc,'
axis([0length(xc),01]);
序列x(n)的周期延拓序列'
xm=[xn(m+1:
M)xn(1:
m)];
xm=[xmzeros(1,N-length(xm))];
subplot(3,1,3);
stem(n,xm,'
axis([0length(xm),01]);
圆周移位序列x(n+m)'
三、利用MATLAB验证N点DFT的物理意义。
试绘制出
幅度频谱和相位频谱,并分别计算N=8和N=16时的DFT。
N1=8;
N2=16;
%设置两种DFT的长度
N1-1;
k1=n;
k2=0:
N2-1;
w=(0:
2047)*2*pi/2048;
Xw=(1-exp(-j*4*w))./(1-exp(-j*w));
xn=[n>
4];
Xk1=fft(xn,N1);
Xk2=fft(xn,N2);
plot(w/pi,abs(Xw));
序列x(n)的幅频曲线|X(e^{j\omega})|'
stem(k1*2/N1,abs(Xk1),'
序列x(n)的8点DFT'
stem(k2,abs(Xk2),'
序列x(n)的16点DFT'
运行结果如下;
四、利用DFT计算线性卷积
已知序列x1(n)=0.9^n,n=[0:
11];
h(n)=R9(n)求x1(n)*h(n);
x1(n)与h(n)的10点圆周卷积。
程序源代码:
n1=[0:
9];
n2=[0:
m=0:
n=[0:
N1-1];
N=12;
N1=10;
x1=0.9.^n2;
x11=0.9.^n1;
x2=ones(1,9);
x3=conv(x1,x2)
x5=[x11,zeros(1,N1-length(x11))];
x6=[x2,zeros(1,N1-length(x2))];
H=zeros(N1,N1);
x6=[x6zeros(1,N1-length(x6))];
forn=1:
N1
H(n,:
)=x6(mod(n-m-1,N1)+1);
end
x4=x5*H'
;
subplot(221),stem(x1,'
原序列x1'
)
axis([-1,14,0.6*min(x1),1.1*max(x1)]);
subplot(222),stem(x2,'
原序列x2'
axis([-1,11,0,1.1*max(x2)]);
subplot(223),stem(x3,'
x1卷积x2'
axis([-1,25,1.1*min(x3),1.1*max(x3)]);
subplot(224),stem(x4,'
x110点圆周卷积x2'
axis([-1,15,0.975*min(x4),1.01*max(x4)]);