DSP数字滤波器课程设计任务书_第1页
DSP数字滤波器课程设计任务书_第2页
DSP数字滤波器课程设计任务书_第3页
DSP数字滤波器课程设计任务书_第4页
DSP数字滤波器课程设计任务书_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、基于DSP的数字滤波器的设计及仿真实现目录摘要2 第一章.绪论31.1 数字滤波器的背景及意义31.2 数字滤波器的原理4第二章.基于MATLAB的语音加噪信号数字滤波处理62.1 IIR数字滤波器的设计原理62.2 IIR滤波器的仿真结果7 第三章.数字滤波器的DSP实现103.1 DSP 系统的设计与开发103.2 DSP 系统的特点103.3 IIR数字滤波器在DSP上的实现步骤和条件 103.4 DSP系统的开发工具113.5 DSP系统的设计流程图12 第四章.IIR滤波器的仿真代码及结果图134.1 课程设计核心代码134.2 仿真结果18 第五章.结果分析与总结195.

2、1 结果分析195.2 总结19 参考文献20摘要数字滤波,是数字信号处理的基本核心内容之一,占有极重要的地位。它通过对采样数据信号进行数学运算处理来达到频域滤波目的,是图像处理、语音处理、模式识别、通信、软件无线电、谱分析等应用中的一个基本处理算法。与模拟滤波器相比,数字滤波器不用考虑器件的噪声、电压漂移、温度漂移等问题,可以容易的实现不同幅度和相位频率等特性指标,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用很受欢迎。现在通过DSP编程并结合TI公司的数字信号处理器TMs320VC5402设计了一款稳定度高,低功耗的

3、IIR数字滤波器系统,并完成了软硬调试工作。关键字:数字滤波器 DSP IIR滤波第1章 绪论1.1数字滤波器的背景及意义 随着集成电路技术的发展,各种新型的大规模和超大规模集成电路不断涌现集成电路技术与计算机技术结合在一起,使得对数字信号处理系统功能的要求越来越强。DSP技术已在通信、控制、信号处理、仪器仪表、医疗、家电等很多领域得到了越来越广泛的应用.在数字信号处理中数字滤波占有极其重要的地位。数字滤波在语音信号、图象处理模式识别和谱分析等领域中的一个基本的处理技术。数字滤波与模拟滤波相比数字滤波具有很多突出的优点,主要是因为数字滤波器是过滤时间离散信号的数字系统,它可以用软件或用硬件来实

4、现,而且在两种情况下都可以用来过滤实时信号或非实时信号。 尽管数字滤波器这个名称一直到六十年代中期才出现,但是随着科学技术的发展及计算机的更新普及,数字滤波器有着很好的发展前景。几乎在所有的工程技术领域中都会涉及到信号的处理问题,其信号表现形式有电、磁、机械以及热、光、声等。信号处理的目的一般是对信号进行分析、变换、综合、估值与识别等。如何在较强的噪声背景下提取出真正的信号或信号的特征,并将其应用于工程实际是信号处理的首要任务。根据处理对象的不同,信号处理技术分为模拟信号处理系统和数字信号处理系统。数字信号处理(Digital signal Processing,DSP)与

5、模拟信号处理相比有许多优点,如相对于温度和工艺的变化数字信号要比模拟信号更稳健,在数字表示中,精度可以通过改变信号的字长来更好地控制,所以DSP技术可以在放大信号的同时去除噪声和干扰,而在模拟信号中信号和噪声同时被放大,数字信号还可以不带误差地被存储和恢复、发送和接收、处理和操纵。许多复杂的系统可以用高精度、大信噪比和可重构的数字技术来实现。 数字信号处理中一个非常重要且应用普遍的技术就是数字滤波。所谓数字滤波,是指其输入、输出均为数字信号,通过一定的运算关系改变输入信号所含的频率成分的相对比例或滤除某些频率成分,达到提取和加强信号中的有用成份,消弱无用的干扰成份的目的。数字滤波与模拟滤波相比

6、,有精度高、可靠性高、灵活性好等突出优点,可以满足对幅度和相位的严格要求,还能降低开发费用,缩短研制到应用的时间,在很多领域逐步代替了传统的模拟信号系统。数字滤波器,在数字信号处理中有着广泛的应用,因此,无论是在理论研究上还是在如通讯、HDTV(高清晰度电视)、雷达、图象处理、数字音频等实际应用上都有着美好的技术前景和巨大的实用价值。  基于matlab实现数字滤波设计,可通过修改滤波器的参数十分方便地改变滤波器的特性,因此我们有必要对滤波器的设计方法进行研究,理解其工作原理优化设计方法,设计开发稳定性好的滤波器系统。掌握滤波器的设计技术和原理能为在通信领域、信号处理领域等诸多领域中

7、对数字滤波器的设计提供技术和准备,这不仅具有重要的理论意义同时还具有重要的现实意义。1.2数字滤波器原理 数字滤波器是对数字信号进行滤波处理以得到期望的响应特性的离散时间系统。作为一种电子滤波器,数字滤波器与完全工作在模拟信号域的模拟滤波器不同。数字滤波器工作在数字信号域,它处理的对象是经由采样器件将模拟信号转换而得到的数位信号。数字滤波器的工作方式与模拟滤波器也完全不同:后者完全依靠电阻器、电容器、晶体管等电子元件组成的物理网络实现滤波功能;而前者是通过数字运算器件对输入的数字信号进行运算和处理,从而实现设计要求的特性。图1 数字滤波器原理图 数字滤波器对信号滤波的方法是:用数字计算机对数字

8、信号进行处理,处理就是按照预先编制的程序进行计算。数字滤波器的原理如图 1所示,它的核心是数字信号处理器。 数字滤波器是按照程序计算信号,达到滤波的目的。通过对数字滤波器的存储器编写程序,就可以实现各种滤波功能。对数字滤波器来说,增加功能就是增加程序,不用增加元件,不受元件误差的影响,对低频信号的处理也不用增加芯片的体积。用数字滤波方法可以摆脱模拟滤波器被元件限制的困扰 数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号(对应数字频率)转换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号(对应模拟频率)时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波

9、器输入信号的数字频率(2*f/fs,f为模拟信号的频率,fs为采样频率,注意区别于模拟频率),按照奈奎斯特抽样定理,要使抽样信号的频谱不产生重叠,应小于折叠频率(ws/2=),其频率响应具有以2为间隔的周期重复特性,且以折叠频率即=点对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。 数字滤波器有低通、高通、带通、带阻和全通等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器,以及f.i.r滤波器。第2章 基于MATLAB的语音加噪信号数字滤波处理2.1 IIR 数字滤波器的设计原理数字滤波器根据其冲激响应函数的时域特性,

10、可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR 滤波器的特征是,具有无限持续时间冲激响应。这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR 滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和 Chebyshev 逼近法等等。随着MATLAB 软件尤其是 MATLAB 的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。数字滤波器设计的基本步骤如下:(1)确定指标在设计一个滤波

11、器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于 FIR 滤波器的设计。第二种指标是相对指标。它以分贝值的形式给出要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中具有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:只包含实数算法,不涉及复数运算;不存在延迟失真,只有固定数量的延迟;长度为 N 的滤波器(阶数为N-1),计算量为 N/2 数量级。因此,本文中滤波器

12、的设计就以线性相位 IIR 滤波器的设计为例。(2)逼近确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。(3)性能分析和计算机仿真上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。2.2 IIR滤波器的仿真结果图2 原始语音信号图3 添加的噪声信号 由图2可以看出声波的频率主要集中在0-1500之间,故我选择将噪声分两种情况添加:将噪声添加在20

13、00HZ之后,采用低通滤波器滤除噪声还原原始声音;将噪声添加在2000HZ之后,采用带通滤波器滤除噪声还原原始声音。图4 加噪之后的语音信号图5 滤除噪声后的语音信号经过在Matlab中的仿真不断改进过程中,我发现滤波器的设计若采用巴特沃斯滤波,产生的系数太小,有得甚至超出精度,若在将其转到CCS设计滤波器的话肯定会超出精度,所以我采用的是椭圆滤波器。在CCS仿真时我采用的是直接二型结构的椭圆滤波器。直接二型结构如图6所示:图6 直接二型结构示意图滤波器设计流程如下 开始 开始 根据音频特性和噪声 添加滤波器分子分母系数 设计滤波器系数 产生波形(用两个正弦波代替语音和噪声)调用Matlab函

14、数实现滤波 用C语言设计IIR典范型滤波器 观察滤波后的效果调整滤波器系数 观察滤波后的效果若效果不佳则调整滤波器的阶数噪声完全滤除且原音恢复无较大失真 结束 结束 其中流程图是在Matlab中仿真流程,是在CCS中仿真流程,注意根据课设要求,两个仿真中滤波器应是一致的。若CCS仿真中出现效果不佳或者无法完全滤除噪声时,若修改滤波器,则Matlab中也应相应修改。第三章 数字滤波器的 DSP 实现3.1 DSP 系统的设计与开发DSP 系统的开发是一个复杂的过程,在系统的设计和调试中不但需要数字信号处理方面的理论知识,而且还要熟悉掌握各种 DSP 芯片、外围硬件电路以及DSP 开发工具等。3.

15、2 DSP 系统的特点DSP 系统是以数字信号处理为基础的,因此不但具有数字处理的全部优点而且还具有以下特点:(1)接口方便:DSP 应用系统与其他以现代数字技术为基础的系统或设备都是相互兼容的,这样的系统接口以实现某种功能要比模拟系统与这些系统接口要容易得多; (2)编程方便:DSP 应用系统中的可编程 DSP 芯片,能灵活方便地进行修改升级;(3)稳定性好:DSP 应用系统以数字处理为基础,受环境温度及噪声的影响较小、可靠性高,无器件老化现象;(4)精度高:16 位数字系统可以达到 10-5 级的精度;(5)可重复性好:模拟系统的性能受元器件参数性能变化的影响比较大,而数字系统基本不受影响

16、,因此数字系统便于测试、调试和大规模生产;(6)集成方便:DSP 应用系统中的数字部件有高度的规范性,便于大规模集成。3.3 IIR数字滤波器在DSP上的实现步骤和条件 IIR数字滤波器在DSP上的设计过程如下: (1)根据指标确定滤波器的类型,设计出滤波器的参数; (2)根据DSP的特点(字长、精度等)对参数进行取舍、量化,然后进行仿真; (3)根据仿真结果对滤波器的结构、参数再次进行调整,直到满足要求为止; (4)在DSP上用语言实现滤波器功能。DSP芯片,既可以做定点运算,也可以做浮点运算。一个算法,既可以用汇编语言编程实现,也可以用高级语言(C,C+)实现。而一个IIR数字滤

17、波器是否可以在DSP上实现,最终要看此算法是否满足两个条件:执行时间和精度。一个算法的精度再高,如果做不到实时,也没有实用价值;相反,如果执行时间很快,但精度满足不了要求,也就无从实现滤波功能。IIR数字滤波器在DSP上的实现思路,应该是在满足上面两个条件的前提下,找到尽可能简易的实现方法。3.4 DSP 系统的开发工具CCS 是一种针对 TMS320 系列 DSP 的集成开发环境,在 Windows 操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、和分析等工具。CCS 有两种工作模式:软件仿真器模式:可以脱离 DSP 芯片,在 PC 机上模拟 DSP的指令集和工作机制,主

18、要用于前期算法实现和调试;硬件在线编程模式:可以实时运行在 DSP 芯片上,与硬件开发板相结合在线编程和调试应用程序。CCS 的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持 C/C+和汇编的混合编程,其主要功能如下:(1) 具有集成可视化代码编辑界面,用户可通过其界面直接编写 C、汇编、.cmd文件等;(2)含有集成代码生成工具,包括汇编器、优化 C 编译器、链接器等,将代码的编辑、编译、链接和调试等诸多功能集成到一个软件环境中;(3)高性能编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误;(4)工程项目管理工具可对用户程序实行项目管理。在生成

19、目标程序和程序库的过程中,建立不同程序的跟踪信息,通过跟踪信息对不同的程序进行分类管理;(5)基本调试工具具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持 C 源代码级调试;(6)断点工具,能在调试程序的过程中,完成硬件断点、软件断点和条件断点的设置;(7)探测点工具,可用于算法的仿真,数据的实时监视等;(8)分析工具,包括模拟器和仿真器分析,可用于模拟和监视硬件的功能、评价代码执行的时钟;(9)数据的图形显示工具,可以将运算结果用图形显示,包括显示时域/频域波形、眼图、星座图、图像等,并能进行自动刷新;(10)提供 GEL 工具。利用 GEL 扩展语言,用户可以编写自己的

20、控制面板/菜单,设置 GEL 菜单选项,方便直观地修改变量,配置参数等;(11)支持多 DSP 的调试;(12)支持 RTDX 技术,可在不中断目标系统运行的情况下,实现 DSP 与其他应用程序的数据交换;(13)提供 DSP/BIOS 工具,增强对代码的实时分析能力。3.5 IIR 数字滤波器设计程序流程图结束待滤波的样本点数处理完成保存滤波结果到输出单元滤波处理读入新数据并存放到栈顶初始化DSP产生输入数据开始 否 是第四章 IIR滤波器的仿真代码4.1 课程设计核心代码:Matlab代码:y,fs=audioread('C:UsersAdministratorDesktophua

21、ngdi.wav');%sound(y,fs)audiowrite('1-1.wav',y,fs);n=length(y)y_p=fft(y,n);f=fs*(0:n/2-1)/n;figure(1)subplot(2,1,1);plot(y);title('原始语音信号采样后的时域波形');xlabel('点数')ylabel('幅值A')subplot(2,1,2);plot(f,abs(y_p(1:n/2);title('原始语音信号采样后的频谱图');xlabel('点数');yla

22、bel('频率幅值');L=length(y)noise=0.1*randn(L,2);audiowrite('noise.wav',noise,fs);z=fft(noise);%sound(noise,fs)y_z=y+noise;%sound(y_z,fs)audiowrite('1+noise.wav',y_z,fs);n=length(y);y_zp=fft(y_z,n);f=fs*(0:n/2-1)/n;figure(2)subplot(2,1,1);plot(y_z);title('加噪语音信号时域波形');xlab

23、el('点数')ylabel('幅值A')subplot(2,1,2);plot(f,abs(y_zp(1:n/2);title('加噪语音信号频谱图');xlabel('点数');ylabel('频率幅值'); fp=600;fs=800;Fs=44100;rp=1;rs=10;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;Fs1=1;wap=2*tan(wp/2);was=2*tan(ws/2);N,wc=buttord(wap,was,rp,rs,'s');B,A=butter(N,

24、wc,'s');Bz,Az=bilinear(B,A,Fs1);figure(3);h,w=freqz(Bz,Az,512,Fs1*44100);plot(w,abs(h);title('巴特沃斯低通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)');grid on;yd=filter(Bz,Az,y_z);ydd=fft(yd,n);f=fs*(0:n/2-1)/n;figure(4);subplot(2,1,1);plot(yd); title('滤波后信号时域波形');xlabel

25、('点数')ylabel('幅值A')subplot(2,1,2);plot(f,abs(ydd(1:n/2);title('滤波后信号频谱');xlabel('点数');ylabel('频率幅值'); %sound(yd,Fs);audiowrite('filter.wav',yd,Fs);C语言代码: IIR直接II型低通数字滤波器 #include"math.h"#include "stdio.h"#define IIRNUMBER 8 /滤波系数个数,

26、阶数为7阶#define SIGNAL1F 2000 /模拟频率#define SIGNAL2F 7000 /模拟频率#define SAMPLEF 48000 /采样频率#define PI 3.1415926float InputWave();float IIR(float);float fBnIIRNUMBER = 0.0001,0.0006,0.0019,0.0031,0.0031,0.0019,0.0006,0.0001 ; /分子系数float fAnIIRNUMBER = 1.0000,-4.1865,7.8860,-8.5523,5.7276,-2.3578,0.5505,-0

27、.0561 ; /分母系数float ddIIRNUMBER= 0.0 ; /中间变量float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSignal2;float f2PI;int j;float fIn256,fOut256;int nIn,nOut;main()nIn=0; nOut=0;f2PI=2*PI;fSignal1=0.0; /初始相位fSignal2=PI*0.1; /初始相位fStepSignal1=2*PI * SIGNAL1F / SAMPLEF; /波形1数字频率fStepSigna

28、l2=2*PI * SIGNAL2F / SAMPLEF; /波形2数字频率while ( 1 )fInput=InputWave(); /输入XnfInnIn=fInput;nIn+; nIn%=256; /防止溢出fOutput=IIR(fInput); /输出YnfOutnOut=fOutput;nOut+; / 请在此句上设置软件断点 if ( nOut>=256 ) /防止溢出nOut=0;float InputWave() /产生波形float Xn;Xn = sin(fSignal1) +0.5*sin(fSignal2);fSignal1+=fStepSignal1; i

29、f ( fSignal1>=f2PI )fSignal1-=f2PI;fSignal2+=fStepSignal2;if ( fSignal2>=f2PI )fSignal2-=f2PI;return(Xn);float IIR(float Xn) /直接II型IIR滤波float Yn=0.0;float ya=0.0; for(j=IIRNUMBER-1;j>0;j-) /中间变量ddi向后移一位 ddj=ddj-1;for(j=1;j<IIRNUMBER;j+) ya+=fAnj*ddj;ya=Xn-ya; /输入Xndd0=ya; /更新中间变量dd for(j=0;j<IIRNUMBER;j+) Yn+=fBnj*ddj;return Yn; /输出Yn4.2 仿真结果图 7滤波前的波形图和滤波后的波形图图8滤波前的频谱图图9 滤波后的频谱图第五章 结果分析与总结5.1 结果分析与心得体会在效果图中,上面波形为DSP实验箱

温馨提示

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

评论

0/150

提交评论