数字信号处理实验指导手册【模板】
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理实验指导手册
西安文理学院
机械电子工程系
目录
实验一离散时间信号 (2)
实验二时域采样定理 (7)
实验三离散时间系统 (10)
实验四线性卷积与圆周卷积 (13)
实验五用FFT作谱分析 (16)
实验六用双线性变换法设计IIR数字滤波器 (18)
实验七 FIR滤波器设计 (20)
实验一离散时间信号
【实验目的】
用MATLAB实现离散时间信号的表示和运算,掌握MATLAB的基本命令和编程方法,为后续实验打基础。
【实验原理】
在数字信号处理中,所有的信号都是离散时间信号,因此应首先解决在MATLAB中如何表示离散信号。
设一模拟信号经A/D变换后,得到序列信号
由于MATLAB对下标的约定为从1开始递增,因此要表示,一般应采用两个矢量,如:这表示了一个含9个采样点的矢量:
【实验内容】
熟悉下面序列(信号)的产生方法及相关运算
1、单位采样序列
2、单位阶跃序列
3、信号翻转
4、信号相加
5、信号折叠
6、信号移位
【参考程序】
单位采样序列
1、impluse1.m (图1-1)
n=10;
x=zeros(1,n);
x(1)=1;
plot(x,'*');
2、impluse2.m(图1-2)
n=-5:5;
x=[n==0];
stem(x,'*');
3、impluse3.m(图1-3)
n=1:10;
n0=3;
x=[(n-n0)==1];
plot(x,'*');
单位阶跃序列
1、steps1.m(图1-4)
n=10;
x=ones(1,n);
plot(x,'*');
2、steps2.m(图1-5)
n=10;
x=ones(1,n);
x(1)=0;
x(2)=0;
plot(x,'*');
3、steps3.m(图1-6)
n=0:10;
n0=4;
x=[(n-n0)>=0];
plot(x,'*');
信号翻转(中心对称)
flip.m(图1-7)
x=0:6;
figure(1);
subplot(211);
plot(x,'*');
y=fliplr(x);
subplot(212);
plot(y,'*');
信号相加Showsigadd.m(图1-8)
clear all
figure(1);
[x1 n1]=impseq(-4,-5,5); subplot(3,1,1);
stem(n1,x1,'*');
title('信号相加演示');
ylabel('x1');
[x2 n2]=stepseq(0,-3,7); subplot(3,1,2);
stem(n2,x2,'*');
ylabel('x2');
[y n]=sigadd(x1,n1,x2,n2); subplot(3,1,3);
stem(n,y,'*');
ylabel('y=x1+x2)')
信号折叠
%showfold.m(图1-9)clear all
[x n]=impseq(2,-5,3); subplot(2,1,1);
stem(n,x);
title('信号折叠演示'); [y,n]=sigfold(x,n); subplot(2,1,2);
stem(n,y);
信号移位
%showsigshift.m(图1-10)
figure(1)
clear all
[x,n]=stepseq(0,-5,5);
subplot(211);
stem(n,x,'*');
title('信号移位演示’);
[y,n]=sigshift(x,n,3);
subplot(212)
stem(n,y);
【思考题】
1、用MATLAB实现信号的相加、移位、反转运算。
2、用MATLAB计算信号的能量。
实验二时域采样定理
【实验目的】
1、掌握奈奎斯特抽样定理的含义,以及在实际应用中需要注意的问题。
2、熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。
【实验原理】
1、理想抽样
信号连续信号经过时间间隔为T的均匀采样后,得到的理想抽样信号可表示为
其傅里叶变换为
可见,一个连续时间信号经过理想抽样后,其频谱将以抽样频率为间隔而重复,这就是频谱产生周期延拓。
如果信号的最高频谱超过,则各周期延拓分量产生频谱的交叠,称为混叠现象。
要想抽样后能够不失真地还原出原信号,则抽样频率必须大于两倍信号谱的最高频率(,这就是奈奎斯特抽样定理。
2、抽样恢复
如果满足奈奎斯特抽样定理,即信号谱的最高频率小于折叠频率,则抽样后不产生频谱混叠,有
故将通过以下理想低通滤波器:
就可得到原信号频谱
所以输出端即为原模拟信号
【实验内容】
用实验的方法验证抽样定理。
对下面连续信号:
进行采样,可得到采样序列
其中A为幅度因子,为衰减因子,是模拟角频率,T为采用间隔。
这些参数都要在实验过程中由键盘输入,产生不同的和。
产生采样信号序列,使A=144.128,,,
图2—1给出了连续信号的幅频特性曲线,由此图可以确定对应采用的采样频率。
1、取采样频率,即T=1ms.观察所得采样的幅频特性和图2-1中的,在折叠频率附近有无明显差别。
应当注意,实验中所得频谱是用序列的傅里叶变换公式求得的,所以在频率度量上存在关系:为数字频率,为模拟频率。
2、改变采样频率,,观察的变化,并作记录(打印曲线);进一步降低采样频率,,观察频谱混叠是否明显存在,说明原因,并记录(打印)这时的曲线。
3、变采样频率,,观察的变化,并作记录(打印曲线);观察过采样时的曲线,并记录(打印)这时的曲线。
【思考题】
采样频率不同时,相应理想采样序列的傅里叶变换频谱的数字频率刻度是否都相同。
它们所对应的模拟频率是否相同?为什么?
实验三离散时间系统
【实验目的】
1、熟悉时域离散系统的时域特性。
2、利用卷积方法观察分析系统的时域特性。
3、掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。
【实验原理】
离散信号和系统在时域均可用序列来表示。
序列图形给人以形象直观的印象,他可加深我们对信号和系统的时域特征的理解。
本实验将观察分析几种信号及系统的时域特性。
为了在数字计算机上观察分析各种序列的频域特性,通常对在上进行M点采样
来观察分析。
对长度为N的有限长序列x(n),有
(3-1)
其中
通常M应该取得大一些,以便观察谱的细节变化。
取模||可绘出幅频特性曲线。
一个时域离散线性非移变系统的输入/输出关系为
y(n)=x(n)*h(n)= (3-2)
这里,y(n)为系统的输出序列,x(n)为输入序列。
h(n)、x(n)可以无限长,也可以是有限长。
为了计算机绘图观察方便,主要讨论有限长情况。
如果h(n)和x(n)的长度分别为N和M,则y(n)的长度为L=N+M-1。
这样,(3-2)式所描述的卷积运算就是序列移位、相乘和累加的过程。
上述卷积运算也可以在频域实现
(3-3)
式(3-3式右边的相乘是在各频域点上的频谱值相乘。
【实验内容】
一、认真复习离散信号与系统、线性卷积、序列的傅里叶变换及性质等有关内容,阅读本实验原理。
二、编制实验用相关子程序。
①信号产生子程序,用于产生实验中要用到的下列信号序列:
a.单位采样序列:
b.矩形序列:
②系统单位脉冲响应序列产生子程序。
本实验要用到两种FIR系统。
a.
b.
③有限长序列线性卷积子程序,用于完成两个给定长度的序列的卷积。
可以直接调用MATLAB语言中的卷积函数。
用于两个有限长序列的卷积,它假定两个序列都从n=0开始。
调用格式如下:
y=
其中参数x和y是两个已赋值的行向量序列。
三、在完成编制上述子程序的基础上,完成时域离散信号、系统和系统响应分析。
1、观察信号和系统的时域和频域特性;利用线性卷积求得信号通过系统的响应y(n),比较所求响应y(n)和的时域及频域特性,注意它们之间有无差别,绘图说明,并用所学理论解释所得结果。
2、观察系统对信号的响应特性。
利用线性卷积求系统响应y(n),并判断y(n)
图形及其非零值序列长度是否与理论结果一致。
调用序列傅里叶变换数值计算子程序,求得,观察特性曲线,定性判断结果的正确性。
改变的长度,取N=5,重复该实验。
注意参数变化的影响,说明变化前后的差异,并解释所得结果。
3、卷积定理的验证。
对信号和分别求出其频谱,按(3-3)式计算:
并绘出曲线与直接对y(n)进行傅里叶变换所得幅频特性进行比较,验证时域卷积定理。
【思考题】
1、试用MATLAB编写卷积函数y(n)=conv(x,n)。
2、在卷积定理验证的实验中,如果选用不同的频率采样点数M值,例如,选M=10和M=20,分别做序列的傅里叶变换,求得
0,1,…,M-1
所得结果之间有无差异?为什么?
实验四线性卷积与圆周卷积
【实验目的】
理解离散序列的线性卷积与圆周卷积的原理,比较其相同点和不同点,掌握线性卷积与圆周卷积的计算步骤和计算方法,能熟练使用MATLAB的相关命令。
【实验原理】
1.线性卷积
设两序列为和,则和的线性卷积定义为
卷积和的运算在图形表示上可分为4步(图4-1):
(1)翻褶:先在哑变量坐标m上做出x(m)和h(m),将h(m)以m=0的垂直轴为对称轴翻褶成h(-m)。
(2)移位:将h(-m)移位,即得h(n-m)。
当n为正整数时,右移n位。
当n为负整数时,左移n位。
(3)相乘:再将h(n-m)和x(m)的相同m值的对应点值相乘。
(4)相加:把以上所有对应点的乘积叠加起来,即得y(n)值。
注意:对于得到的结果仍然是一个序列,若x(n)的长度是N,h(n)的长度是M,则y(n)的长度是N+M-1。
2.圆周卷积
设两序列为x(n)和h(n),则x(n)和h(n)的圆周卷积和定义为
=
圆周卷积过程(图4-2):
(1)补零:若x(n)的长度是N,h(n)的长度是M,取H>=max(N,M),对序列补零至点H。
(2)周期延拓:先在哑变量坐标m上做出x(m)和h(m),将h(m)周期延拓。
(3)翻褶,取主值序列:对h(m)以m=0的垂直轴为对称轴翻褶成h(-m),然后取主值序列。
(4)圆周移位:对得到的序列进行圆周移位。
(5)相乘相加:与x(m)对应项相乘,并累加,得到y(n)。
3.线性卷积与圆周卷积的关系
时域的圆周卷积在频域上相当于两序列的DFT相乘,因而可以采用DFT的快速算法。
它与线性卷积相比,计算速度可以大大加快。
但是,一般实际问题都是线性卷积运算。
4.结论
若两序列为x(n)和h(n),长度分别为N、M;则其线性卷积的长度为N+M-1,而圆周卷积的长度为K=max(N,M)。
只有L>=N1+N2-1时,则L点圆周卷积和线性卷积相等。
【实验内容】
(1)计算下面信号的线性卷积、圆周卷积,比较什么情况下二者相等。
(2)用FFT快速运算上述线性卷积。
【思考题】
自己给定两个序列,仿照上面的例程,实现其线性卷积和圆周卷积,并比较其结果。
实验五用FFT作谱分析
【实验目的】
1、进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。
2、熟悉FFT算法原理和FFT子程序的应用。
3、学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
【实验步骤】
1、复习DFT的定义、性质和用DFT作谱分析的有关内容。
2、复习FFT算法原理与编程思想,并对照DIT-FFT运算流图和程序框图,编写FFT子程序。
3、编制信号产生子程序,产生以下典型信号供谱分析用:
应当注意,如果给出的是连续信号,则首先要根据其最高频率确定采样速率以及由频率分辨率选择采样点数N,产生对应序列。
对周期序列,最好截取周期的整数倍进行谱分析,否则有可能产生较大的分析误差。
请根据DFT的隐含周期性思考这个问题。
【实验内容】
按照图5-1所给程序框图,完成下述实验内容:
1、对所给信号逐个进行谱分析。
下面给出针对各信号的FFT变换区间N以及对连
续信号的采样频率,供实验时参考。
,,,,: N=8, 16
, N=16, 32, 64
2、令,用FFT计算8点和16点离散傅里叶变换。
【思考题】
1、在N=8时,和的幅频特性会相同吗?为什么?N=16呢?
2、如果周期信号的周期预先不知道,如何用FFT进行谱分析?
实验六用双线性变换法设计IIR数字滤波器
【实验目的】
1、熟悉用双线性变换法设计IIR数字滤波器的原理与方法。
2、掌握数字滤波器的计算机仿真方法。
3、通过观察对实际心电图信号的滤波作用,获得数字滤波的感性认识。
【实验内容】
1、用双线性变换法设计一个巴特沃斯低通IIR数字滤波器。
设计指标参数为:在通带内频率低于0.2π时,最大衰减小于1dB;在阻带内[0.3π,π]频率区间上,最小衰减低于15db.
2、以0.02π为采样间隔,打印出数字滤波器在频率区间[0,π/2]上的幅频响应特性曲线。
3、用所设计的滤波器对实际心电图信号采样序列(在本实验后面给出)进行仿真滤波处理,并分别打印出滤波前后的心电图信号波形图,观察总结滤波作用与效果。
【实验步骤】
1、复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR数字滤波器的内容,按照教材例6.4.2,用双线性变换法设计数字滤波器系统函数H(z).例6.4.2中已求出满足本实验要求的数字滤波器系统函数:
令
式中
其系数为:
由上式可见,滤波器H(z)由三个二阶滤波器、和级联组成,如图5-1所示。
2、编写滤波器仿真程序,计算H(z)对心电图信号采样序列x(n)的响应序列y(n)。
3、在通用计算机上运行仿真滤波程序,并调用通用绘图子程序,完成实验内容2和3。
心电图信号采样序列x(n)如下所示:
人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波器处理后,才能作为判断心脏功能的有用信息。
下面给出一实际心电图信号采样序列样本,其中存在高频干扰。
在试验中,以作为输入序列,滤除其中的干扰成分。
【思考题】
用双线性变换法设计数字滤波器过程中,变换公式为其中T的取值,对设计结果有无影响?为什么?
实验七FIR滤波器设计
【实验目的】
1、掌握用窗函数法设计FIR数字滤波器的原理和方法。
2、熟悉线性相位FIR数字滤波器特性。
3、了解各种窗函数对滤波器性能的影响。
【实验原理】
用窗函数法设计FIR滤波器的思路:一般先根据指标给出相应理想滤波器频率响应,然后用一个FIR滤波器
来逼近。
在时域上进行设计,先由的傅里叶反变换导出,即
由于是矩形频率响应,故一定是无限长序列且非因果的,而FIR滤波器必然是有限长的,因此要用有限长的逼近无限长的,一种较为有效的方法是用一个有限长的窗函数序列w(n)来截取,即
而窗函数序列的形状及长度需要根据滤波器的参数来决定。
【实验内容】
1、复习用窗函数法设计FIR数字滤波器一节内容,阅读本实验原理,掌握设计步骤,
2、编写能产生矩形窗、升余弦窗、改进升余弦窗和二阶升余弦窗的窗函数子程序;编写实验用主程序,主程序框图如图6-1所示,仅供参考。
其中幅度特性要求用dB表示。
设
画图时,用打印幅度特性。
第点对应的频率。
为使曲线包络更接近的幅度特性曲线,DFT 变换区间要选大些。
3、用升余弦窗设计一线性相位低通数字滤波器,截止频率rad。
窗口长度N=15,33。
要求在两种窗口长度情况下,分别求出,打印出相应的幅频特性和相频特性曲线,观察3dB带宽和20dB带宽。
总结窗口长度N对滤波器特性的影响。
4、,用四种窗函数设计线性相位低通滤波器。
绘制相应的幅频特性曲线,观察3dB带宽和20dB带宽以及阻带最小衰减,比较四种窗函数对滤波器特性的影响。
【思考题】
1、为什么性能相同的IIR滤波器阶数要比FIR滤波器阶数低?
2、阻带衰减和过渡带宽是由什么决定的?
3、如果给定通带截止频率和阻带截止频率以及阻带最小最小衰减,如何用窗函数法设计线性相位低通滤波器?写出设计步骤。