IIR与FIR滤波器设计与比较_第1页
IIR与FIR滤波器设计与比较_第2页
IIR与FIR滤波器设计与比较_第3页
IIR与FIR滤波器设计与比较_第4页
IIR与FIR滤波器设计与比较_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、ds裸程设计实验报告fir与iir滤波的dsp实现以及二者的比较指导教师:高海林院(系):电信学院设计人员: 白雪学号:07211225邵辰雪学号:07211243成绩:工程设计50报告20答辩30总分评语:指导教师签字: 日期:一、设计任务书 2二、设计内容 2三、设计方案、算法原理说明 2四、程序设计、调试与结果分析 11五、设计(安装)与调试的体会32六、参考文献 34一、设计任务书在信号与信息处理中,提取有用信息就要对信号进行滤波。利用dspt以实时地对信号进行数字滤波。本设计要求利用dspdmat式进行信号采集和信号输 出, 同时对外部输入的信号进行数字滤波。 在滤波时同时用 fir

2、 与 iir 滤波器进行 滤波,并比较二者的区别。二、设计内容(1) 对dm进行初始化;(2) 对a/d、d/a进行初始化;(3) 编写dm冲断服务程序,实现信号的实时滤波;(4) 利用ccs9号分析工具分析信号的频谱成分, 确定滤波器的参数,利用matlab计数字滤波器,提取滤波器参数;(5) 设计数字滤波算法,或调用dsplim的滤波函数,实现对信号的fir滤波。(6) 6) 比较加不同窗和阶数时fir 滤波器的滤波效果;(7) 设计数字滤波算法,或调用dsplim的滤波函数,实现对信号的iir 滤波。(8) 8) 比较 fir 数字滤波器与iir 数字滤波器的效果 三、设计方案、算法原理

3、说明(一) 硬件原理 :mcbsp1多通道缓冲用行口,他支持全双工通信,双缓冲数据寄存器,允许连 续的数据流。支持传输的数据字长可以是8 位、 12 位、 16 位、 20 位、 24 位或32 位。并且内置u 律和 a 律压扩硬件。mcbsp在结构上可以分为一个数据通道和一个控制通道。数据通道完成数据的 发送和接受。 控制通道完成的任务包括内部时钟的产生、 帧同步信号产生、 对这 些信号的控制及多通道的选择等。控制通道还负责产生接口信号送往cpu产生同步事件通知dma空制器。在ccs#成开发环境中,与mcbspf关的头文件有:regs54xx.h、mcbsp54.h。 在这两个头文件中,定义

4、了 mcbspm亍口的寄存器资源及使用方法。tlc320ad50c是ti公司生产的sigma-delt即的16位a/d、d/a转换电路, 他的采样速率最高可达22.05kb/s ,内涵抗混叠滤波器和重构滤波器,属于模拟接口芯片(aic),它有一个能与多种昂dsp5片相连的同步串行通信接口,具采 样速率课通过ds喻程来设置。在dad前有一个插值滤波器一保证输出信号平滑,在ad之后有一个抽取滤波器以提高输入信号的信噪比。ad50ct内还包括一个定时器(调整采样率和帧同步延时)和控制器(可编程的增益放大器,锁相 环pll,通信协议等)。ad50有28脚的塑料so小装(带d所缀)和48脚的塑 料扁平q

5、fpm装(带pt后缀),体积较小,适用于便携设备。ad50c勺工作温度 范围是0-70摄氏度,单一 5v电源供电或5v模拟电源和3.3v数字电源供电,最 大功耗为120mw在ccs#成开发环境中,与 tlc320ad50c codec关的头文件是 codec.h。 在这个头文件中,定义了与ad50codec关的枚举变量和库函数。除了可以调用 codec.h中提供的库函数之外,还可以利用这些枚举变量自己重新编写 codec函 数,使用枚举变量相互产生所需要的 ad50寄存器的初始化值。codec.h中的库 函数位于函数库dsk5402.lib 和drv5402.lib 中。(二)滤波器的理论设计

6、分析1.直接存储器访问dma直接存储器访问(direct memory access ,简称dma是c54x dspt常重要的 片上外设,dma空制器可以完成数据传输而不影响 cpu因此数据传输速度快。在要求信号 实时采集和处理的系统中常采用 dmat式进行信号采集与传输。本实验利用dmas道2与mcbsp11道结合来读取ad转换数据,利用dma 通道3与mcbsp通道结合来将处理后的数据发送至 da。当一组数据处理完后,将数据存放在存储区 out_buffer+frame*0x100 中, 选才? out_bufer+frame*0x100 为dma1道3传送数据首地址,并选择源地址工 作在

7、不ml模式。2.iir滤波原理:iir数字滤波器差分方程的一般形式为:m用 b,x(n-i)+n-i)式中ai、bi为滤波系数。当bi全为零时,该滤波器为fir数字滤波器;当bi 不全为零时,则为iir滤波器。iir数字滤波器可用直接型、级联型和并联型三种 基本结构实现,具基本组成单元如图1所示。s,i桐弟让出的二命结构凤舒=他他吃对于二阶iir数字滤波器,其传递函数为:n时刻iir数字滤波器输出和输入关系为:用也仅用油,如f血如南其中x(n)是输入序列,y(n)是输出序列,ai、bi为滤波 器系数。因此滤波器的输出可以用硬件乘法器和加法器实现。在本实马中将iir滤波器的系统函数h (z)分解

8、为n个二阶iir滤波器级联的 形式进行运算,这样可以减小量化误差。3.iir滤波函数本实验信号滤波算法是直接从 tms320c54xdsplib中调用iir函数。iir函数调用格式:iircas4(data *x,data *h,data *r,data *d, ushort nbiq, ushort nx);iircas5(data *x,data *h,data *r,data *d, ushort nbiq, ushort nx);iircas51(data *x,data *h,data *r,data *d, ushort nbiq, ushort nx);iir32(data *x

9、,ldata *h,data *r,ldata *d, ushort nbiq, ushort nx);其中,iircas32 函数用于双精度iir滤波器;iircas4 函数用于二阶级联直 接ii型滤波器,每项含4个系数;iircas5函数用于二阶级联直接ii型滤波器, 每项含5个系数;iircas51 二阶级联直接i型滤波器,每项含五个系数。调用matlab产生滤波器系数时,由于a0始终为1,所以可以产生二阶级联 型系数,每项调用a1,a2,b0,b1,b2五个系数。iircas5用于通过各部分的放缩系 数使各部分增益小于1的情况同时防止溢出的情况。在iir数字滤波器的实现 中,直接ii型

10、相比直接i型节省了一半的延迟单元,因而成为 iir滤波器实现 最常用的形式。综上所述,我们采用irrcas5函数实现信号的滤波。调用参数说明:iircas5(data *x, data *h, data *r, data *dbuffer, ushort nbiq,ushort nx)xk为输入数组,hk为h(s)系数数组,按照 a11 a21 b21 b01 b11 .a1i a2i b2i b0i b1i的顺序输入,其中i为biquad的个数;rnx为输出数组,dbuffer为延迟数据区,nbiq为h (s)分成二阶滤波器的个数nx为输入长度.相比较与其他几种调用函数,4 .fir滤波原理

11、:假设fir滤波器的单位脉冲响应为 h0、h1、hn-1,xk为待滤波 的输入信号,则滤波器输出为yk=hk*xk= 力k一i|进行信号滤波实际上师计算序列的线性卷积。 在实验中滤波器单位脉冲响应 hk是有限长n,而xk 一般是外部输入的长序列,因而采用重叠像假发计算卷 积。重叠相加法是求解段序列与长序列卷积的一种方法。首先将输入长序列分解 为短序列,这些短序列分别于 hk卷积,将每段计算结果中后 n-1个数据保留 在一个缓冲区中,以便于下一段卷积结果进行重叠相加。5 .fir滤波函数本实验信号滤波算法是直接从tms320c54xdsplib中调用fir函数 fir函数调用格式:oflag =

12、 short fir(data *x, data *h, data *r, data *dbuffer, ushort nh, ushort nx)功能 用fir滤波器对信号滤波调用参数说明:xnx表示含有nx个实数的实输入信号向量;hnh表示含有nh个实数的系数向量,按自然顺序排列,即滤波器的单位脉冲响应。rnx表示含有nx个实数的输出向量;允许原位运算,即r=x。dbuffernh延迟缓冲区;对存储器的要求同 hnhnx向量x中实数的个数;nh向量h中系数的个数;oflag=1有溢出;oflag=0无溢出(三)设计流程图:利用硬件实现滤波器的信号滤波,就是将matla所产生的系数,与被取样

13、的 实时信号进行运算。将滤波器系数导入程序当中一般有两种方式:一、是将matla/生的系数,生成头文件,在程序中进行调用。二、将matlab生的系数写入数据段中,在程序中调用,此过程涉及到 iir滤波器的系数被截取,量化,调整和量化误差的产生。信号与滤波器系数的运算也有两种方法:一、调用dsplib中的iir、fir调用函数。二、利用c语言,编辑一段程序进行运算。(四)系数的导入与量化1 .头文件方式导入在matlab利用fdatool生所需滤波器,选择菜单 targets export to codecomposerstudio ? ide.打开 export to c header fil

14、e 对话框,选择c header file,指定变量名(滤波器阶数和系数向量),输出数据类型可选浮点型或32b、16b 整型等。根据自己安装选择目标板板号和处理器号。单击 ok保存该头文件,需指定文件名和路径,打开iir工程文件夹,该滤波器系数 头文件已含在工程中。该头文彳用到matlab中的tmwpytes.h ,需把该文件也包含 在工程中.还要在原文件中声明包含滤波器参数头文件.即: #include头文件名称include tmwpytes.h然后编译、链接工程.添加的头文件自动在工程目录中显示.目标 dsp!动 为滤波器系数分配相应的存储空间。打开系数文件查看生成的滤波器系数,可看 到

15、系数是对称的,这由所选滤波器类型而定。由于本次的设计的拓展部分主要以设计iir滤波器为主要目标,iir滤波器系 数存在着格式转换和量化的问题,不能够直接导入到cc外直接去进行硬件实现, 这样会导致滤波器系数的信息被截断,信息丢失,导致滤波器无法实现。所以我采用第二种方法。2 .直接写入存储器滤波器的系数可以用fdatog4行计算出来,也可以导出到 matlab workspace中去计算量化。我们所使用的dsk5402;验板是16位定点运算,而matlab产生的系数,并 不是定点数而是浮点数。所以需要将matlab产生的浮点数进行转化,使其转换 为浮点数,浮点数格式的导出:上ajj 川ter

16、oevwjn & *口耳”旧 iqd - unoeld.md -fie etm anahits 时第抬 miew 岫xfow he忖mew sm sonqrhw7国应1名台山厂日11。田回应open season. sveser$ionctrt*oart+sne(db)sew seston asstore fw“port f4cf frojs 哂espaeeqrwctrhpfre5uerk:y(me)iihwt filer from xilbix cwliicim ( coe1 fieexpoit to sitijlnfc mmmexportprrl previewprrt.clomphoto

17、bucket - videc and inage hostingrtipome typeordrsfneik atwif.und广 spech-r orctermrwum orderophorisvhefienbatartertmyufi erworth3事石! kiui加15!作 bempws38 / 36pesigning fitter . doneexport-gj囚_ export tocoeffictent fite (ascii)optionsformat becirnhok |crn匚i | appty 一般在fir滤波器中这种定点的转化都是使用 matlab fdatoolex

18、port to c header file 方式来进行转化。但是与fir不同的是iir不一定是稳定的系统,即使稳定,也未必能够达到硬 件实现。matlab供的转化方法并没有对于越界的系数进行量化。例如: sos=1,2,1,1,-1.19,0.45本是一个稳定的高阶iir滤波器的系数矩阵中的一维向量,表示直接ii型级 联形式的一部分。经过matlab16位定点量化后成为了 sos=32767,32767,32767,32767,-32768,14715 成为了一个不稳定的系统,从而硬件实现就不可能了。a.系数的转化matlab带符号定点16位转化是,将所有大于1,小于-1的数值全部归一化, 造

19、成了巨大的量化误差,众所周知,iir滤波器的实现过程中存在着反馈,于是 累进量化误差越来越大造成了系统的不稳定。量化问题中不得不提的还有一个标准格式问题。由于matlab产生的浮点系数并没有依照cc阱dsplibiir能够调 用的数据格式。经过查阅资料以及多次的失败尝试积累出的经验,了解到我所要设计的iir滤波器所需使用的iircas刚用命令使用的是q1嗷据格式,而matlab 所产生的7?点值是q1领据格式,而在进行定点转换时,matlab有将q14勺数据 格式量化,进行大误差归一化直接转化为 q15勺定点形式所以造成硬件实现的失 败。matlab生的系数一般已经是满足ccs调用函数的sec

20、ond-order形式了。filt er design ft analysis- tn mi unt it led., f da ,0e(xfil% edi i an4lyiis t ox gets view window help口 卢p昌口阳j90x o即日凶国老为出国端。国回wicurrent f4ter normalion.structure: direict-form ii,second-orciw section-:older:6stcbioris: 3密制le yessourcb: designedslae fiter ._ response type一 desi method.

21、f3 order efiecify cr&w 6o mlnlmue order_ rreomeflcy 5oeclilcattonsunhs: hzfs:1600 口 hr butterworlh.optkdtis:there are no 中后整 parameters for frits desagri me4hod.maonlude spmrricefijons _the attenuhtiori ot culoff freqiimcies is lised &t3db (half the passftand gain)filer managedesign fuercomputing re

22、sponse . dorie次滤波器为例,产生的系数为:section #1numerator:121denominator:1-1.1954339628907380.69059892324149696gain:0.12379124008768973section #2numerator:121denominator:1-0.942809041582063360.33333333333333343gain:0.09763107293781749section #3numerator:121denominator:1-0.840286921651326790.18834516088404471g

23、ain:0.087014559808179473output gain: 1其中numerator就是分子部分,也就是b,其中deneminator就是分母部分也 就是a, gain就是增益,一般计算系数,只需将分子部分乘以各部分增益,在转 化为定点数。分母部分只需将其转化为定点部分就可以了。但是,这个系数中, 存在着一项a11的情况,我才 用了如下的公式来进行量化和数据格式转换:a=;b=;a=a/2*32767*g; b=b/2*32767 其中,a为分母,b为分子;g为各项增益这个公式所形成的矩阵就可以应用到iircas5的数据格式要求中,减小了溢 出的可能性。c.误差分析(1)又tii

24、r数字滤波器的系数,采用定点q0&式进行数据的处理,将引入系数 量化误差;(2)对输入的测试信号,采用定点q0&式进行数据的处理,将引入输入信号的量化误差;(3)由于使用的a/d, d/a专换器件为有限字长,如da专换器的字长仅10 b 或12 b0在软件程序中事先要把数据化为相同的字长位数,再送到 dza转换器, 也将引入量化误差。(4) 对数字滤波的运算过程编制相应的程序,其中滤波器选用直接型、级联型还是并联型,将产生不同的运算量化误差。四、程序设计、调试与结果分析本次试验使用的fir与iir滤波器程序主体大致相同,所以只是对fir_dma.c中的与iir与fir两种不同的滤波器的相关系数

25、进行了修改,下面列出的是 iir滤波器的设计程序。(一)准备工作:需要将头文件等库函数都装入到指定位置:1、 drv5402.lib 是软件仿真所用的仿真器所必需的库文件;2、dsk5402.lib是驱动ds板所必需的库文件;3、rts.lib ,这个库提供目标ds陋行时间支持(runtime-support)。由于程序没有#include ,因此本程序不需要头文件。上图是编译成功的结果显示: 无错误和警告! 这是最终调试成功的结果, 首次运行时有11个错误,主要是_cosx和_cosx混淆,分号的误写等。因此,本程序所使用的配置文件有:( 1)、-c ,即源程序文件;( 2)、-o , if

26、r_dma.out即输出文件(默认在 debug目录);( 3)、 -l rts.lib 等库文件。(二)程序清单:通过理解iir的基本原理,也可以通过c语言或是汇编语言进行编写,同样可以 达到滤波的效果。因为有调用函数,使用起来比此程序方便,所以只是用了函数来实现。1主程序:/* 声明头文件*/ #include #include #include #include #include #include /*/*/* function prototypes /*/void delay(s16 period);extern void dmac2isr();/* 声明 dmac2isr外部函数 *

27、/*/* 全局变量的定义*/*/handle hhandset;unsigned int dmsefc, dmmcr, dmctr, src_addr, dst_addr;unsigned int dmpre, dmsrcp, dmdstp, dmidx0, dmidx1, dmfri0, dmfri1, dmgsa, dmgda, dmgcr, dmgfr;/* 给输入缓冲区建立字段*/#pragma data_section(inp_buffer,audio_buffer);int inp_buffer0x200;/* 给输出缓冲区建立字段*/#pragma data_section(ou

28、t_buffer,outt_buffer);int out_buffer0x200;/* 为系数建立字段*/#pragma data_section(coeffs,coefficients);/* iir,butterworth 低通滤波器fs=16000 fc=2000hz*/int coeffs15=-13765,3085,1425,1425,2851,-19585,11314,1756,1756,3513,-15446,5461,1846,1846,3693;/*fir hann 低通 fs=16000,fc=2000*/int coeff16=-43, -178, -407, -353

29、, 671, 2968, 5860,7903, 7903,5860, 2968, 671, -353, -407, -178, -43 ;#pragma data_section(delaybuff,delayb);int delaybuff6=0;/int delaybuff16=0/* 给中断服务寄存器定义变量*/int frame=0;int flag=0;int temp;int currbuff = 0;/* delayptr 指针变量指向延迟缓冲区的首地址*/int *delayptr1 = &(delaybuff0);interrupt void dmac2isr();/*/*

30、主程序 */*/void main()s16 cnt=2;/* 需要用到的 bois 的部分定义*/bscr = 0x8806;xpc = 0;pmst = 0xa0;brd_set_cpu_freq(100);timer_halt(0);brd_set_wait_states(7, 7, 9);timer_reset(0);imr=0; / 禁止所有中断if(brd_init_bios()return;while(cnt-)/切换led旨示灯0的显示状态/切换led旨示灯1的显示状态/切换led旨示灯2的显示状态brd_led_toggle(brd_led0);delay(1000);brd

31、_led_toggle(brd_led1);delay(1000);brd_led_toggle(brd_led2); delay(1000);/* 初始化 codec */hhandset = codec_open(handset_codec);/*给一个句柄*/*设置codec变量*/codec_dac_mode(hhandset, codec_dac_15bit);/* dac 15位模式*/codec_adc_mode(hhandset, codec_adc_15bit);/* adc 15位模式 */codec_ain_gain(hhandset, codec_ain_6db); /

32、*6db的输入增益 adc */codec_aout_gain(hhandset, codec_aout_minus_6db); /* -6db 的输出 衰减 dac */codec_sample_rate(hhandset,sr_16000);/*设置抽样频率为 16000hz */? /*清除dmac2中断标志*/intr_clr_flag(dmac2);/*重置dma1道*/dma_reset_all();/*初始化dma!道2 */dmsefc = (dsync_revt1 12);/与 mcbsp接收事件同步dmmcr = (autoinit_enable 15) | (dinm_e

33、nable 14) |(imod_halfblock 13) | (ctmod_dec 12) | (indexmode_nomod 8) | (space_data 6) | (indexmode_inc 2) | (space_data);/设置而t控制模式寄存器dmmcr帧结束dm冲断;/15bit autoinit_enable=1使能自动初始化根据imo双广生中断帧和块结束时都产生中断减量计数模式( 多帧模式 )源地址模式no modify源地址空间为数据空间目的地址模式, 传输之后加1目的地址空间为数据空间/14bit dinm_enable=1/13bit imod_halfbl

34、ock=1/12bit ctmod_dec=0/10-8bit indexmode_nomod=000/7-6bit space_data=01/4-2bit indexmode_inc=01/1-0bit spacedata=01dmctr = 0xff;/ 单元记数src_addr = drr1_addr(handset_codec);/股置源地址dst_addr = (unsigned int) &inp_buffer;/设置目的地址dma_init(dma_ch2, dmsefc, dmmcr, dmctr, space_data, src_addr, space_data, dst_

35、addr);/* 设置通道2帧数 */dma_framecount(dma_ch2, 1);/* 为通道2输入设置全局自动初始化寄存器*/dmgsa = src_addr;dmgda = dst_addr;dmgcr = 0xff;dmgfr = 1;/* 设置全局优先级和使能控制寄存器*/dmpre = (high_priority 10) | (intsel_01 6);dmsrcp = space_data;dmdstp = space_data;dmidx0 = 0;dmidx1 = 0;dmfri0 = 0;dmfri1 = 0;dma_global_init(dmpre, dmsr

36、cp, dmdstp, dmidx0, dmidx1, dmfri0, dmfri1, dmgsa, dmgda, dmgcr, dmgfr);/* 通道 2 使能 */dma_enable(dma_ch2);/* 开始前端串行端口接收数据流*/temp = *(volatile u16*)drr1_addr(handset_codec);/* 通道 2中断使能 */intr_enable(dmac2);/* 全局中断使能 */intr_global_enable;/* 等待中断 */for(;);/*/* 延迟 */*/void delay(s16 period)int i, j;for(i

37、=0; iperiod; i+)for(j=0; jperiod; j+);2. 终端服务程序 dma2isr.c 代码及分析#include #include extern void delay(s16 period); extern unsigned int channel; extern unsigned int dmsefc; extern unsigned int dmmcr;extern unsigned int dmctr;extern unsigned int src_page; extern unsigned int src_addr; extern unsigned int

38、 dst_page; extern unsigned int dst_addr;/*dma/*/*/*/*/*/*/*通道数 */设置同步时间和帧计数寄存器值*/设置模式控制寄存器值*/设置单元计数寄存器值*/设置源页寄存器值*/设置源地址寄存器值*/设置目的页寄存器值*/设置目的地址寄存器值*/extern int inp_buffer0x200;些阜iir若是 iir若是滤波器,需要改为 coeffs15*/iir 滤波器,需要改为 delaybuff6*/extern int out_buffer0x200;extern int coeffs16;/*extern int delaybu

39、ff16; /* extern int frame;extern int flag;extern int currbuff;extern int *delayptr1;init_dma3(void)int l=0; void while(dmprec&0x0008) ; /dma3 的传送是否结束/* 初始化通道3 */dmsefc = (dsync_revt1 12);dmmcr = 0x4141;dmctr = 0xff;/256 单元 / 帧src_addr = (unsigned int) &out_buffer+(unsigned int)frame*0x100);dst_addr

40、= dxr1_addr(handset_codec);dma_init(dma_ch3, dmsefc, dmmcr, dmctr, space_datas,rc_addr, space_data, dst_addr);/* 设置通道 3 的帧数 */dma_framecount(dma_ch3, 0); /2 frame/block/* 使能通道 3 */dma_enable(dma_ch3);interrupt void dmac2isr(void)int *p_inp,*p_out;p_inp=inp_buffer+frame*0x100;p_out=out_buffer+frame*0

41、x100;调用 iir 滤波函数调用 fir 滤波函数 */iircas5(p_inp,coeffs,p_out,&delayptr1,3,256);/* */fir(p_inp,coeffs,p_out,&delayptr1,16,256);/*init_dma3();framea=1;3.中断向量c5402vec.asm代码及其分析.title 5402 dsk interrupt vector table initialization.ref _c_int00, _dmac2isr.sect .vecsreset:bd _c_int00 ;初始化 cpu寄存器,分支指向_c_int00

42、, bd占 2 个字节nopnopnmi: bd nmi ; nminopnop *软件 s/w 中断*sint17 bd sint17nopnopsint18 bd sint18nopnopsint19 bd sint19nopnopsint20 bd sint20nopnopsint21 bd sint21nopnopsint22 bd sint22nopnopsint23 bd sint23nopnopsint24 bd sint24nopnopsint25 bd sint25nopnopsint26 bd sint26nopnopsint27 bd sint27nopnopsint28

43、 bd sint28nopnopsint29 bd sint29nopnopsint30 bd sint30nopnop*其他中断*int0: bd int0nopnopint1: bd int1nopnopint2: bd int2nopnoptint0: bd tint0nopnopbrint0: bd brint0nopnopbxint0: bd bxint0nopnopdmac0: bd dmac0nopnoptint1: bd tint1nopnopint3: bdint3nopnophpint: bdhpintnopnopdmac2: bddmac2isr;brint1/dmac2

44、nopnopdmac3: bddmac3nopnopdmac4: bddmac4nopnopdmac5: bddmac5nopnop(三)程序调试:首先测试iir滤波器与fir滤波器是不是都能够使用并且能够正常滤波,首先利用matlab的sptool进行仿真实验,看是不是存在溢出或是不稳定。产生的 1000hzf 4500hz勺混频彳s号。fs=16000hzhals i gna 1 br ows erfite marit erelindow help昌 车划 | 口 乂1亭 6 h=|g|!二因# |久等|中marker 1 黑国marker 2 x; 67die 34 y: 0,14203

45、962j: ,14203952tiy: -0.2b407904利用16阶fir滤波器滤出来的效果,可见fir滤波器参数可以正常使用jrsignal browserfile markers window helpi:二眼肝凫w总昌陞$ 节t:; x i v 衿三sig2 (101x1 reai.fs=l)0.50-0.500t9080o60)&50imt403020merkarl x: 33v: 0.00035714559marker 其:s7y: q及30sdx: 34d 43,4029002,iwuueel滤波器的幅度相应:magnitude response (db)frequency (

46、khz)6阶iir低通butterworth滤波器的滤波效果,不存在溢出refile harkers dndov help昌金明刚忍l4 x i 阳*三|国li二园忖陕引w10.50-0.5sig3 (101x1 real fs=1)3 匚lieq.mfirker t : 33graph*能观察输入输出信号:1isk/cpu_1 -居4# - code存方r sludielle edit &b eroject jjetuf; ptofl er 犯l ucni 工砒匕 d/exos ilddov help由0。 电中寸f席a看聃 uff 瞄有熊第ee d/先/ |fk.4,pjt三画j3 b b

47、 白金飘僵卬苗* 白(3国国回回ilxi脚r.日uind h讯口let-d errtrr 0 %tmirg8 a q reia/rfc酊k h bu*d /.rvtesgps/iki1i?u haltedfor lielpv press mln 网 51 1 b7ifir的输入信号,输出信号和频谱。时域波形:频域滤出前后对比iir的输入信号,输出信号和频谱。可见现实中,fir与iir的滤波效果都可以非常的接近理想中的情况。只是在 iir 的滤波器的量化是还是存在的增益的改变, 无法满足理想的情况,尝试增大音量 来调整增益情况,就会发生如下的情况:(1z7, 291) (127, 2-ikx机射. 407. 072 fft.2,幽,379659) f

温馨提示

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

评论

0/150

提交评论