资源描述:
《基于matlab的离散非周期信号频域分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于MATLAB的离散信号频域分析、快速傅里叶变换与采样定理一、离散信号频域分析(一)周期离散方波信号频域分析与周期模拟信号一样,周期离散信号同样可以展开成傅里叶级数形式,并得到离散傅里叶级数(DFS)上式可以看成周期离散信号x(n)的离散傅里叶级数展开。上式是DFS的反变换,记作IDFS并且称与构成一对离散傅里叶级数变换对。(以上两式中)在MTALAB中,DFS通过建立周期延拓函数语句实现:functionXk=DFS(n,x,N)ifN>length(x)n=0:N-1;x=[xzeros(1,N-length(x))];endk=0:N-1;WN=exp(-j*2*
2、pi/N);nk=n'*k;WNnk=WN.^nk;Xk=x*WNnk;end建立一个离散非周期方波信号通过周期延拓后所得的周期序列利用DFS计算实现代码如下:clearall;closeall;clc;n=0:3;x=ones(1,4);X=fft(x,1024);Xk1=DFS(n,x,4);Xk2=DFS(n,x,8);figure(1);plot((-1023:2048)/2048*8,[abs(X)abs(X)abs(X)],'--');holdon;stem(-4:7,[abs(Xk1)abs(Xk1)abs(Xk1)],'LineWidth',2);grid
3、;figure(2);plot((-1023:2048)/2048*16,[abs(X)abs(X)abs(X)],'--');holdon;stem(-8:15,[abs(Xk2)abs(Xk2)abs(Xk2)],'LineWidth',2);grid;set(gcf,'color','w');运行后得到的是分别以4和8为周期延拓后的频谱:即第一幅图表示的是周期序列的频谱,第二幅图表示的是周期序列的频谱。两图中的包络线表示的是通过快速傅里叶变换(FFT)所得到的频谱线。(二)非周期离散方波信号频域分析对于非周期离散方波信号,可采用离散时间傅里叶变换DTFT进行分析。上
4、式为离散时间信号x(n)的离散时间傅里叶变换(DTFT)。上式为的离散时间傅里叶反变换(IDTFT)。由于:所以序列x(n)绝对可和,意味着DTFT存在,而非稳定序列(比如周期序列)不满足绝对可和条件,所以其DTFT不存在。在MTALAB中,DTFT可以用以下语句实现:w=-3*pi:0.01:3*pi;K=length(w);X=x*exp(-j*n'*w*K);建立一个离散非周期方波信号的离散傅里叶变换利用DTFT计算实现代码如下:clearall;closeall;clc;n=0:7;x=ones(1,8);w=-3*pi:0.01:3*pi;X=x*exp(-j*
5、n'*w);figure(1);plot(w/pi,abs(X));grid;figure(2);plot(w/pi,angle(X));grid;set(gcf,'color','w');运行后分别得到该离散非周期方波信号的幅频特性与相频特性:幅频特性相频特性(三)两种变换DFS的DTFT的性质DFS主要具有如下性质:1.线性性质2.周期卷积性质3.复共轭4.帕斯瓦尔定理DTFT同连续时间信号傅里叶变换相似,具有如下性质:1.线性性质2.时域频域平移性质3.时间翻转性质4.共轭对称性质5.时域频域卷积性质6.调制性质7.频域微分性质8.帕斯瓦尔定理从DTFT的推导过程,
6、说明DTFT是DFS当的极限情况。共同点:在时域都是离散的,在频域都是以为周期,周而复始。不同点:离散时间周期信号频谱是离散的,具有谐波性,是谐波复振幅,适用于计算机计算。而离散时间非周期信号的频谱则是连续的,不具有谐波性,表示的是谐波密度,是连续变量Ω的函数,所以不便于计算机进行分析计算。(四)离散傅里叶变换(DFT)由于DTFT不便于计算机进行计算,所以需要建立一种时域和频域都是离散的傅里叶变换对,这就是离散傅里叶变换(DFT)上式为离散时间非周期信号的离散傅里叶变换(DFT)上式为DFT的反变换,记作IDFT。和称为离散傅里叶变换(DFT)对。在MTALAB中,DF
7、T通过建立函数实现:functionXk=DFT(n,x,N)ifN>length(x)n=0:N-1;x=[xzeros(1,N-length(x))];endk=0:N-1;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=x*WNnk;End建立一个离散非周期方波信号的离散傅里叶变换利用DFT计算实现代码如下:clearall;closeall;clc;n=0:7;x=ones(1,8);X=fft(x,1024);Xk2=DFT(n,x,16);figure(1);plot((-1023