数字信号处理实验教案
- 格式:doc
- 大小:428.50 KB
- 文档页数:14
数字信号处理实验教案
信息工程学院—通信工程教研室
数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼同学们的独立解决问题的能力。本讲义在第三版的基础上编写了五个实验,前2个实验属基础性的验证性实验,第3、4、5个实验属基本应用综合性实验。
实验一 离散时间信号的MATLAB实现
实验二 线性卷积与循环卷积的原理及应用
实验三 频率采样定理
实验四 离散系统的因果性和稳定性及频率响应特性
实验五 基于MATLAB的快速傅里叶变换
根据教学进度,理论课结束后进行相关实验。
实验一 时域离散信号的产生
一 实验目的
(1)了解常用的时域离散信号及其特点。
(2)掌握MATLAB产生常用时域离散信号的方法。
二 实验内容
(1) 编写程序,产生下列离散序列:
A。f(n)=δ(n) (—3〈n<4)
B.f(n)=e(0。1+j1。6π)n (0〈n<16)
(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〈n〈16)的离散序列
(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表示不同的值。
假设()hn和()xn都是有限长序列,长度分别为N和M,它们的线性卷积可以表示如下:
10()()()()Nlmhnxnhmxnmy
MATLAB信号处理工具箱提供了conv函数,该函数用于计算两个有限序列的卷积。
2 循环卷积定理
1)循环卷积的引入
为了提高线性卷积的速度,希望用DFT(FFT)计算线性卷积.从而引入循环卷积来运用DFT快速计算线性卷积。循环卷积运用到离散傅立叶变换的循环移位性质,即时域循环移位定理。 2)循环卷积的时域计算方法
假设()hn和()xn都是有限长序列,长度分别为N和M,它们的L点循环卷积可以表示如下:
10()()()()(())LLcLmhnxnnyhmxnmR max[,]LNM
L称为循环卷积区间长度。n和m的变化区间均是[0,L—1],直接计算该式比较麻烦。计算机中采用矩阵相乘或快速傅里叶变换(FFT)的方法计算循环卷积。用矩阵相乘的方法计算两个序列的循环卷积,这里关键是先形成循环卷积矩阵。如果h(n)的长度N
3)线性卷积与循环卷积的关系
()()()LclqnnqLnyyR
上式说明,()cny等于()lny以L为周期的周期延拓序列的主值序列。()lny的长度为1NM,因此只有当循环卷积长度L1NM时,()lny以L为周期进行周期延拓才无混叠现象.因此取其主值序列就满足()cny=()lny。即满足条件L1NM。
四 思考题
(1)比较线性卷积和循环卷积在序列长度不同时两者的联系?
(2)试着写出循环卷积的源代码?
实验三 时域采样理论与频域采样定理验证
一、实验目的
1时域采样理论与频域采样理论是数字信号处理中的重要理论.要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息;要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。
二、实验原理及方法
时域采样定理的要点是:
(a)对模拟信号)(txa以间隔T进行时域等间隔理想采样,形成的采样信号的频谱)(ˆjX是原模拟信号频谱()aXj以采样角频率s(Ts/2)为周期进行周期延拓。公式为:
)](ˆ[)(ˆtxFTjXaa )(1nsajnjXT
(b)采样频率s必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的
频谱不产生频谱混叠。
利用计算机计算上式并不方便,下面我们导出另外一个公式,以便用计算机上进行实验。
理想采样信号)(ˆtxa和模拟信号)(txa之间的关系为:
naanTttxtx)()()(ˆ
对上式进行傅立叶变换,得到:
dtenTttxjXtjnaa])()([)(ˆ
dtenTttxtjna)()( =
在上式的积分号内只有当nTt时,才有非零值,因此:
nnTjaaenTxjX)()(ˆ
上式中,在数值上)(nTxa=)(nx,再将T代入,得到:
nnjaenxjX)()(ˆ
上式的右边就是序列的傅立叶变换)(jeX,即