数字信号处理实验教案.docx
《数字信号处理实验教案.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验教案.docx(12页珍藏版)》请在冰豆网上搜索。
数字信号处理实验教案
数字信号处理实验教案
信息工程学院-通信工程教研室
数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。
上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼同学们的独立解决问题的能力。
本讲义在第三版的基础上编写了五个实验,前2个实验属基础性的验证性实验,第3、4、5个实验属基本应用综合性实验。
实验一离散时间信号的MATLAB实现
实验二线性卷积与循环卷积的原理及应用
实验三频率采样定理
实验四离散系统的因果性和稳定性及频率响应特性
实验五基于MATLAB的快速傅里叶变换
根据教学进度,理论课结束后进行相关实验。
实验一时域离散信号的产生
一实验目的
(1)了解常用的时域离散信号及其特点。
(2)掌握MATLAB产生常用时域离散信号的方法。
二实验内容
(1)编写程序,产生下列离散序列:
A.f(n)=δ(n)(-3B.f(n)=e(0.1+j1.6π)n(0(2)一个连续的周期性三角波信号频率为50Hz,信号幅度在0~+2V之间,在窗口上显示2个周期信号波形,对信号的一个周期进行16点采样来获取离散信号。
试显示原连续信号和采样获得的离散信号波形。
(3)一个连续的周期性方波信号频率为200Hz,信号幅度在-1~+1V之间,在窗口上显示2个周期信号波形,用Fs=4kHz的频率对连续信号进行采样,试显示原连续信号和采样获得的离散信号波形。
三实验步骤
(1)在matlab命令窗口中逐行输入下列语句
>>n1=-3;n2=4;n0=0;%在起点n1、终点n2的范围内,于n0处产生冲激
>>n=n1:
n2;%生成离散信号的时间序列
>>x=[n==n0];%生成离散信号x(n)
>>stem(n,x,'filled');%绘制杆状图,且圆心处用实心圆表示
>>title('单位脉冲序列');
>>xlabel('时间(n)');ylabel('幅度x(n)');
在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,产生了f(n)=δ(n),(-3(2)在matlab命令窗口中逐行输入下列语句
>>n1=16;a=0.1;w=1.6*pi;
>>n=0:
n1;
>>x=exp((a+j*w)*n);
>>subplot(2,1,1),stem(n,real(x));%在指定位置描绘图像
>>title('复指数序列的实部');
>>subplot(2,1,2),stem(n,imag(x));
>>title('复指数序列的虚部');
在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,产生了f(n)=e(0.1+j1.6π)n,(0(3)在matlab命令窗口中逐行输入下列语句
>>f=50;Um=1;nt=2;%输入信号频率、振幅、显示周期
>>N=16;T=1/f;%N为信号一个采样周期的采样点数,T为信号周期
>>dt=T/N;%采样时间间隔
>>n=0:
nt*N-1;%建立离散时间的时间序列
>>tn=n*dt;%确定时间序列样点在时间轴上的位置
>>f=Um*sawtooth(2*f*pi*tn)+1;
>>subplot(2,1,1),stem(tn,f);%显示经采样的信号
>>title('离散信号');
>>subplot(2,1,2),plot(tn,f);%显示原连续信号
>>title('连续信号');
在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,显示了原连续信号和采样获得的离散信号波形
(4)在matlab命令窗口中逐行输入下列语句
>>f=200;Um=1;nt=2;%输入信号频率、振幅、显示周期
>>Fs=4000;N=Fs/f;T=1/f;%输入采样频率、求采样点数N、T为信号周期
>>dt=T/N;%采样时间间隔
>>n=0:
nt*N-1;%建立离散时间的时间序列
>>tn=n*dt;%确定时间序列样点在时间轴上的位置
>>f=Um*sin(2*f*pi*tn);
>>subplot(2,1,2),plot(tn,f);%显示原连续信号
>>title('连续信号');
>>subplot(2,1,1),stem(tn,f);%显示经采样的信号
>>title('离散信号');
在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,显示了原连续信号和采样获得的离散信号波形
四思考题
(1)如何在matlab下生产f(n)=3sin(nπ/4)(0(2)改变实验步骤中最后两个实验的频率参数,分别重新生成相关的信号?
实验二线性卷积与循环卷积的原理及应用
一、实验目的
(1)掌握两种卷积的原理和两者的异同。
(2)掌握MATLAB实现两种卷积的计算和比较。
二、实验内容
(1)用MATLAB设计线性卷积;
(2)调试写出线性卷积和源代码;
(3)用MATLAB设计循环卷积;
三实验步骤
1线性卷积定理
1)线性卷积的引入
在实际应用中,为了分析时域离散线性非移变系统或者对序列进行滤波处理等,需要计算两个序列的线性卷积。
线性卷积既可以在时域中直接计算,也可以通过变换在频域中计算得到。
2)线性卷积的时域计算方法
计算卷积的基本运算是翻转、移位、相乘和相加,这类卷积称为序列的线性卷积。
如果两个序列的长度为N和M,那么卷积结果的长度为N+M-1。
线性卷积有四步运算:
①卷积运算时,y(n)要先反折得到y(-n);②m>0表示y(-n)序列右移,m<0表示左移,不同的m表示不同的值。
假设和都是有限长序列,长度分别为和,它们的线性卷积可以表示如下:
MATLAB信号处理工具箱提供了conv函数,该函数用于计算两个有限序列的卷积。
2循环卷积定理
1)循环卷积的引入
为了提高线性卷积的速度,希望用DFT(FFT)计算线性卷积。
从而引入循环卷积来运用DFT快速计算线性卷积。
循环卷积运用到离散傅立叶变换的循环移位性质,即时域循环移位定理。
2)循环卷积的时域计算方法
假设和都是有限长序列,长度分别为和,它们的L点循环卷积可以表示如下:
L称为循环卷积区间长度。
n和m的变化区间均是[0,L-1],直接计算该式比较麻烦。
计算机中采用矩阵相乘或快速傅里叶变换(FFT)的方法计算循环卷积。
用矩阵相乘的方法计算两个序列的循环卷积,这里关键是先形成循环卷积矩阵。
如果h(n)的长度N3)线性卷积与循环卷积的关系
上式说明,等于以为周期的周期延拓序列的主值序列。
的长度为,因此只有当循环卷积长度时,以为周期进行周期延拓才无混叠现象。
因此取其主值序列就满足=。
即满足条件。
四思考题
(1)比较线性卷积和循环卷积在序列长度不同时两者的联系?
(2)试着写出循环卷积的源代码?
实验三时域采样理论与频域采样定理验证
一、实验目的
1时域采样理论与频域采样理论是数字信号处理中的重要理论。
要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息;要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。
二、实验原理及方法
时域采样定理的要点是:
(a)对模拟信号以间隔T进行时域等间隔理想采样,形成的采样信号的频谱是原模拟信号频谱以采样角频率()为周期进行周期延拓。
公式为:
(b)采样频率必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的
频谱不产生频谱混叠。
利用计算机计算上式并不方便,下面我们导出另外一个公式,以便用计算机上进行实验。
理想采样信号和模拟信号之间的关系为:
对上式进行傅立叶变换,得到:
在上式的积分号内只有当时,才有非零值,因此:
上式中,在数值上=,再将代入,得到:
上式的右边就是序列的傅立叶变换,即
上式说明理想采样信号的傅立叶变换可用相应的采样序列的傅立叶变换得到,只要将自变量ω用代替即可。
频域采样定理的要点是:
a)对信号x(n)的频谱函数X(ejω)在[0,2π]上等间隔采样N点,得到
则N点IDFT[]得到的序列就是原序列x(n)以N为周期进行周期延拓后的主值区序列,公式为:
(b)由上式可知,频域采样点数N必须大于等于时域离散信号的长度M(即N≥M),才能使时域不产生混叠,则N点IDFT[]得到的序列就是原序列x(n),即=x(n)。
如果N>M,比原序列尾部多N-M个零点;如果N与x(n)不相同。
在数字信号处理的应用中,只要涉及时域或者频域采样,都必须服从这两个采样理论的要点。
对比上面叙述的时域采样原理和频域采样原理,得到一个有用的结论,这两个采样理论具有对偶性:
“时域采样频谱周期延拓,频域采样时域信号周期延拓”。
因此放在一起进行实验。
三实验步骤
(1)时域采样理论的验证。
给定模拟信号,
式中A=444.128,=50π,=50πrad/s,它的幅频特性曲线如图10.2.1
图10.2.1的幅频特性曲线
现用DFT(FFT)求该模拟信号的幅频特性,以验证时域采样理论。
安照的幅频特性曲线,选取三种采样频率,即=1kHz,300Hz,200Hz。
观测时间选。
为使用DFT,首先用下面公式产生时域离散信号,对三种采样频率,采样序列按顺序用,,表示。
因为采样频率不同,得到的,,的长度不同,长度(点数)用公式计算。
选FFT的变换点数为M=64,序列长度不够64的尾部加零。
X(k)=FFT[x(n)],k=0,1,2,3,-----,M-1式中k代表的频率为。
要求:
编写实验程序,计算、和的幅度特性,并绘图显示。
观察分析频谱混叠失真。
(2)频域采样理论的验证
给定信号如下:
编写程序分别对频谱函数在区间上等间隔采样32
和16点,得到:
再分别对进行32点和16点IFFT,得到:
分别画出、的幅度谱,并绘图显示x(n)、的波形,进行对比和分析,验证总结频域采样理论。
提示:
频域采样用以下方法容易变程序实现。
①直接调用MATLAB函数fft计算就得到在的32点频率域采样
②抽取的偶数点即可得到在的16点频率域采样,即。
当然也可以按照频域采样理论,先将信号x(n)以16为周期进行周期延拓,取其主值区(16点),再对其进行16点DFT(FFT),得到的就是在的16点频率域采样。
四思考题
如果序列x(n)的长度为M,希望得到其频谱()jXeω在]2,0[π上的N点等间隔采样,当N实验四离散系统的零极点分析
一、实验目的
1.熟悉MATLAB的仿真及应用环境
2.在MATLAB的环境下研究控制系统稳定性
二、实验内容和要求
1.了解离散系统的零极点与系统因果性和稳定性的关系。
2.观察离散系统零极点对系统冲激响应的影响。
3.熟悉MATLAB中进行离散系统零极点分析的常用子函