MATLAB的离散非周期信号频域分析报告.docx
- 文档编号:2428094
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:16
- 大小:316.24KB
MATLAB的离散非周期信号频域分析报告.docx
《MATLAB的离散非周期信号频域分析报告.docx》由会员分享,可在线阅读,更多相关《MATLAB的离散非周期信号频域分析报告.docx(16页珍藏版)》请在冰豆网上搜索。
MATLAB的离散非周期信号频域分析报告
基于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))];
end
k=0:
N-1;
WN=exp(-j*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;
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进行分析。
上式为离散时间信号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*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的推导过程,说明DTFT是DFS当的极限情况。
共同点:
在时域都是离散的,在频域都是以为周期,周而复始。
不同点:
离散时间周期信号频谱是离散的,具有谐波性,是谐波复振幅,适用于计算机计算。
而离散时间非周期信号的频谱则是连续的,不具有谐波性,表示的是谐波密度,是连续变量Ω的函数,所以不便于计算机进行分析计算。
(四)离散傅里叶变换(DFT)
由于DTFT不便于计算机进行计算,所以需要建立一种时域和频域都是离散的傅里叶变换对,这就是离散傅里叶变换(DFT)
上式为离散时间非周期信号的离散傅里叶变换(DFT)
上式为DFT的反变换,记作IDFT。
和称为离散傅里叶变换(DFT)对。
在MTALAB中,DFT通过建立函数实现:
functionXk=DFT(n,x,N)
ifN>length(x)
n=0:
N-1;
x=[xzeros(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
建立一个离散非周期方波信号
的离散傅里叶变换利用DFT计算实现代码如下:
clearall;closeall;clc;
n=0:
7;
x=ones(1,8);
X=fft(x,1024);
Xk2=DFT(n,x,16);
figure
(1);
plot((-1023:
2048)/2048*32,[abs(X)abs(X)abs(X)],'--');holdon;
stem(-16:
31,[abs(Xk2)abs(Xk2)abs(Xk2)],'LineWidth',2);grid;
figure
(2);
plot((-1023:
2048)/2048*32,[angle(X)angle(X)angle(X)],'--');holdon;
stem(-16:
31,[angle(Xk2)angle(Xk2)angle(Xk2)],'LineWidth',2);grid;
set(gcf,'color','w');
运行后分别得到该离散非周期方波信号的幅频特性与相频特性:
幅频特性
相频特性
两图中的包络线表示的是通过快速傅里叶变换(FFT)所得到的频谱线。
离散傅里叶变换是傅里叶变换在时域、频域均离散化的形式,因而与其他傅里叶变换有着相似的性质。
但是它又是从傅里叶级数派生而来的,所以又具有一些与其他傅里叶变换不同的特性,最主要的是圆周位移性质和圆周卷积性质。
二、快速傅里叶变换(FFT)
快速傅里叶变换,简称FFT,是计算DFT的快速算法,习惯上是指以库利和图基算法为基础的一类高效算法。
根据快速傅里叶变换基本思路以及基2FFT算法,在MTALAB中,FFT通过建立函数实现:
functiony=fft(x)
m=nextpow2(x);
N=2^m;
iflength(x) x=[x,zeros(1,N-length(x))]; end nxd=bin2dec(fliplr(dec2bin([1: N]-1,m)))+1; y=x(nxd); formm=1: m Nmr=2^mm; u=1; WN=exp(-i*2*pi/Nmr); forj=1: Nmr/2 fork=j: Nmr: N kp=k+Nmr/2; t=y(kp)*u; y(kp)=y(k)-t; y(k)=y(k)+t; end u=u*WN; end end 建立一个离散非周期方波信号 的快速傅里叶变换利用FFT计算实现代码如下: clearall;closeall;clc; x=ones(1,8); fx=fft(x,512); z=abs(fx); k=0: length(z)-1; plot(k,z); 运行后得到该离散非周期方波信号的幅频特性: 分别利用FFT和DFT进行相同运算: clearall;closeall;clc; K=input('K='); N=2^K; n=0: N-1;x=randn(1,2^K); tic,X=fft(x,N),toc tic,X=DFT(n,x,N),toc 运行结果如下: Columns1through4069 Elapsedtimeis0.218536seconds. Columns1through4069 Elapsedtimeis16.726921seconds. 由此可见,采用DFT计算时间为16.726921秒,而采用FFT计算只需要0.218536秒;说明,FFT在计算速度上,明显优于其他算法。 三、采样定理 (一)时域采样定理 为了验证时域采样定理,可以把原始采样序列每隔D-1点取一个值,形成一个新的序列。 在MATLAB中,通过以下程序实现: clearall;closeall;clc; x=ones(1,8); D=2; xd=x(1: D: length(x)); fx=fft(x,512); fxd=fft(xd,512); z=abs(fx); s=abs(fxd); k=0: length(z)-1; plot(k,s,k,z); D=2时得到的原始序列与采样序列的幅频特性(蓝色为原始序列,绿色为采样序列)。 D=3时得到的原始序列与采样序列的幅频特性(蓝色为原始序列,绿色为采样序列)。 D=4时得到的原始序列与采样序列的幅频特性(蓝色为原始序列,绿色为采样序列)。 D=0.5时得到的原始序列与采样序列的幅频特性(蓝色为原始序列,绿色为采样序列)。 由此可见,采样周期在D大于2的范围内,出现明显的混叠现象,有失真产生,而在小于1的范围内,采样过于密集,增加运算系统负担。 因此,可验证时域采样定理。 (二)频域采样定理 为了验证频域采样定理,可以把原始采样序列每隔D-1点取一个值,形成一个新的序列。 在MATLAB中,通过以下程序实现: clearall;closeall;clc; x=-10: 0.001: 10; y=(sin(x))/x; X=fft(y,20); D=7; Xd=X(1: D: length(X)); fxd=ifft(Xd,20); s=fxd; k=0: length(s)-1; plot(k,s); D=7时根据频域样本集合恢复的原信号 D=3时根据频域样本集合恢复的原信号 D=10时根据频域样本集合恢复的原信号 由此可见,采样周期在D小于7的范围内,根据频域样本恢复的原信号与实际原信号有很大差别。 因此,可验证频域采样定理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 离散 周期 信号 分析 报告