数字信号处理实验报告_第1页
数字信号处理实验报告_第2页
数字信号处理实验报告_第3页
数字信号处理实验报告_第4页
数字信号处理实验报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验报告课程名称 数字信号处理 姓名: 学号:实验二、基于MATLAB的数字滤波器的设计1实验目的1)熟悉IIR数字滤波器设计的原理与方法。2)熟悉用窗函数法设计FIR数字滤波器设计的原理与方法。3)掌握IIR和FIR数字滤波器的计算机仿真方法。4)通过观察对实际心电信号的滤波作用,获得数字滤波的感性知识。2实验原理IIR滤波器常用的一种设计方法是借助模拟滤波器的设计方法进行的,即,先设计模拟滤波器得到传输函数 ,然后将 按某种方法转换成数字滤波器的系统函数 。转换方法主要有脉冲响应不变法和双线性变换法。脉冲响应不变法就是使数字滤波器的单位脉冲响应模仿模拟滤波器的冲激响应,由于时域采样后造成频

2、域的周期延拓,可能会造成频域的混叠,因此不适合高通、带阻滤波器的设计。另一种常用的方法是双线性变换法。双线性变换法为了克服s平面与z平面的非一一对应关系,采用了非线性频率压缩方法:首先将原s平面压缩到s1平面的一条横带内,再将s1平面映射到z平面上。虽然双线性变换法的模拟频率与数字频率间是非线性的关系,但消除了频率的混叠。FIR滤波器常用的一种设计方法是窗口法。如果希望滤波器的频率响应为 ,则其对应的单位脉冲响应为 。窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼近hd(n)。由于hd(n)往往是无限长序列,且是非因果的,所以用窗函数w(n)将hd(n)截断,并进行加权处理,得到h

3、(n)= hd(n)w(n),h(n)就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数为 ,式中N为所选窗函数w(n)的长度。用窗函数法设计的滤波器性能取决于窗函数的类型及窗口长度。设计中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度。选定窗函数类型和窗口长度后,求出单位脉冲响应和频率响应。频率响应是否满足要求,要进行验算,如果不满足要求,则要重新选择窗函数类型和长度,再次验算,直至满足要求为止。如果要求线性相位特性,则单位脉冲响应还必须满足偶对称或奇对称特性。根据单位脉冲响应的奇偶对称性和长度的奇偶性又将线性相位FIR滤波器分成四类,要根据所设计的滤

4、波特性正确选择其中一类。3、 实验内容1) 设计给定指标的Butterworth数字低通滤波器。设计指标参数为:在通带内0,0.2频率区间上,最大衰减小于1dB;在阻带0.3,内,最小衰减大于15dB。并画出滤波器的频响特性曲线。2) 设计给定指标的FIR数字低通滤波器。3) 用所设计的数字滤波器对实际心电信号进行仿真滤波处理,分别打印出滤波前后的心电信号时域和频域波形。4、 实验步骤1) 复习有关Butterworth模拟滤波器设计和用双线性变换法设计IIR数字滤波器的内容,用双线性变换法设计数字滤波器的系统函数。2) 复习用窗函数法设计FIR数字滤波器的内容,并设计数字滤波器的系统函数。3

5、) 用Matlab中的函数画出心电信号的时域和频域波形。4) 用Matlab中的函数设计满足要求的数字滤波器,画出滤波器的频响曲线。5) 用设计出的滤波器对心电信号进行滤波处理,画出滤波后的信号时域与频域波形。6) 用C语言编写滤波器仿真程序,对心电信号进行滤波处理,将结果与步骤5的结果进行比较。5、实验结果1)设计给定指标的Butterworth数字低通滤波器:代码:clcN,wc= buttord(0.2,0.3,1,15);b,a= butter(N,wc)设计结果:b = 0.0007 0.0044 0.0111 0.0148 0.0111 0.0044 0.0007a = 1.000

6、0 -3.1836 4.6222 -3.7795 1.8136 -0.4800 0.05442)设计给定指标的FIR数字低通滤波器:代码:clc;wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp;N0=ceil(6.6*pi/deltaw);%计算海明窗长度N=N0+mod(N0+1,2);wd=(hamming(N); wc=(wp+ws)/2;t=(N-1)/2;n=0:1:N-1;hd=sin(wc*(n-t+eps)./(pi*(n-t+eps);h=hd.*wdA,w=freqz(h);mag=abs(A);db=20*log10(mag+eps)/max(mag);

7、plot(w/pi,db);title(幅度响应(db);xlabel(w/pi);ylabel(20log|H(ejw|(db);axis(0,1,-80,5);频率响应:产生心电图信号:代码: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,2,-4,-2,0,-2,-4,-4,2,0,0,-2,-4,-2,0,0,-2,-4,-2

8、,0,0,-4,-4,-2,-2,-4,-6,-6,-4,-4,8,-10,-8,-6,-6,-8,-12,-10,-8,-8,-10,-12,-10,-8,-8,-10,-10,-8,-6,-6,-8,-8,-4,-2,-4,-4,-4,0,0,-2,-4,-2,-2,0,-4;tt=0:119;figure(2);plot(tt,x);y=fft(x);figure(3);plot(abs(y);时域波形:频域波形:经过IIR滤波和FIR滤波:代码:N1,wc= buttord(0.2,0.3,1,15);b,a= butter(N1,wc);Y1=filter(b,a,x);figure

9、(4);plot(Y1);Y2=conv(x,h);figure(5);plot(Y2);F1=fft(Y1);figure(6);plot(abs(F1);F2=fft(Y2);figure(7);plot(abs(F2);经过IIR滤波后时域波形:经IIR滤波后的频域波形:经FIR滤波后的时域波形:经FIR滤波后的频域波形: FIR滤波器的C语言代码:RunIntegerFIRFilter(double *FiltCoeff, int NumTaps, double *Signal, double *FilteredSignal, int NumSigPts) int j, k; long

10、 long y; long long One = 1; double TwoToN = One (RegisterSize-1); / Minus one because of the sign bit. long long Reg256; long long IntFirCoeff256; for(j=0; j256; j+)Regj = 0; / Init the delay registers. for(j=0; jNumTaps; j+)IntFirCoeffj = RndWholePart(TwoToN * FirCoeffj); / Round the coefficient to the nearest int for(j=0; j1; k-)Regk-1 = Regk-2; Reg0 = R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论