数字信号处理实验讲义(233)文档格式.doc
《数字信号处理实验讲义(233)文档格式.doc》由会员分享,可在线阅读,更多相关《数字信号处理实验讲义(233)文档格式.doc(20页珍藏版)》请在冰豆网上搜索。
3、熟悉应用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);
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));
实验二IIR数字滤波器的设计
3学时
综合
知识点:
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<
W2);
‘ftype’缺省时表示为低通或带通滤波器。
4、本实验用到的特殊函数:
[db,mag,pha,w]=freqz_m(b,a),计算幅频和相频响应。
2、学生根据实验要求,编写相应的程序;
2、MATLAB编程软件。
进入MATLAB后,在CommandWindow中输入自己编写的主程序,并执行;
记录运行结果图形,作分析对比。
1、查看帮助文件,了解相关函数的调用格式。
2、1)用双线性变换法设计一个Chebyshev1型数字带通滤波器,设计指标为:
,,,,,,
2)(BW型数字带通滤波器,,,,,)
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点
七、实验报告要求
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,-