数字信号处理实验指导书.docx
- 文档编号:7563256
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:23
- 大小:198.89KB
数字信号处理实验指导书.docx
《数字信号处理实验指导书.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验指导书.docx(23页珍藏版)》请在冰豆网上搜索。
数字信号处理实验指导书
《数字信号处理》
实验指导书
适用专业:
电子信息工程
电子信息科学与技术
通信工程等
2010年4月
前言
《数字信号处理》是一门理论与实践并重的课程。
它主要研究数字序列信号的表示方法,并对信号进行运算,以提取包含在其中的特殊信息。
近年来,由于在研究及应用两方面均取得了进展,数字信号处理领域已经日趋成熟,如今,几乎所有大学在本科高年级及研究生一年级都开设了本主题至少一门或更多的课程。
本实验指导书是教科书的教学内容的很好补充。
首先是通过实验加深理解在课堂上获得的理论知识,将理论知识形象化;同时学习MATLAB在信号处理领域的使用,加强动手能力,积累实践经验;另外通过一些综合性实验达到综合分析、运用已学课程知识点的效果。
本课程实验包含四个必修实验:
实验一《离散系统时域分析》为验证性实验,使学生掌握计算离散卷积方法和MATLAB语言实现;实验二《FIR数字滤波器的设计》为综合性,使学生掌握用窗函数法和频率采样法设计FIR数字滤波器的原理和方法,了解不同窗函数对滤波器性能的影响;实验三《IIR数字滤波器的设计》为综合性,可使学生掌握脉冲响应不变法和双线性变换法设计IIR数字滤波器的原理和方法,了解双线性变换法和脉冲响应不变法的特点和区别。
实验四《FFT频谱分析及应用》为验证性,可进一步加深对FFT的理解,熟悉应用FFT对典型信号进行频谱分析的方法。
本指导书适合电子信息工程专业、电子信息科学与技术专业使用,同时也可供开设了《数字信号处理》课程的其他相关专业使用。
目录
实验一离散系统时域分析4
实验二FIR数字滤波器的设计7
实验三IIR数字滤波器的设计11
实验四FFT频谱分析及应用15
附录:
MATLAB基本操作及常用命令18
实验一:
离散系统时域分析
实验学时:
2学时
实验类型:
验证
实验要求:
必修
一、实验目的
1、学习MATLAB语言的编程和调试技巧;
2、掌握笔算离散卷积方法和MATLAB语言实现。
二、实验内容
时域中,离散时间系统对输入信号或延迟信号进行运算处理,生成具有所需特性的输出信号。
本实验通过MATLAB仿真一些简单的离散时间信号和系统,并研究其时域特性。
涉及到离散时间信号、离散时间系统、系统性质及线性卷积等知识点。
三、实验原理与方法和手段
一个离散时间系统,输入信号为x(n),输出信号为y(n),运算关系用T[﹒]表示,则输入与输出的关系可表示为y(n)=T[x(n)]。
(1)线性时不变系统的输入输出关系可通过单位脉冲响应h(n)表示:
y(n)=x(n)*h(n)=
式中*表示卷积运算。
(2)线性时不变系统的实现
可物理实现的线性时不变系统是稳定的、因果的。
这种系统的单位脉冲响应是因果的(单边)且绝对可和的,即:
,
;
。
在MATLAB语言中采用conv实现卷积运算即:
y=conv(x,h),它默认从n=0开始。
四、实验组织运行要求
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、学生根据实验要求,读懂并理解相应的程序;
3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;
4、教师在学生实验过程中予以必要的辅导,独立完成实验;
5、采用集中授课形式。
五、实验条件
1、具有WINDOWS98/2000/NT/XP操作系统的计算机一台;
2.、MATLAB编程软件。
六、实验步骤
在“开始--程序”菜单中,找到MATLAB程序,运行启动;
进入MATLAB后,首先熟悉界面;
在CommandWindow中输入参考程序,并执行;
记录运行结果图形,并与笔算结果对照。
(MATLAB的使用请参考附录)
具体步骤如下:
1、设某LTI的单位脉冲响应
(1)判断此系统是否可实现;
(2)当输入为矩形脉冲
时,求此LTI的输出
;
(3)用MATLAB实现,并画出图形。
2、
,
;
,
,计算卷积
。
七、思考题
结合《信号与系统》课程所学,思考离散时间系统的线性卷积公式与连续时间系统的卷积公式的异同?
八、实验报告要求
1、报告中要给出实验的MATLAB程序,并对每个语句给出注释,说明语句作用;
2、简述实验目的和原理;
3、给出用笔算时卷积和conv计算线性卷积对照图;
4、给出收获和体会。
九、参考程序
程序1
x=[ones(1,10)];
x1=[ones(1,10),zeros(1,40)];
N1=length(x);
n1=0:
N1-1;
N2=50;n2=0:
N2-1;
h=0.8.^n2;
y=conv(x,h);
N=N1+N2-1;n=0:
N-1;
subplot(3,1,1);
stem(n2,x1);subplot(312);
stem(n2,h);subplot(313);
stem(n,y);
程序2
如果
、
的起点不为0,则采用conv_m计算卷积;
编写conv_m函数:
function[y,ny]=conv_m(x,nx,h,nh)
%改进卷积程序
nyb=nx
(1)+nh
(1);
nye=nx(length(x))+nh(length(h));
ny=[nyb,nye];
y=conv(x,h);
在命令窗口输入:
x=[3,11,7,0,-1,4,2];nx=[-3:
3];
h=[2,3,0,-5,2,1];nh=[-1:
4];
[y,ny]=conv_m(x,nx,y,ny)
可得到结果:
y(n)=[6,31,47,6,-51,-5,41,18,-22,-3,8,2],
实验二:
FIR数字滤波器的设计
实验学时:
2学时
实验类型:
综合
实验要求:
必修
知识点:
FIR数字滤波器,窗函数法,频率采样法,
一、实验目的
1、掌握用窗函数法和频率采样法设计FIR数字滤波器的原理和方法;
2、熟悉线性相位FIR滤波器的幅频特性和相频特性;
3、了解不同窗函数对滤波器性能的影响。
二、实验内容
使用MATLAB编写程序,实现FIR数字滤波器的设计。
涉及窗函数法和频率采样法设计FIR数字滤波器的方法、线性相位FIR滤波器的幅频特性和相频特性的特点、窗函数选择及其对滤波器性能的影响等知识点。
三、实验原理与方法和手段
1、窗函数法设计线性相位FIR滤波器的一般步骤为:
(1)确定理想滤波器
的特性;
(2)由
求出
;
(3)选择适当的窗函数,并根据线性相位条件确定窗函数的长度N;在MATLAB中,可由w=boxcar(N)(矩形窗)、w=hanning(N)(汉宁窗)、w=hamming(N)(汉明窗)、w=Blackman(N)(布莱克曼窗)、w=Kaiser(N,beta)(凯塞窗)等函数来实现窗函数设计法中所需的窗函数。
(4)由h(n)=
(n).w(n),0≤n≤N-1,得出单位脉冲响应h(n);
2、对h(n)作离散时间傅立叶变换,得到H(
)。
3、频率采样法设计线性相位FIR滤波器的一般步骤为:
频率采样法是从频域出发,把给定的理想频率响
加以等间隔采样,
,然后以此
作为实际FIR滤波器频率特性的采样值
,即令:
,
由于有限长序列h(n)和它的DFT是一一对应的,应此可以由频域的这N个采样值通过IDFT来确定有限长h(n),同时根据H(z)的内插公式,也可由这N个频域采样值内插恢复出FIR滤波器的H(z)及
。
用频率采样法设计线性相位FIR滤波器的一般步骤为:
(1)设计要求选择滤波器的种类;
(2)根据线性相位的约束条件确定
,进而得到H(k);
4、将H(k)代入H(
)内插公式得到所设计滤波器的频率响应。
关于第(3)步,在MATLAB中可由函数h=real(ifft(H,N))和[db,mag,pha,w]=freqz_m(h,1)实现。
5、本实验用到的特殊函数:
,计算截止频率为Wc理想低通滤波器的单位脉冲响应hd(n)。
[db,mag,pha,w]=freqz_m(b,a),计算幅频和相频响应
[Hr,w,a,L]=Hr_Type1(h);[Hr,w,b,L]=Hr_Type2(h)
%计算1型和2型低通滤波器的振幅响应Hr(w)。
四、实验组织运行要求
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、学生根据实验要求,编写相应的程序;
3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;
4、教师在学生实验过程中予以必要的辅导,独立完成实验;
5、采用集中授课形式。
五、实验条件
具有WINDOWS2000/XP操作系统的计算机一台,安装MATLAB软件
六、实验步骤
在“开始--程序”菜单中,找到MATLAB程序,运行启动;
进入MATLAB后,在CommandWindow中输入自己编写的主程序,并执行;
记录运行结果图形,作分析对比。
具体步骤如下:
1、用窗函数法设计一线性相位FIR低通滤波器,设计指标为:
,
,
,
(1)选择一个合适的窗函数,取N=15,观察所设计滤波器的幅频特性,分析是否满足设计要求;
(2)取N=45,重复上述设计,观察幅频和相频特性的变化,分析长度N变化的影响;
(3)保持N=45不变,改变窗函数(如hamming窗变为blackman窗),观察并记录窗函数对滤波器幅频特性的影响,比较两种窗的特点。
2、用凯塞窗设计一个数字带通滤波器,设计指标为:
,
,
,
,
,
3、用频率采样法设计一个低通滤波器,设计指标为:
,
,
,
(1)采样点数N=33,过渡带设置一个采样点,H(k)=0.5,最小阻带衰减为多少,是否满足设计要求?
(2)采样点数N=34,过渡带设置2个采样点,
,
,最小阻带衰减为多少,是否满足设计要求?
七、实验报告要求
1、报告中要给出实验的MATLAB程序,并对每个语句给出注释,说明语句作用;
2、简述实验目的和原理;
3、按实验步骤附上所设计滤波器的h(n)及相应的幅频和相频特性曲线,比较它们的性能,说明不同的窗函数对滤波器性能的影响;
4、总结窗函数法和频率采样法的特点,归纳设计中的主要公式;
5、收获和建议。
八、部分参考程序
函数
:
functionhd=ideal_lp(wc,N);
alpha=(N-1)/2;
n=0:
1:
N-1;
m=n-alpha+eps;
hd=sin(wc*m)./(pi*m);
函数freqz_m:
function[db,mag,pha,w]=freqz_m(b,a);
[H,w]=freqz(b,a,1000,'whole');
H=(H(1:
1:
501))';
w=(w(1:
1:
501))';
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
函数Hr_Type1:
function[Hr,w,a,L]=Hr_Type1(h);
M=length(h);L=(M-1)/2;
a=[h(L+1)2*h(L:
-1:
1)];
n=[0:
1:
L];
w=[0:
1:
500]'*2*pi/500;
Hr=cos(w*n)*a';
函数Hr_Type2:
function[Hr,w,b,L]=Hr_Type2(h);
M=length(h);
L=M/2;b=2*[h(L:
-1:
1)];
n=[1:
1:
L];n=n-0.5;
w=[0:
1:
500]'*2*pi/500;
Hr=cos(w*n)*b';
实验三:
IIR数字滤波器的设计
实验学时:
2学时
实验类型:
综合
实验要求:
必修
知识点:
IIR数字滤波器,脉冲响应不变法,双线性变换法
一、实验目的
1、掌握脉冲响应不变法和双线性变换法设计IIR数字滤波器的原理和方法;
2、观察双线性变换法和脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法和脉冲响应不变法的特点和区别。
二、实验内容
使用MATLAB编写程序,实现IIR数字滤波器的设计。
涉及脉冲响应不变法和双线性变换法设计IIR数字滤波器的方法、不同设计方法得到的IIR滤波器频域特性异同等知识点。
三、实验原理与方法和手段
1、脉冲响应不变法
所谓脉冲响应不变法就是使数字滤波器的单位脉冲响应序列h(n)等于模拟滤波器的单位冲激响应和
(t)的采样值,即:
,其中,T为采样周期。
在MATLAB中,可用函数impinvar实现从模拟滤波器到数字滤波器的脉冲响应不变映射,调用格式为:
[b,a]=impinvar(c,d,fs)
[b,a]=impinvar(c,d)
其中,c、d分别为模拟滤波器的分子和分母多项式系数向量;fs为采样频率(Hz),缺省值fs=1Hz;b、a分别为数字滤波器分子和分母多项式系数向量。
2、双线性变换法:
由于s平面和z平面的单值双线性映射关系为s=
,其中T为采样周期。
因此,若已知模拟滤波器的传递函数,将上式代入即可得到数字滤波器的系统函数H(z)。
在双线性变换中,模拟角频率和数字角频率的变换关系为:
可见,Ω和w之间的变换关系为非线性的。
在MATLAB中,可用函数bilinear实现从模拟滤波器到数字滤波器的双线性变换映射,调用格式为:
[b,a]=bilinear(c,d,fs)
3、设计步骤:
(1)定技术指标转换为模拟低通原型设计性能指标。
(2)估计满足性能指标的模拟低通性能阶数和截止频率。
利用MATLAB中buttord、cheb1ord、cheb2ord、ellipord等函数,调用格式如:
其中,Wp为带通边界频率,rad/s;Ws为阻带边界频率,rad/s;Rp为带通波动,dB;Rs为阻带衰减,dB;‘s’表示为模拟滤波器;函数返回值n为模拟滤波器的最小阶数;Wn为模拟滤波器的截止频率(-3dB频率),rad/s。
函数适用低通、高通、带通、带阻滤波器。
(3)设计模拟低通原型。
利用MATLAB中buttap、cheb1ap、cheb2ap、elliap等函数,调用格式如[z,p,k]=buttap(n)。
采用上述函数所得到原型滤波器的传递函数为零点、极点、增益表达式,需要和函数[c,d]=zp2tf(z,p,k)配合使用,以转化为多项式形式。
(4)由模拟低通原型经频率变换获得模拟低通、高通、带通或带阻滤波器。
利用MATLAB中lp2lp、lp2hp、lp2bp、lp2bs等函数,调用格式如[c1,d1]lp2lp(c,d,Wn)。
(5)利用脉冲响应不变法或双线性不变法,实现模拟滤波器到数字滤波器的映射。
【说明】
MATLAB信号处理工具箱还提供了模拟滤波器设计的完全工具函数:
butter、cheby1,cheby2、ellip、besself。
用户只需一次调用就可自动完成以上步骤中的3~4步,调用格式如:
[c,d]=butter(n,Wn,’ftype’,‘s’),其中,’ftype’为滤波器类型:
‘high’表示高通滤波器,截止频率为Wn;
‘stop’表示带阻滤波器,Wn=[W1,W2](W1 ‘ftype’缺省时表示为低通或带通滤波器。 4、本实验用到的特殊函数: [db,mag,pha,w]=freqz_m(b,a),计算幅频和相频响应。 四、实验组织运行要求 1、学生在进行实验前必须进行充分的预习,熟悉实验内容; 2、学生根据实验要求,编写相应的程序; 3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理; 4、教师在学生实验过程中予以必要的辅导,独立完成实验; 5、采用集中授课形式。 五、实验条件 1、具有WINDOWS98/2000/NT/XP操作系统的计算机一台; 2、MATLAB编程软件。 六、实验步骤 在“开始--程序”菜单中,找到MATLAB程序,运行启动; 进入MATLAB后,在CommandWindow中输入自己编写的主程序,并执行;记录运行结果图形,作分析对比。 具体步骤如下: 1、查看帮助文件,了解相关函数的调用格式。 2、用双线性变换法设计一个Chebyshev1型数字带通滤波器,设计指标为: , , , , , 3、 , , , , ;分别用脉冲响应不变法和双线性变换法设计一个Butterworth数字低通滤波器 (1)观察所设计数字滤波器的幅频特性曲线,记录带宽和衰减量; (2)比较两种方法的优缺点; (3)利用y=filter(b,a,x)函数观察对实际心电图信号的滤波效果。 人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波器处理。 已知某一实际心电图信号的采样序列如下: x(n)=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,…-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0],共56点 七、实验报告要求 1、报告中要给出实验的MATLAB程序,并对每个语句给出注释,说明语句作用; 2、简述实验目的和原理; 3、按实验步骤附上所设计滤波器的H(z)及相应的幅频特性曲线定性分析得到的图形,判断设计是否满足要求; 4、总结双线性变换法和脉冲不变法的特点和区别; 5、收获与建议。 八、部分参考程序 心电图信号的滤波 %Filter clc;%clear; x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,... -2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,... -4,8,12,12,10,6,6,6,4,0,0,0,0,0,... -2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0]; Y=filter(b,a,x); N=56;n=0: N-1; subplot(2,1,1);plot(n,x);subplot(2,1,2);plot(n,Y); 实验四FFT频谱分析及应用 实验学时: 2学时 实验类型: 验证 实验要求: 必修 一、实验目的: 1、通过实验加深对FFT的理解; 2、熟悉应用FFT对典型信号进行频谱分析的方法。 二、实验内容 使用MATLAB程序实现信号频域特性的分析。 涉及到离散傅立叶变换(DFT)、快速傅立叶变换(FFT)及信号频率分辨率等知识点。 三、实验原理与方法和手段 在各种信号序列中,有限长序列占重要地位。 对有限长序列可以利用离散傅立叶变换(DFT)进行分析。 DFT不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。 有限长序列的DFT是其z变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。 FFT是DFT的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。 在MATLAB信号处理工具箱中的函数fft(x,n),可以用来实现序列的N点快速傅立叶变换。 经函数fft求得的序列一般是复序列,通常要求出其幅值和相位。 MATLAB中提供了求复数的幅值和相位的函数: abs、angle,这些函数一般和fft同时使用。 四、实验组织运行要求 1、学生在进行实验前必须进行充分的预习,熟悉实验内容; 2、学生根据实验要求,读懂并理解相应的程序; 3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理; 4、教师在学生实验过程中予以必要的辅导,独立完成实验; 5、采用集中授课形式。 五、实验条件 1、具有WINDOWS98/2000/NT/XP操作系统的计算机一台; 2.、MATLAB编程软件。 六、实验步骤 在“开始--程序”菜单中,找到MATLAB程序,运行启动; 进入MATLAB后,在CommandWindow中输入实验程序,并执行; 记录运行结果图形,作分析。 具体步骤如下: 1、模拟信号 ,以 进行采样,求: (1)N=40点FFT的幅度频谱,从图中能否观察出信号的2个频谱分量? (2)提高采样点数,如N=128,再求该信号的幅度频谱,此时幅度频谱发生了什么变化? 信号的2个模拟频率和数字频率各为多少? FFT频谱分析结果与理论上是否一致? 2、一个连续信号含三个频谱分量,经采样得以下序列: (1)N=64,df分别为 、1/64,观察其频谱; (2)N=64、128,df为1/64,做128点得FFT,其结果有何不同? 3、被噪声污染得信号,比较难看出所包含得频率分量,如一个由50Hz和120Hz正弦信号构成的信号,受零均值随机噪声的干扰,数据采样率为1000Hz,试用FFT函数来分析其信号频率成分,要求: (1)画出时域波形; (2)分析信号功率谱密度。 注: 在MATLAB中,可用函数rand(1,N)产生均值为0,方差为1,长度为N的高斯随机序列。 七、思考题 FFT对信号进行频谱分析时,信号的频率的分辨率与什么有关? 能否给出其数学关系? 八、实验报告要求 1、报告中要给出实验的MATLAB程序,并对每个语句给出注释,说明语句作用; 2、简述实验目的和原理; 3、按实验步骤附上实验信号序列和幅频特性曲线,分析所得到的图形,说明参数改变时对时域和频域的影响; 4、总结实验中的主要结论; 5、收获和建议。 九、参考程序 程序1: N=40;n=0: N-1; t=0.01*n; x=2*sin(4*pi*t)+5*cos(8*pi*t); k=0: N/2;w=2*pi/N*k; X=fft(x,N); magX=abs(X(1: N/2+1)); subplot(2,1,1);stem(n,x,'.');title('signalx(n)'); subplot(2,1,2);plot(w/pi,magX);title('FFTN=40'); xlabel('f(unit: pi)');ylabel('|X|');grid 程序3: t=0: 0.001: 0.8;x=sin(2*pi*50*t)+cos(2*pi*120*t); y=x+1.5*randn(1,length(t)); subplot(3,1,1);plot(t,x); subplot(3,1,2);plot(t,y); %title('pressanykey,continue...'); %pause; Y=fft(y,512); P=Y.*conj(Y)/512; f=1000*(0: 255)/512; subplot(3,1,3);plot(f,P(1: 256)); 附录: MATLAB基本操作及常用命令 1、MATLAB的启动 启动MATLAB有多种方式,最常用的方法就是双击系统桌面的MATLAB图标, 也可以在开始菜单的程序选项中选择MATLAB快捷方式。 初次启动MATLAB后,将进入MATLAB默认设置的桌面平台。 2、桌面平台 默认设置情
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)