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