数字信号处理实验教案

  • 格式: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,因此只有当循环卷积长度L1NM时,()lny以L为周期进行周期延拓才无混叠现象.因此取其主值序列就满足()cny=()lny。即满足条件L1NM。

四 思考题

(1)比较线性卷积和循环卷积在序列长度不同时两者的联系?

(2)试着写出循环卷积的源代码?

实验三 时域采样理论与频域采样定理验证

一、实验目的

1时域采样理论与频域采样理论是数字信号处理中的重要理论.要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息;要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。

二、实验原理及方法

时域采样定理的要点是:

(a)对模拟信号)(txa以间隔T进行时域等间隔理想采样,形成的采样信号的频谱)(ˆjX是原模拟信号频谱()aXj以采样角频率s(Ts/2)为周期进行周期延拓。公式为:

)](ˆ[)(ˆtxFTjXaa )(1nsajnjXT

(b)采样频率s必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的

频谱不产生频谱混叠。

利用计算机计算上式并不方便,下面我们导出另外一个公式,以便用计算机上进行实验。

理想采样信号)(ˆtxa和模拟信号)(txa之间的关系为:

naanTttxtx)()()(ˆ

对上式进行傅立叶变换,得到:

dtenTttxjXtjnaa])()([)(ˆ

dtenTttxtjna)()( =

在上式的积分号内只有当nTt时,才有非零值,因此:

nnTjaaenTxjX)()(ˆ

上式中,在数值上)(nTxa=)(nx,再将T代入,得到:

nnjaenxjX)()(ˆ

上式的右边就是序列的傅立叶变换)(jeX,即