- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字信号处理实验讲稿1
时间 周 二
9月24、10月8、10月22、11月19、12月3 8:30-10:00 11自动化2
10:00-11:30 11自动化3 12:30-14:00 11自动化1 15:30-17:00 11电气2 17:10-18:40 11电气3 19:00-20:30 11电气1 20:30-22:00 11电气1、2、3
数字信号处理实验
一、时间及班级安排
二、数字信号处理的目的对真实世界的连续模拟信号进行测量或滤波
9月24日10月8日10月22日11月19日12月3日1.有限长序列的傅里叶变换(DFT)和逆变换(IDFT)
在实际中常常使用有限长序列。如果有限长序列信号为x(n),则该序列的离散傅里叶变换对可以表示为
(12-1)
(12-2)
从离散傅里叶变换定义式可以看出,有限长序列在时域上是离散的,在频域上也是离散的。式中,即仅在单位圆上N个等间距的点上取值,这为使用计算机进行处理带来了方便。
由有限长序列的傅里叶变换和逆变换定义可知,DFT和DFS的公式非常相似,因此在程序编写上也基本一致。
例五
已知x(n)=[0,1,2,3,4,5,6,7],求x(n)的DFT和IDFT。要求:
(1)画出序列傅里叶变换对应的|X(k)|和arg[X(k)]图形。
(2)画出原信号与傅里叶逆变换IDFT[X(k)]图形进行比较。
解 MATLAB程序如下:
xn=[0,1,2,3,4,5,6,7]; %建立信号序列
N=length(xn);
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,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)); %显示|X(k)|
title(|X(k)|);
subplot(2,2,4),stem(k,angle(Xk)); %显示arg|X(k)|
title(arg|X(k)|);
运行结果如图所示。
有限长序列的傅里叶变换和逆变换结果
思考题
求x(n)=[0,1,2,3,4,5,6,7],0≤n≤7的DTFT,将(-2pi,2pi)区间分成500份。要求:
(1)画出原信号。
(2)画出由离散时间傅里叶变换求得的幅度谱X(ejw)和相位谱arg[X(ejw)]图形。
(3)
解 MATLAB程序如下:
xn=[0,1,2,3,4,5,6,7];
N=length(xn);
n=0:N-1;
w=linspace(-2*pi,2*pi,500); %将[-2pi,2pi]频率区间分割为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,angle(X),k); %显示序列的相位谱
axis([-2*pi,2*pi,1.1*min(angle(X)),1.1*max(angle(X))]);
ylabel(相位谱);
运行结果如图所示。
图12-3 例12-3离散时间傅里叶变换(DTFT)的结果
由图12-3与DFT的结果图12-1相比可以看出,两者有一定的差别。主要原因在于,该例进行DTFT时,X(ejw)在单位圆上取250个点进行分割;而图12-1进行DFT时,X(k)是在单位圆上N=8的等间距点上取值,X(k)的序列长度与X(ejw)相比不够长。MATLAB语言中有专门对信号进行正反Z变换的函数ztrans( ) 和iztrans( )
例六
用MATLAB求出离散序列? 的Z变换
MATLAB程序如下:
syms k z
f=0.5
文档评论(0)