基于DSP的IIR数字滤波器-(设计实验)(汇编语言).doc

基于DSP的IIR数字滤波器-(设计实验)(汇编语言).doc

ID:60814544

大小:843.50 KB

页数:7页

时间:2020-12-20

基于DSP的IIR数字滤波器-(设计实验)(汇编语言).doc_第1页
基于DSP的IIR数字滤波器-(设计实验)(汇编语言).doc_第2页
基于DSP的IIR数字滤波器-(设计实验)(汇编语言).doc_第3页
基于DSP的IIR数字滤波器-(设计实验)(汇编语言).doc_第4页
基于DSP的IIR数字滤波器-(设计实验)(汇编语言).doc_第5页
资源描述:

《基于DSP的IIR数字滤波器-(设计实验)(汇编语言).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、IIR数字滤波器(设计实验)一、实验目的1.了解IIR(InfiniteImpulseResponse,无限冲激响应)滤波器原理及使用方法;2.了解使用MATLAB语言设计IIR滤波器的方法;3.了解DSP对IIR滤波器的设计及编程方法;4.熟悉在CCS环境下对IIR滤波器的调试方法;二、实验原理IIR数字滤波器的传递函数H(z)为:其对应的差分方程为:对于直接形式的二阶IIR数字滤波器,其结构如图4.1图4.1 IIR数字滤波器结构图编程时,可以分别开辟四个缓冲区,存放输入、输出变量和滤波器的系数,如图4.2所示。图4.2 II

2、R数字滤波器算法图三、实验内容与步骤设计一个三阶的切比雪夫Ⅰ型带通数字滤波器,其采样频率Fs=16kHz,其通频带3.2kHz5.6kHz为阻带,其衰减大于20dB。输入信号频率为4000Hz、6500Hz的合成信号,通过所设计的带通滤波器将6500Hz信号滤掉,余下4000Hz的信号,达到滤波效果。1、IIR滤波器的MATLAB设计在MATLAB中设计IIR滤波器,程序为:wp=[3.2,4.8];ws=[2.4,5.6];rp=1;rs=20[n,wn]=cheb1

3、ord(wp/8,ws/8,rp,rs)[b,a]=cheby1(n,rp,wn)设计结果为:N=3wn=0.40000.6000b0=0.a0=1.b1=0a1=0b2=-0.a2=2.13779b3=0a3=0b4=0.a4=1.76935b5=0a5=0b6=-0.a6=0.在设计IIR滤波器时,会出现系数≥1的情况,为了用Q15定点小数格式表示系数,可以用大数去所有系数。为避免在累加过程中出现≥1的情况,将系数进一步缩小,为此,在MATLAB中加入:B=round(b/6*2^15);A=round(a/6*2^15);滤

4、波系数为:B=630-18801880-63A=546101167509663029482.产生滤波器输入信号的文件使用CCS的Simulator进行滤波器特性的测试时,需要输入时间信号x(n)。本设计输入信号频率为4000Hz、6500Hz的合成信号,通过所设计的带通滤波器将6500Hz信号滤掉,余下4000Hz的信号。以下是产生输入信号的C语言程序:#include#includevoidmain(){inti;doublef[256];FILE*fp;if((fp=fopen("iirin.

5、inc","wt"))==NULL){printf("can'topenfile!");return;}fprintf(fp,"INPUT:.sect%cINPUT%c",'"','"');for(i=0;i<=255;i++){f[i]=sin(2*3.14159*i*4000/16000)+sin(2*3.14159*i*6500/16000);fprintf(fp,".word%1d",(long)(f[i]*32768/2));}fclose(fp);}该程序将产生名为iirin.inc的输入信号程序,内容如下

6、:INPUT:.sect"INPUT".word0.word25486.word-15136.word-314.word-11585.word19580.word6270.word-30006.word16383然后,在DSP汇编语言程序中通过.copy汇编命令将生成的数据文件iirin.inc复制到汇编程序中,作为IIR滤波器的输入数据。3.直接型IIR数字滤波器汇编源程序的编写直接型IIR数字滤波器汇编程序iir.asm如下:********直接型IIR数字滤波器通用程序**********.title"diir.asm".m

7、mregs.globalstart.defstart,_c_int00N.set6.copy"IIRIN.inc";输入信号x(n)数据table;IIR滤波器系数.word63.word0.word-188.word0.word188.word0.word-63.word0.word+11675.word0.word+9663.word0.word+2948.dataBN.usect"BN",N+1AN.usect"AN",N+1INBUF.usect"INBUF",256;输入缓冲区在数据区0x2400OUTPUT.usect

8、"OUTPUT",256;输出缓冲区在数据区0x2600.text.asgAR0,INDEX_P.asgAR2,XN_P.asgAR3,ACOFF_P.asgAR4,YN_P.asgAR5,BCOFF_P_c_int00bstartnopnopst

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。