论文-IIR高通滤波器的MATLAB设计和在DSP上的实现

上传人:a**** 文档编号:159242219 上传时间:2022-10-08 格式:DOC 页数:24 大小:1.59MB
收藏 版权申诉 举报 下载
论文-IIR高通滤波器的MATLAB设计和在DSP上的实现_第1页
第1页 / 共24页
论文-IIR高通滤波器的MATLAB设计和在DSP上的实现_第2页
第2页 / 共24页
论文-IIR高通滤波器的MATLAB设计和在DSP上的实现_第3页
第3页 / 共24页
资源描述:

《论文-IIR高通滤波器的MATLAB设计和在DSP上的实现》由会员分享,可在线阅读,更多相关《论文-IIR高通滤波器的MATLAB设计和在DSP上的实现(24页珍藏版)》请在装配图网上搜索。

1、IIR高通滤波器的matlab设计和在dsp上的实现摘要在众多滤波器设计方法中,本设计着重讨论了IIR高通滤波器的设计。对此滤波器的理论知识作了具体分析,通过matlab来对其进行设计并在dsp上直观形象的实现其功能。在本设计中,我先采集一段语音信号,借助matlab软件,设计出一定性能指标参数的IIR高通滤波器对其进行处理,借此比照此语音信号滤波前后的变化,从而观察此滤波器的软件滤波效果。并通过matlab来确定此滤波器的传递函数参数,再借助dsp实验系统来进行硬件上的实现。实现时,先在CCS5000仿真开发,然后将程序加载到TMS320VC5416评估板上实时运行,结果实现了目标要求。关键

2、词:IIR高通滤波器 Matlab7.0 DspAbstractIn numerous filters design method, this design emphasized to discuss the design of a filter of IIR.Made the concrete nalysis to the theories knowledge of this filter, pass the Matlab to come as to its carry on the design and keep the view image to carry out its functi

3、on on the DSP.In this design, I collect a speech signal first, asking for help the software of Matlab, designing a filter of an IIR of certain function index sign parameter as to its carry on the processing, borrow this contrast this speech signal wave in front and back of variety, thus observe a re

4、sult of the software of this filter e to certain this filter to deliver the function parameter through a Matlab also, then ask for help the DSP experiment system to carry on the realization on the hardware.While carry out, imitates the true development in the CCS5000 first, then evaluate procedure a

5、dd carry the TMS320VC5416 up the plank the solid luck go, as a result carrying out the target request.Keyword:A high filter of IIR Matlab7.0 Dsp一、 模拟滤波器和数字滤波器的比拟模拟滤波器是频率选择电路,用于放大或衰减单一频率成分的正弦信号或信号频谱的一局部。数字滤波器是指完成信号滤波处理功能的、用有限精度算法实现的离散时间线性非时变系统。它是一个离散时间系统,它能改变包含在离散时间信号x中的谱信息,使其生成新的离散时间信号y,采样信号表示为一列数字。

6、数字滤波器本身既可以是用数字硬件装配而成的一台用于完成给定运算的专用数字计算机,也可以是将所需的运算编成的程序,让通用计算机执行。数字滤波器具有稳定性高、精度高、灵活性大等突出优点。基于以上比拟,本设计选用数字滤波器。二、 数字滤波器的介绍数字滤波器的种类很多,根据冲击响应特性,可分为有限区间冲击响应滤波器FIR和无限区间冲击响应滤波器IIR两大类。根据滤波器的功能,又可以将它们分为:低通滤波器LPF高通滤波器HPF带通滤波器BPF带阻滤波器BSF数字滤波器的数学运算通常有两种实现方式。一种是频域法,即利用FFT快速运算方法对输入信号进行离散傅立叶变换,分析其频谱,然后根据所希望的频率特性进行

7、滤波,再利用傅立叶反变换恢复出时域信号。这种方法具有较好的频域选择特性和灵活性,并且由于信号频率与所希望的频谱特性是简单的相乘关系,所以它比计算等价的时域卷积要快得多。另一种方法是时域法,这种方法是通过对离散抽样数据做差分数学运算来到达滤波的目的的。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着MATLAB软件尤其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计到达最优化。三、 FIR和IIR的比拟FIR类滤波器通常是非递归型滤波器,没有反应项,仅有正馈,其主要优点是稳定性好、硬件易实现

8、。但要到达高性能,需要滤波器阶次高,从而系数多,所做的乘法操作多,延迟时间长。IIR型滤波器是一种递归型滤波器,具有反应,结构简单,系数少,乘法操作少,可以解析控制,效率较高,与模拟滤波器有对应关系。其缺点是要考虑系统稳定性,需要记忆的数据多,易产生溢出。两者相比拟,在满足性能要求的前下,IIR滤波器比相应的FIR滤波器具有低得多的阶次。虽然FIR滤波器较IIR可得到严格的线性相位,但在相同技术指标下,IIR滤波器由于存在着输出对输入的反应,因而可用约1/101/5FIR 滤波器的阶数来满足指标的要求,这样一来所用的存储空间少,运算次数少,实时性强。此外,IIR滤波可以利用模拟滤波器设计的现成

9、的闭合公式、数据和表格。因而计算工作量小,对计算工具要求不高。如在谐波检测环节中所用数字滤波器的作用在于通过直流,滤除交流,对相位的要求不高,而对计算速度要求极高,故而在此情况下可以选择IIR滤波器来实现功能。四、 IIR高通滤波器的matlab设计1、 数字滤波器IIR的介绍及设计、 常用IIR数字滤波器的比拟数字IIR滤波器具有良好的幅频响应特性,被广泛应用于通信、控制、生物医学、振动分析、雷达和声纳等领域。从滤波器实现来看,数字IIR滤波器的主要结构有直接型、直接型、级联型以及并联型几种等根本网络结构类型,如下:直接型IIR滤波器的系统函数对应的差分方程为其信号流程图直接型IIR滤波器的

10、系统函数又可以写成第一个子系统实现零点,时域为。第二个子系统实现极点,时域为。其信号流程图为:级联型将IIR滤波器的系统函数的分子分母表达为因子的形式,即由于系统函数的系数都是实系数,故零、极点只有两种情况:或者是实根,或者是共轭复根。并联型将IIR滤波器的系统函数展开成局部分式之和,即总系统为个局部系统函数之和,那么表示其为各响应子系统的并联。在各种数字滤波器结构中,级联型滤波器结构一方面由于各级之间相互不影响,便于准确实现滤波器零、极点和调整滤波器频率响应性能;另一方面由于各级极点密集度小,滤波器性能受滤波器系数量化的影响小,因此倍受关注。偶数阶级联型数字IIR滤波器由假设干二阶实系数子滤

11、波器以级联形式组成,奇数阶级联型IIR滤波器通常由一个一阶实系数子滤波器和假设干二阶实系数子滤波器以级联形式组成,具体如图1所示。一阶和二阶数字IIR子滤波器采用如图2所示的直接型网络结构,这样可以保证所需的存储器数量最少。IIR滤波器主要有以下几种模拟滤波器逼近:巴特沃斯Butterwoth,切贝雪夫I型Cheby,切贝雪夫型Cheby,椭圆函数型或称考尔型Elliptic,以及Bessel型。2、 MatlabMATLAB是一套用于科学计算的可视化高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代的

12、数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。在设计数字滤波器时,通常采用MATLAB来进行辅助设计和仿真。在本设计中同时结合了函数和FDATool工具来比照设计IIR高通滤波器。Matlab界面如以下图:1 Matlab中的滤波器直接设计IIR滤波器的函数 freqz函数:求解数字滤波器频率响应 h,f=freqz(b,a,n,fs) fs为采样频率abs函数y=absx计算x各元素的绝对值 buttord函数:选择巴特沃斯滤波器最小阶数n,wn=buttordwp,ws,rp,rs Cheb1ord函数:选择切笔雪夫型滤波器最小阶数n,wn= Cheb1ordwp,ws,rp

13、,rsCheb2ord函数:选择切笔雪夫型滤波器最小阶数n,wn= Cheb2ordwp,ws,rp,rs Ellipord函数:选择椭圆滤波器最小阶数 n,wn= Ellipordwp,ws,rp,rs(2) matlab中的交互式图形用户界面工具sptool SPTool是一个图形环境,它为信号处理工具箱中的很多函数提供了易于使用的界面,只需要操纵鼠标就可以再如、观察、分析和打印数字信号,分析、实现和设计数字滤波器,以及频谱分析等。启动matlab后在命令窗口输入sptool回车就可以翻开sptool的主窗口。由sptool的主窗口可以看出,sptool有3个列表框:signals列表框,

14、filters列表框和spectra列表框,它们对应着sptool工具中的4个功能模块。信号浏览器:观察、分析时域信号的信息;滤波器设计器:创立任意阶数的低通、高通、带通或带阻的FIR和IIR滤波器;滤波器观察器:分析滤波器的特性,有幅值响应、相位响应、群延迟和脉冲响应等;谱观察起:把用各种PSD估计方法得到的频域数据以图形的方式进行分析研究在用sptool进行信号处理时,必须先载入数据。按照不同的数据类型,数据载入可以分为信号数据载入、滤波器数据载入以及功率谱数据载入。A、 首先在matlab工作空间创立信号数据B、 载入信号数据。Import to sptoola、 选择载入数据对话框右上

15、角import as 下拉表框中的signal选项。b、 选择载入数据对话框中间workspace contents列表框中的信号数据y,再单击与右边data文本框一一对应的箭头按钮,那么在data文本框中会出现y的名字。c、 选择载入数据对话框中间workspace contents列表框中的信号数据fs,再单击与右边samping frequency文本框一一对应的箭头按钮,那么在samping frequency文本框中会出现fs的名字。d、 确定载入信号的名称,设为“ling1。e、 单击ok按钮后,信号数据被载入。此时,在sptool主窗口的signals列表框中单击view按钮,就

16、可以观察所载入的数据信号波形了。C、 载入滤波器数据a、 选择载入数据对话框右上角import as 下拉表框中的filter选项,表示载入滤波器数据。这时候,在该下拉列表框的下面会出现一个新的下拉列表框form,里面含有4种不同类型的滤波器表达式: Transfer Function;state space;zero,poles,gain;2nd order sections。b、 选择载入数据对话框中间workspace contents列表框中的信号数据a,再单击与右边denominator文本框一一对应的箭头按钮,那么在denominator文本框中会出现a的名字。同理,选择载入数据对

17、话框中间workspace contents列表框中的信号数据b,再单击与右边numerator文本框一一对应的箭头按钮,那么在numerator文本框中会出现b的名字。c、 选择载入数据对话框中间workspace contents列表框中的信号数据fs,再单击与右边samping frequency文本框一一对应的箭头按钮,那么在samping frequency文本框中会出现fs的名字。d、 确定载入信号的名称,设为“filter1。e、 单击ok按钮后,滤波器数据被载入。此时,在sptool主窗口的filters列表框中单击view按钮,就可以观察所载入的滤波器数据的波形了。D、 载入

18、功率谱数据a、 选择载入数据对话框右上角import as 下拉表框中的spectrum选项,表示载入滤波器数据。这时候,在该下拉列表框的下面会出现两个字段:PSD和。b、 选择载入数据对话框中间workspace contents列表框中的信号数据pxx,再单击与右边psd文本框一一对应的箭头按钮,那么在psd文本框中会出现a的名字。c、 选择载入数据对话框中间workspace contents列表框中的信号数据F,再单击与右边文本框一一对应的箭头按钮,那么在文本框中会出现F的名字。d、 确定载入信号的名称,设为“spect1。e、 单击ok按钮后,滤波器数据被载入。此时,在sptool主

19、窗口的spectrum列表框中单击view按钮,就可以观察所载入的滤波器数据的波形了(3) Matlab中的交互式数字滤波器设计工具FADToolFDAToolFilter Design & Analysis Tool是MATLAB信号处理工具箱里专用的滤波器设计分析工具,以上的版本还专门增加了滤波器设计工具箱Filter Design Toolbox。FADTool可以对滤波器进行直接设计。FDATool可以设计几乎所有的根本的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。对于设计完成的滤波器,在FADTool中而已对其进行分析,绘制幅频曲线、相位响应、零极点图等,并且

20、将设计结果保存到工作空间中,同时,也可将其保存为mat文件、文本文件,或直接生成c语言的头文件等。通过filter design toolbox,在FADTool中还可以考虑滤波器量化对滤波器性能造成的影响。FDATool界面总共分两大局部,一局部是Design Filter,在界面的下半部,用来设置滤波器的设计参数,另一局部那么是特性区,在界面的上半局部,用来显示滤波器的各种特性。Design Filter局部主要分为:Filter Type滤波器类型选项,包括Lowpass低通、Highpass高通、Bandpass带通、Bandstop带阻和特殊的FIR滤波器。Design Method

21、设计方法选项,包括IIR滤波器的Butterworth巴特沃思法、Chebyshev Type I切比雪夫I型法、 Chebyshev Type II切比雪夫II型 法、Elliptic椭圆滤波器法和FIR滤波器的Equiripple法、Least-Squares最小乘方法、Window窗函数法。Filter Order滤波器阶数选项,定义滤波器的阶数,包括Specify Order指定阶数和Minimum Order最小阶数。在Specify Order中填入所要设计的滤波器的阶数N阶滤波器,Specify OrderN-1,如果选择Minimum Order那么MATLAB根据所选择的滤波

22、器类型自动使用最小阶数。Frenquency Specifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。它的具体选项由Filter Type选项和Design Method选项决定,例如Bandpass带通滤波器需要定义Fstop1下阻带截止频率、Fpass1通带下限截止频率、Fpass2通带上限截止频率、Fstop2上阻带截止频率,而Lowpass低通滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。Magnitude Specifications选

23、项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1频率Fstop1处的幅值衰减、Wpass通带范围内的幅值衰减、Wstop2频率Fstop2处的幅值衰减。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。Window Specifications选项,中选取采用窗函数设计时,该选项可定义,它包含了各种窗函数。4、设计过程4.1语音信号的采集设计的开始利用Windows下的录音机,录制一段语音信号,时间在1 s内。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,取一定的采样频率和采样点数。并通过sound函数来试听采集的语音信号。

24、y,fs,bite=wavread(,1024 5120);Sound(y,fs,bite); fsfs = 11025 bitebite = 8根据以上sptool工具的介绍,可载入滤波器数据的图形如下:图3 语音信号的时域波形4.2语音信号的频谱分析针对次语音信号,首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性,从而对次信号的频谱特性的有个形象的描述。其程序如下:Y=fft(y,4096);结合sptool工具,可得出此频谱图如下: 图4 语音信号的频谱特性4.3设计数字滤波器和画出其频率响应 本设计首先给出要设计的高通滤波器的性能指标: 高通滤波器性能指标

25、fc4 800 Hz阻带截止频率fb5 000 Hz通带截止频率 As100 dB阻带衰减,Ap1 dB通带衰减。利用双线性变换法设计此滤波器。在Matlab中,可以利用函数butter, cheby1 和cheby2、ellip来设计IIR滤波器;本设计通过ellip来实现此IIR滤波器。利用Matlab中的函数freqz画出各滤波器的频率响应。程序如下: fc=4800; fb=5000; As=100; Ap=1; fs=11025; wc=2*fc/fs; wb=2*fb/fs; n,wn=ellipord(wc,wb,Ap,As); b,a=ellip(n,Ap,As,wn,high

26、); freqz(b,a,512,fs);nn = 9wnwn = bb = 1.0e-003 * Columns 1 through 4 Columns 5 through 8 Columns 9 through 10 aa = Columns 1 through 4 Columns 5 through 8 Columns 9 through 10 6.1780图5 频率响应图用滤波器对信号进行滤波通过以上性能指标设计出的高通滤波器对采集的信号进行滤波,在Matlab中,IIR滤波器利用函数filter对信号进行滤波。 x=filter(b,a,y); X=fft(x,4096);图6 滤波

27、器的频率响应图运行filter可观察此滤波器的各项特性图如下:比拟滤波前后语音信号的波形及频谱 为了更好的比照滤波前后信号的变化,看出滤波器的滤波效果,本设计在一个窗口同时画出滤波前后的波形及频谱。其程序如下: subplot(223); plot(x); title(滤波后信号波形); subplot(224); plot(abs(X); title(滤波后信号频谱);图7 滤波前后的信号频谱回放语音信号在Matlab中,函数sound可以对声音进行回放。其调用格式:sound(x,fs,bite);可以感觉滤波前后的声音有变化。图8 滤波后的语音信号图为了更形象的观察此滤波器的功能效果,本

28、设计同时运行fdatool工具来设计相同性能指标的滤波器。在matlab的命令栏中输入fadtool,出现fdatool工具的主窗口。在相应的栏中输入性能指标参数,设计出此滤波器的一系列图形如下所示:根据以上滤波器在matlab中的设计,可以看出,比照此滤波器在sptool和fdatool中设计,说明能得到的性能相似的高通IIR滤波器。高通IIR滤波器在DSP上的实现1、 数字滤波器的实现方法数字滤波器的实现方法一般有以下几种。采用加法器、乘法器、延时器设计专用的滤波电路。在通用计算机系统中加上专用的加速处理机设计实现。用通用的可编程DSP芯片实现。用专用的DSP芯片实现。在一些特殊的场合,要

29、求的信号处理速度极高,用通用DSP芯片很难实现。这种芯片将相应的滤波算法在芯片内部用硬件实现,无需进行编程。采用FPGA/CPLD设计实现。在上述几种方法中,第种方法的缺点是速度较慢,一般可用于DSP算法的模拟。第、种方法专用性强,应用受到很大的限制。第、种方法都可以通过编程来实现各种数字滤波,但是,第种因有专用的指令来实现滤波运算编程实现容易,而第种方法编程实现较为困难。2、数字滤波器的DSP实现DSP是一种实时、快速、特别适合于实现各种数字信号处理运算的微处理器。由于它由具有丰富的硬件资源、改良的哈佛结构、高速数据处理能力和强大的指令系统,而在通信、航空、航天、雷达、工业控制、网络及家用电

30、器等各个领域得到广泛应用。DSP分为定点和浮点两种,下面以定点DSP芯片为例,讨论IIR滤波器实现的几个关键问题。所讨论的这些问题,在DSP系统设计中有实际的参考和应用价值。2.1) 定点数的定标在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于DSP芯片所给定的字长,一般为16位或24位。显然,字长越长,所能表示的数的范围越大,精度也越高。在滤波器的实现过程中,DSP所要处理的数可能是整数,也可能是小数或混合小数;然而,DSP在执行算术运算指令时,并不知道当前所处理的数据是整数还是小数,更不能指出小数点的位置在哪里。因此,在编程时必须指定

31、一个数的小数点处于哪一位,这就是定标。通过定标,可以在16位数的不同位置上确定小数点,从而表示出一个范围大小不同且精度也不同的小数。例如:在Q15中,1080H=0.12890625;在Q0时,1080H=4224。在使用定点DSP时,如何选择适宜的Q值是一个关键性问题。就DSP运算的处理过程来说,实际参与运算的都是变量,有的是未知的,有的那么在运算过程中不断改变数值,但它们在一实际工程环境中作为一个物理参量而言都有一定的动态范围。只要个动态范围确定了,Q值也就确定了。因此,在程序设计前,首先要通过细致和严谨的分析,找出参与运算的所有变量的变化范围,充分估计运算中可能出现的各种情况,然后确定采

32、用何种定标标准才能保证运算结果正确可靠。这里,所讨论的理论分析法和统计分析法确定变量绝对值最大值|max|,然后根据|max|再确定Q值。但是,DSP操作过程中的意外情况是无法防止的,即使采用统计分析法也不可能涉及到所有情况。因此,在定点运算过程中应该采取一些判断和保护措施特别是在定点加法中。另外,在数字信号处理中的大量运算是乘法和累加,应尽量采用纯整数或纯小数运算,即全部变量都用Q0或Q15格式表示。这样做的好处是操作简单、编程方便。只有当纯整数或纯小数运算不能满足变量的动态范围和精度要求时,才采用混合小数表示法进行定点运算。2.2) 误差问题因为在用定点DSP实现时,所有的数据都是定长的,

33、运算也都是定点运算,因而会产生有限字长效应。所产生的误差主要包括:数模转换引起的量化误差、系数量化引起的误差以及运算过程中的舍入误差。在用定点DSP时,产生误差是不能防止的,但是可以通过一些方法减小误差。如,可以用两个存储单元来表示一个数,运算时使用双字运算;可以根据需要要将滤波器系数都用双字表示,也可以只将一半的系数用双字表示,视需要而定。另外,FIR数字滤波器和IIR数字滤波器所引入的量化误差是不一样的。FIR数字滤波器主要采用非递归结构,因而在有限精度的运算中都是稳定的;而IIR数字滤波器是递归结构,极点必须在z平面单位圆内才能稳定,这种结构运算中的四舍五入处理有时会引起寄生振荡。除了有

34、限字长效应以外,不同结构引入的误差也有所不同。在实际设计中,要注意实现中的误差问题。在选择不同的结构时,应考虑它们所引入的误差,并用高级语言进行定点仿真,以比拟不同结构下误差的大小,从而作出合理选择。2.3) 循环寻址循环寻址circular addressing是DSP中经常用到的一种寻址方式。该寻址方法可以对一块特定存储区实现循环的操作。可以把循环寻址理解为实现一个滑动窗,新数据引入后将覆盖老的数据,便得该窗中包含了需处理的最新数据。在数字信号处理中的FIR、卷积等运算中,循环寻址具有极其重要的意义。在TI的DSP中,循环寻址通过如下方法实现。设定BK存放器块大小值,以确定循环寻址缓冲区的

35、大小,也可将它看作是循环的周期。设定缓冲区的底部地址。必须注意:其低N位为零,其中N为满足式2 NBK的最小N值。用辅助存放器间接寻址循环缓冲区。#includemath.h#define IIRNUMBER 2 /阶数#define SIGNAL1F 1000 /信号1的频率#define SIGNAL2F 4500 /信号2的频率#define SAMPLEF 10000 /采样率#define PI 3.1415926 float InputWave(); /输入信号float IIR(); /IIR滤波float fBnIIRNUMBER= 0.0,0.7757 ; /传递函数的分母f

36、loat fAnIIRNUMBER= 0.1122,0.1122 ; /传递函数的分子float fXnIIRNUMBER= 0.0 ; /float fYnIIRNUMBER= 0.0 ; /float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSignal2;float f2PI;int i;float fIn256,fOut256;int nIn,nOut;main()nIn=0; nOut=0;f2PI=2*PI;fSignal1=0.0;fSignal2=PI*0.1;/fStepSignal1=2*

37、PI/30;/fStepSignal2=2*PI*1.4;fStepSignal1=2*PI/50; /fStepSignal2=2*PI/2.5; /while ( 1 )fInput=InputWave(); /调用输入信号参数fInnIn=fInput; /nIn+; nIn%=256; /256个点fOutput=IIR(); /调用IIR滤波fOutnOut=fOutput; /输出nOut+;/* 请在此句上设置软件断点 */if ( nOut=256 )nOut=0;float InputWave() /输入信号for ( i=IIRNUMBER-1;i0;i- )fXni=fX

38、ni-1;fYni=fYni-1;fXn0=sin(fSignal1)+cos(fSignal2)/6.0;/低频的正弦波和高频的余弦波fYn0=0.0;fSignal1+=fStepSignal1; if ( fSignal1=f2PI )fSignal1-=f2PI;fSignal2+=fStepSignal2;if ( fSignal2=f2PI )fSignal2-=f2PI;return(fXn0);float IIR() /IIR滤波float fSum;fSum=0.0;for ( i=0;iIIRNUMBER;i+ )fSum+=(fXni*fAni); /传递函数fSum+=

39、(fYni*fBni); /y(n)=0.7757y(n-1)+0.1122x(n)+0.1122x(n-1)return(fSum);结束语: 通过这次高通IIR滤波器的设计,让我重新了解了一门新的知识。当然由于初次接触,不能完全掌握新的知识,所以在本设计中还是有很多东西需要完善的。比方在本设计中,怎样才能通过这两个软件随心所欲地去设计滤波器所要的性能指标。还有在DSP实现上参考文献:薛年喜MATLAB在数字信号处理中的应用 清华大学出版社 2003、 Barrie W. Jervis 数字信号处理实践方法第二版电子工业出版社2004、 Barrie L. Evans信号处理滤波器设计 电子

40、工业出版社2004钟麟 王峰 MATLAB仿真技术与应用教程 国防工业出版社 2004图2 输入数据频谱图 图3 输出数据频谱图 3.4 实现举例根据上述设计出来的FIR滤波器,考虑工程实际的需要精度的要求和采用定点DSP芯片的方便实现,选择Q15定标。为此,必须对输入数据和滤波器的系数进行归一化处理。输入数据的归一化处理可通过设置A/D转换的参考电平来实现。滤波器的系数归一化只要求取系数中的最大值,再用这个最大值去系数便可。由于一个N设N为偶数阶的FIR滤波器具有系数对称特性,其输出方程可以写为:y(n)=aox(n)+x(n-N+1)+a1x(n-1)+x(n-N+2)+aN/2-1X(n

41、-N/2+1)+x(n-N/2) (2)根据式2可建立如下实现算法:在数据存储中开辟两个循环缓冲区,New循环缓冲区存放新数据,O1d循环缓冲区中存放老数据。循环缓冲区的长度为N/2。设置循环缓冲区指针,AR2指向New缓冲区中最新的数据,AR3指向O1d缓冲区中最老的数据。在程序存储器中设置系数表。AR2+AR3AH累加器A的高位;AR2-1AR2;AR3-1AR3。将累加器B清零,重复执行以下操作N/2次:AH*系数ai+(B)B,系数指针PAR加1,AR2+AR3AH,AR2和AR3减1。保存和输出结果结果在BH中。修正数据指针,让AR2和AR3分别指向New缓冲区最新数据和O1d缓冲区

42、中最老的数据。用New缓冲区中最老的数据替代O1d缓冲区中最老的数据。O1d缓冲区指针减1。输入一个新数据替代New缓冲区中最老的数据。重复执行第步。根据上述算法编制程序4、5,在CCS5000上进行仿真调试运行,并分析输入数据和输出的频谱,结果如图2、图3所示。由图可见,滤波器实现了目标要求。最后,将程序移植为ICETEK-VC5416-A 板的EDU的中断效劳程序,并将形成的可执行文件加载到评估板上运行。由TMS320VC5416评估板的模拟输入口输入模拟信号,经ADS7864A/D转换芯片,按8kHz的采样频率采样转换成数字信号,输入DSP。滤波后经DAC7625D/A输出模拟量,结果证

43、实该程序可实现对采样率为kHz的模拟信号进行实时滤波处理。1.ADS7864模数转换模块特性ADS7864 是TI 公司的一种500K、12 位、6 通道模数转换芯片。每通道信号可采用插分方式输入。ICETEK-VC5416-A 板上使用的方式是非插分方式,即所有IN-端均与参考地相接,采用输入信号的范围为0+5V。由于ADS7864 芯片为5V 器件,而5416DSP 为3.3V 器件,所以在进行硬件连接设计时采用电平转换芯片对信号线和数据线进行隔离.ICETEK-VC5416-A 板上将ADS7864 的控制映射到I/O 空间,使用I/O 空间地址2H 传送数据,3H 进行通道选择,4H

44、发送转换信号。由于ADS7864 的6 个通道转换是分成3 路完成的A、B、C,在每个转换周期可选择启动2、4、6 个转换通道,选择的方法是在3H 地址的相应位上置低电平。3H 地址输出的最低位第0 位控制A 路,次低位第1 位控制B 路,第2 位控制C 路,所以如果需要采集A0 和A1 两路信号那么可在3H 地址上输出6110b,B0 和B1 输出5101b,C0 和C1 输出3011b。以下是控制字同相应选择通道的列表:06H A0,A1 04H A0,A1,B0,B1 00H A0,A1,B0,B1,C0,C105H B0,B1 01H B0,B1,C0,C103H C0,C1 02H

45、A0,A1,C0,C1如果只需要进行单通道的转换,可以只进行1 路输入而保存相应通道的数据即可。2模数转换工作过程-模数转换模块接到启动转换信号后,按照设置进行相应通道的数据采样转换。-经过一个采样时间的延迟后,将采样结果放入相应通道的FIFO 保存。-转换结束,设置标志。-等待下一个启动信号。3模数转换的程序控制模数转换相对于计算机来说是一个较为缓慢的过程。一般采用中断方式启动转换或保存结果,这样在CPU 忙于其他工作时可以少占用处理时间。设计转换程序应首先考虑处理过程如何与模数转换的时间相匹配,根据实际需要选择适当的触发转换的手段,也要能及时地保存结果。由于ADS7864 芯片的A/D 转

46、换精度是12 位的,转换结果的最高位表示转换值是否有效1有效,第14-12 位表示转换的通道号,低12 位为转换数值,所以在保存时应注意取出结果的低12 位,再根据高4 位进行相应保存。4源程序及注释本实验程序采用中断程序设计,定时器设置采样时间为64 微秒,采样通道设置为A0 和A1ICETEK-VC5416-EDU 实验箱上ADCIN2 和ADCIN3。#defineTIM *(int *)0x24#definePRD *(int *)0x25#defineTCR *(int *)0x26#defineIMR *(int *)0x0#defineIFR *(int *)0x1#define

47、PMST *(int *)0x1dioport unsigned int port3,port4,port2;#define AD_DATA port2#define AD_SEL port3#define AD_HOLD port4void interrupt time(void);int *ptr,k;unsigned int uWork;main()int i,j;asm(ssbx INTM); / 关闭可屏蔽中断k=0;ptr=(int *)0x3000; / 转换数据的保存区,从数据区3000H 开始/ 3000H-3200H 保存第1 通道AIN1的转换结果/ 3200H-3400

48、H 保存第2 通道AIN2的转换结果for(i=0;i=0x200 )k=0; / 软中断位置AD_HOLD =0; / 送转换信号for ( uWork=0;uWork10;uWork+ );AD_HOLD=1;利用专用的数模转换芯片, 可以实现将数字信号转换成模拟量输出的功能。在ICETEK-VC5416-A 板上,使用的是DAC7625 数模芯片,它可以实现同实转换四路模拟信号数出,并有12 位精度,转换时间10s。其控制方式较为简单:首先将需要转换的数值通过数据总线传送到DAC7625 上相应存放器,再发送转换信号,经过一个时间延迟,转换后的模拟量就从DAC7625 输出引脚输出。2D

49、AC7625 与TMS320VC5416 的连接由于TMS320VC5416 DSP 没有数模转换输出设备,采用外扩数模转换芯片的方法。在ICETEK-VC5416-A 板上选用的是DAC7625。DAC7625 的转换存放器被映射到了DSP 的I/O空间,地址是1001H-1003H,控制转换由I/O 端口地址1004H 的写信号控制,这局部在硬件上由译码电路CPLD完成。在DAC7625 的输出端,为了增加输出功率,经过一级运放再输出到板上插座上。输出范围为0+5V。结语数字滤波器的应用十分广泛,运行MATLAB语言,能很容易地设计出具有严格要求如线性相位等的滤波器。用定点DSP实现滤波器

50、械要考虑DSP的定标、误差、循环寻址等几个关键问题。文中实例是为了说明,可方便地用DSP实现模拟信号的实时滤波处理,所采用的采样频率并不高。如果DSP采用更高的时钟,它的处理速度将更快,将能够满足更高采样率的数字信号的实时滤波处理。参考文献1 陈德树. 计算机继电保护原理与技术【M】北京:水利电力出版社,1992.2 蒋志凯. 数字滤波与卡尔曼滤波【M】北京:中国科学技术出版社,19933 楼顺天、李博菡. 基于MATLAB的系统分析与设计信号处理【M】西安:西安电子科技大学出版社,1998.4 胡广书. 数字信号处理:理论、算法与实现【M】.北京:清华大学出版社,1997.5 蒙以正应用与技巧【M】北京:科学出版社,1999.

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!