基于MATLAB的离散信号频域分析、快速傅里叶变换和采样定理
一、 离散信号频域分析
(一) 周期离散方波信号频域分析
和周期模拟信号一样,周期离散信号同样可以展开成傅里叶级数形式,并得到离散傅里叶级数(DFS)
上式可以看成周期离散信号x(n)的离散傅里叶级数展开。
上式是DFS的反变换,记作IDFS并且称换对。(以上两式中
)
和
构成一对离散傅里叶级数变
在MTALAB中,DFS通过建立周期延拓函数语句实现: function Xk=DFS(n,x,N) if N>length(x) n=0:N-1;
x=[x zeros(1,N-length(x))]; end k=0:N-1;
WN=exp(-j*2*pi/N); nk=n'*k;
WNnk=WN.^nk; Xk=x*WNnk;
end
建立一个离散非周期方波信号
通过周期延拓后所得的周期序列利用DFS计算实现代码如下: clear all;close all;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)],'--');hold on; stem(-4:7,[abs(Xk1) abs(Xk1) abs(Xk1)],'LineWidth',2);grid; figure(2);
plot((-1023:2048)/2048*16,[abs(X) abs(X) abs(X)],'--');hold on; stem(-8:15,[abs(Xk2) abs(Xk2) abs(Xk2)],'LineWidth',2);grid; set(gcf,'color','w');
运行后得到的是分别以4和8为周期延拓后的即第一幅图表示的是周期序列第二幅图表示的是周期序列
频谱:
的频谱, 的频谱。
两图中的包络线表示的是通过快速傅里叶变换(FFT)所得到的频谱线。
(二)非周期离散方波信号频域分析
对于非周期离散方波信号,可采用离散时间傅里叶变换DTFT进行分析。
上式为离散时间信号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计算实现代码如下:
clear all;close all;clc; n=0:7;
x=ones(1,8);
w=-3*pi:0.01:3*pi; X=x*exp(-j*n'*w); figure(1);
plot(w/pi,abs(X));grid; figure(2);
plot(w/pi,angle(X));grid; set(gcf,'color','w');
运行后分别得到该离散非周期方波信号的幅频特性和相频特性:
幅频特性
相关推荐: