1、MATLAB离散傅里叶变换及应用MATLAB离散傅里叶变换及应用一、DFT与IDFT、DFS、DTFT的联系1、 序列的傅里叶变换(DFT)和逆变换(IDFT)在实际中常常使用有限长序列。如果有限长序列信号为x(n),则该序列的离散傅里叶变换对可以表示为 (12-1) (12-2)已知x(n)0,1,2,3,4,5,6,7,求x(n)的DFT和IDFT。要求:(1)画出序列傅里叶变换对应的|X(k)|和argX(k)图形。(2)画出原信号与傅里叶逆变换IDFTX(k)图形进行比较。程序源代码:xn=0,1,2,3,4,5,6,7; N=length(xn);n=0:(N-1);k=0:(N-1
2、);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); title(IDFT|X(k)|);subplot(2,2,3),stem(k,abs(Xk); title(|X(k)|);subplot(2,2,4),stem(k,angle(Xk); title(arg|X(k)|);运行图如下:从得到的结果可见,与周期序列不同的是,有限长序列本身是仅有N点的离散序列,相当于周期序列的主值部分。因此,其频
3、谱也对应序列的主值部分,是含N点的离散序列。2、 序列DFT与周期序列DFS已知周期序列的主值x(n)0,1,2,3,4,5,6,7,求x(n)周期重复次数为4次时的DFS。要求:(1)画出原主值和信号周期序列信号。(2)画出序列傅里叶变换对应的和的图形。程序源代码:xn=0,1,2,3,4,5,6,7;N=length(xn);n=0:4*N-1;k=0:4*N-1;xn1=xn(mod(n,N)+1); Xk=xn1*exp(-j*2*pi/N).(n*k); subplot(2,2,1),stem(xn); title(原主值信号x(n);subplot(2,2,2),stem(n,xn
4、1); title(周期序列信号);subplot(2,2,3),stem(k,abs(Xk); title(|X(k)|);subplot(2,2,4),stem(k,angle(Xk); title(arg|X(k)|);运行结果如下:由这个周期序列的实验我们可以看出,有限长序列x(n)可以看成是周期序列的一个周期;反之,周期序列可以看成是有限长序列x(n)以N为周期的周期延拓。频域上的情况也是相同的。从这个意义上说,周期序列只有有限个序列值有意义。3、 序列DFT与离散时间傅里叶变换DTFT的联系求x(n)0,1,2,3,4,5,6,7,0n7的DTFT,将(2p,2p)区间分成500份
5、。要求:(1)画出原信号。(2)画出由离散时间傅里叶变换求得的幅度谱X(ejw)和相位谱argX(ejw)图形。程序源代码:xn=0,1,2,3,4,5,6,7;N=length(xn);n=0:N-1;w=linspace(-2*pi,2*pi,500); X=xn*exp(-j*n*w); subplot(3,1,1),stem(n,xn,k);ylabel(x(n);subplot(3,1,2),plot(w,abs(X),k); axis(-2*pi,2*pi,1.1*min(abs(X),1.1*max(abs(X);ylabel(幅度谱);subplot(3,1,3),plot(w
6、,angle(X),k); axis(-2*pi,2*pi,1.1*min(angle(X),1.1*max(angle(X);ylabel(相位谱);运行结果如下:由图12-3可以看出,两者有一定的差别。主要原因在于,该例进行DTFT时,X(ejw)在单位圆上取250个点进行分割;而图12-1进行DFT时,X(k)是在单位圆上N8的等间距点上取值,X(k)的序列长度与X(ejw)相比不够长。4仍然用x(n)0,1,2,3,4,5,6,7,将x(n)的有限长序列后面补足至N100,求其DFT,并与例3进行比较。程序源代码:N=100;xn=0,1,2,3,4,5,6,7,zeros(1,N-8
7、); n=0:(N-1);k=0:(N-1);Xk=xn*exp(-j*2*pi/N).(n*k); x=(Xk*exp(j*2*pi/N).(n*k)/N; subplot(2,1,1),stem(k,abs(Xk); title(|X(k)|);subplot(2,1,2),stem(k,angle(Xk); title(arg|X(k)|);运行结果如下:二、序列的移位和周期延拓运算。已知,利用MATLAB生成并图示序列其中程序清单如下:N=24;M=8;m=3;n=0:N-1;xn=0.8.n.*(n=0 & n=0 & n4; Xk1=fft(xn,N1); Xk2=fft(xn,N
8、2); subplot(3,1,1);plot(w/pi,abs(Xw); grid;title(序列x(n)的幅频曲线|X(ejomega)|);subplot(3,1,2);stem(k1*2/N1,abs(Xk1),.); grid;title(序列x(n)的8点DFT);subplot(3,1,3);stem(k2,abs(Xk2),.);grid;title(序列x(n)的16点DFT);运行结果如下;四、利用DFT计算线性卷积已知序列x1(n)=0.9n,n=0:11;h(n)=R9(n) 求x1(n)*h(n);x1(n)与h(n)的10点圆周卷积。程序源代码:n1=0:9;n2
9、=0:11;m=0:N1-1;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=x6 zeros(1,N1-length(x6);for n=1:N1 H(n,:)=x6(mod(n-m-1,N1)+1);endx4=x5*H;subplot(221),stem(x1,.);title(原序列x1)axis(-1,14,0.6*min(x1),1.1*max(x1);subplot(222),stem(x2,.);title(原序列x2)axis(-1,11,0,1.1*max(x2);subplot(223),stem(x3,.);title(x1卷积x2)axis(-1,25,1.1*min(x3),1.1*max(x3);subplot(224),stem(x4,.);title(x1 10点圆周卷积x2)axis(-1,15,0.975*min(x4),1.01*max(x4);运行结果如下:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1