




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、直接型FIR滤波器的优缺点如下:优点:简洁直观,乘法运算量较少;缺点:调整零点较困难2、FIR移位存放器移位存放器的功能是将输入序列缸,z)通过移位存放器改为并行输入,这个模块的功能对于所要争论的三种FIR滤波器的实现构造是完全全都的。优化模块优化模块的功能是依据FIR滤波器h(,1)的对称特性将滤波器降阶,完成输入求和缸幼+x(m-1.幼,对于本例中的128抽头的滤波器,即完成颤O)+缸127),双1)+缸126),8943.,缸63)+x(64),这个模块的功能对于所要争论的三种FIR滤波器的实现构造是完全全都的。乘法器模块对于使用乘法器构造的FIR滤波器,乘法器的实现对于系统的性能有很大的影响,在第5章将着重介绍乘法器的实现及优化问题。基于DA算法的乘法器是通过查找表的方法实现的。加法器将前面乘法器模块得到的结果相加,最终得到输出结果Y(玎),有关加法器的设计及52.1FIR上图中,FIR滤波器的系数存储器用来存入全部的FIR滤波器系数,存储器的容量依据FIR滤波器的阶数和系数的位数来确定。采样数据存储器用来暂存外部输入的采样数据。读取掌握模块用来掌握采样数据与相对应的FIR滤波器系数输出以及滤波器输出。采样数据与滤波器系数在掌握电路的作用下,分别对应相乘并与前一个乘积存加,经过滤波器的阶数次的反复乘加最终输出滤波结果。乘累加构造FIR滤波器性能分析:优点:这种滤波器构造简洁,硬件资源占用少,只要一个加法器和一个乘法器,成本低。缺点:这种构造FIR滤波器每次都需在多个时钟周期下才有输出,时钟周期的个数受滤波器阶数的影响,因此这种乘累加构造的FIR滤波器处理速度慢,只能用于对处理速度要求不高的系统。滤波器系数转为定点后的误差分析一、系统概述在滤波器系数由浮点转位定点后系统会有误差消灭。我们要求系统误差在80db以上。通过分析要得出最终量化过程中,中间值的位数,即中间的乘法运算结果和乘法后加法的运算结果的所取的位数。固然位数越小,所用到的系统资源越小。由于系统要在FPGA中进展实现,所以内插滤波器,包括半带滤波器、FIR滤波器、CIC滤波器均承受定点计算。其中半带滤波器和FIR滤波器输入和输出精度均为16比特,中间乘法结果和20比特精度。CIC1621比特。输入DSP信号为312.5kHz的基带信号,需要通过内插后提升128倍的过采样速率。奈奎斯特半带滤波器↑2FIR↑32CIC半带滤波器↑2FIR↑32CIC第1级第2级第3级数字基带输入
过采样输出1内插滤波器总体构造图二、半带滤波器的误差分析、半带滤波器浮点系数的参数特性半带滤波器承受34阶,其系数如下表所示:1.1555011750488237e-0030.0000000000000000e+000-2.7482166351233102e-0030.0000000000000000e+0005.7681982289523072e-0030.0000000000000000e+000-1.0736374060960912e-0020.0000000000000000e+0001.8592023233668478e-0020.0000000000000000e+000-3.1093723586671229e-0020.0000000000000000e+0005.2603914610235683e-0020.0000000000000000e+000-9.9130756073130377e-0020.0000000000000000e+0003.1592697826202448e-0015.0000000000000000e-0013.1592697826202448e-0010.0000000000000000e+000-9.9130756073130377e-0020.0000000000000000e+0005.2603914610235683e-0020.0000000000000000e+000-3.1093723586671229e-0020.0000000000000000e+0001.8592023233668478e-0020.0000000000000000e+000-1.0736374060960912e-0020.0000000000000000e+0005.7681982289523072e-0030.0000000000000000e+000-2.7482166351233102e-003-2.7482166351233102e-0030.0000000000000000e+0001.1555011750488237e-003半带滤波器的频率响应如以下图2所示:MagnitudeMagnitude(dB)andPhaseResponses0-0.0771-10-4.5114-20-8.9458d-30-13.3801(e aM-40-50-17.8144(P-22.2488-60-26.6831-70-31.117400.10.20.30.40.50.60.70.80.9NormalizedFrequency( rad/sample)根本参数:
图2 34阶半带滤波器频率响应DSP312.5kHz的基带信号,需要通过内插后提升2倍的过采样速率。奈奎斯特采样频率为625kHz。经过内插后速率提升为2倍的奈奎斯特采样频率,后经过半带滤波器滤除中间的镜像频谱。以下是其他的系统参数。滤波器的系数矩阵:a=[1.1555011750488237e-003,0.0000000000000000e+000,-2.7482166351233102e-003,0.0000000000000000e+000,5.7681982289523072e-003,0.0000000000000000e+000,-1.0736374060960912e-002,0.0000000000000000e+000,1.8592023233668478e-002,0.0000000000000000e+000,-3.1093723586671229e-002,0.0000000000000000e+000,5.2603914610235683e-002,0.0000000000000000e+000,-9.9130756073130377e-002,0.0000000000000000e+000,3.1592697826202448e-001,5.0000000000000000e-001,3.1592697826202448e-001,0.0000000000000000e+000,-9.9130756073130377e-002,0.0000000000000000e+000,5.2603914610235683e-002,0.0000000000000000e+000,-3.1093723586671229e-002,0.0000000000000000e+000,1.8592023233668478e-002,0.0000000000000000e+000,-1.0736374060960912e-002,0.0000000000000000e+000,5.7681982289523072e-003,0.0000000000000000e+000,-2.7482166351233102e-003,0.0000000000000000e+000,1.1555011750488237e-003]浮点滤波设计过程Matlab程序设计:系统初始化clearallcloseallclf;clc;半带滤波器的根本参数设置fs=625000;Fs=2*fs;N=2023; %原始信号的长度n1=0:N-1; %原始输入信号取值范围,间隔为1n2=0:2*N-1; %内插后信号的取值范围,间隔为1M=2*N+35-1; %卷积运算后输出信号y的长度m=0:M-1; %滤波后信号的取值范围,间隔为1生成输入的N个16bit随机整数x1=randint(1,N,[-32768,32767]);对生成后的N个随机整数进展2倍内插fori=1:Nx2(2*i-1)=x1(i);endstem(n2,x2)gridon输入”)输入信号的奈奎斯特采样频谱X1k=fft(x1,N);%用fft求DFT即X〔k〕mag1=abs(X1k);%求k次谐波的振幅f1=n1*fs/N;%DFT的X〔k〕的k次谐波的振幅对应的频率是f(k)=k/(N*Δt)=k/T=k*fs;figure真实振幅的结果需要对上一步所求结果乘以2/Nxlabel(”频率/Hz”),ylabel(”振幅”),title(”基带信号奈奎斯特采样--幅频特性曲线”),gridon;2倍内插后,采样速率提升2倍X2k=fft(x2,2*N);mag2=abs(X2k);f2=n2*Fs/(2*N)%采样速率提升2倍subplot(2,2,2),plot(f2,mag2*2/(2*N));xlabel(”频率/Hz”),ylabel(”振幅”),title(”奈奎斯特采样信号2倍内插后--幅频特性曲线”),gridon;浮点型半袋滤波器的归一化幅频特性曲线a=[1.1555011750488237e-003,0.0000000000000000e+000,-2.7482166351233102e-003,0.0000000000000000e+000,5.7681982289523072e-003,0.0000000000000000e+000...-1.0736374060960912e-002,0.0000000000000000e+000,1.8592023233668478e-002,0.0000000000000000e+000,-3.1093723586671229e-002,0.0000000000000000e+000...5.2603914610235683e-002,0.0000000000000000e+000,-9.9130756073130377e-002,0.0000000000000000e+000,3.1592697826202448e-001,5.0000000000000000e-001...3.1592697826202448e-001,0.0000000000000000e+000,-9.9130756073130377e-002,0.0000000000000000e+000,5.2603914610235683e-002,0.0000000000000000e+000...-3.1093723586671229e-002,0.0000000000000000e+000,1.8592023233668478e-002,0.0000000000000000e+000,-1.0736374060960912e-002,0.0000000000000000e+000...5.7681982289523072e-003,0.0000000000000000e+000,-2.7482166351233102e-003,0.0000000000000000e+000,1.1555011750488237e-003];%a是35阶浮点型半带滤波器滤波器的系数[Ha,fa]=freqz(a,1,N); %求浮点半带滤波器的频响特性假设是N点得DFT〔这个是不影响的〕subplot(2,2,3),plot(fa/pi,20*log10(abs(Ha)/max(abs(Ha))));%对浮点半带半带滤波器的频率归一化,但是振幅是真实振幅20*log10(abs(Ha)/max(abs(Ha)))xlabel(”归一化频率”),ylabel(”振幅”),title(”浮点半带滤波器的归一化幅频特性曲线”),gridon;%%浮点半带滤波器滤波后的2倍内插信号输出==采样频率提高2倍ya=conv(a,x2)%滤波的过程就卷积的过程Yak=fft(ya,M);maga=abs(Yak);f3=m*Fs/M; %内插信号经过半袋滤波器滤波subplot(2,2,4),plot(f3,maga*2/M);xlabel(”频率/Hz”),ylabel(”振幅”),title(”浮点型半带滤波器滤波后信号的幅频特性曲线”),gridon;figuretitle(”浮点滤波器的输出时域图”)gridon;注释:注释:其中的freqz函数的使用说明如下:MATLAB供给了特地用于求离散系统频响特性的函数freqz,调用freqz的格式有以下两种:(1).[H,w]=freqz(B,A,N),B和AN为正整数,返回量H则包含了离散系统频响在0——pi范围内N个频率等分点的值,向量w则包含NN512。(2).[H,w]=freqz(B,A,N,’whole’)该调用格式将计算离散系统在0—pi范内的N个频率等分点的频率响应的值。因此,可以先调用freqz函数计算系统的频率响应,然后利用abs和angle函数及plot函数,即可绘制出系统在或范围内的频响曲线。、浮点半带滤波器滤波后的结果x10 输入43210-1-2-3-405001000150020232500300035004000图3时域输入信号42倍过采样的频谱分析及滤波结果、半带滤波器定点系数的参数特性:由于系统要在FPGA中进展实现,所以内插滤波器,包括半带滤波器、FIR滤波器、CIC滤波器均承受定点计算。正如上文所示半带滤波器输入和输出精度均为16比特,中间乘法结果和累加结果为20比特精度。所以要跟以上的系统要求,仿真出以上定点运算后的半带滤波器输出结果。、半带滤波器的定点系数《浮点转定点系数量化二进制数》一文中已经得出浮点系数量化后的结果,半带滤波器是系数对称的,并且有一半的系数为0,需要量化的系数有10个。量化滤波器系数的过程为:滤波器系数用小数二进制表示后,截取高15位后,乘以2^15,然后用16bit的二进制数表示,16位二进制数最高位为0,低15位即是截取小数二进制的高15位。此过程相当于滤波器的系数均取正数,进展152^1515位。得到10个非零正系数的量化结果,用16bit二进制数表示为:b1=0000000000100101==37b2=0000000001011010==90b3=0000000010111101==189b4=0000000101011111==351b5=0000001001100001==609b6=0000001111111010==1018b7=0000011010111011==1723b8=0000110010110000==3248b9=0010100001110000==10352=16384其中,b2、b4、b6、b8均表示的是负数系数。正确的16位二进制原码表示方法为:b1”=h[0]=0000000000100101==37b2”=h[2]=1000000001011010==-90b3”=h[4]=0000000010111101==189b4”=h[6]=1000000101011111==-351b5”=h[8]=0000001001100001==609b6”=h[10]=1000001111111010==-1018b7”=h[12]=0000011010111011==1723b8”=h[14]=1000110010110000==-3248b9”=h[16]=0010100001110000==10352=16384所以得到定点半袋滤波器的参数为:h=[37,0,-90,0,189,0,-351,0,609,0,-1018,0,1723,0,-3248,0,10352,16384,10352,0,-3248,0,1723,0,-1018,0,609,0,-351,0,189,0,-90,0,37]依据卷积公式,y[n]=N1[k]*[nk],但是通过以上二进表达制表示后的滤波器的系数,有k0一半为0,而且系数是关于h[17]。最终得到半带滤波器输出y[n]的式:352]334]31其中乘法运算系数最大的是h[17]=16384,其次是h[16]=10352。正如上面所示的卷积公式,系统进展滤波器要做10次乘法运算。所以按输入最大化的状况,乘法最大的值为:Max(mult)=h[16]*x[n16]x[n191]两个输入的最大值,16位:0111111111111111Max(plus)=x[n-16]+x[n-19+1]=01111111111111110h[16]=0010100001110000所以最大的乘法输出结果为31位的二进制数,即是:Max(mult)=h[16]*Max(plus)=010100001101111101011110010000031220位表示,这就舍去了后面的低11位二进制数,相当于除以了2^11,右移了11位。其他的乘法运算结果都要右移11位,也就是舍去运算结果后面的低11位。2^1111位。对于先进展的系数累加也要用20位的二进制数表示,不过这没有任何影响。其他的系数假设h[17]2h”结果是:h”=0011110001100001可以看出h”h[16],所以最终的乘累加结果不会超过:〔h”+h〕*Max(plus)=01100100110100000011011001011110乘累加后结果为32位二进制数,要用20位的二进制数表示,要在前面乘法运算后右移11位的根底上再右移1位,即再除以2。最终得到20位的乘累加结果。但是要16bit的输出,所以截取16416bit的结果。开头时,我们对系数左移15位,在中间的计算过程中,我们对计算结果共右移16位。所以到12。Matlab设计程序:定点型半袋滤波器的归一化幅频特性曲线b=[37,0,-90,0,189,0,-351,0,609,0,-1018,0,1723,0,-3248,0,10352,16384...10352,0,-3248,0,1723,0,-1018,0,609,0,-351,0,189,0,-90,0,37];%b是35阶定点半带滤波器的系数[Hb,fb]=freqz(b,1,N)%求定点半带滤波器的频响特性假设是N点得DFT〔这个也是不影响的〕figuresubplot(2,1,1),plot(fb/pi,20*log10(abs(Hb)/max(abs(Hb))));%对定点半带半带滤波器的频率归一化,但是振幅是真实振幅xlabel(”归一化频率”),ylabel(”振幅”),title(”定点半带滤波器的归一化幅频特性曲线”),gridon;定点滤波器滤波后的2倍内插信号的输出m2=1:M;yb=zeros(1,M);for(ii=1:2*N)x3(ii+34)=x2(ii);%把产生的随机数右移34个采样点便于下面计算endy3(n3)=0fornn=1:2:(length(b)-1)/2y3(n3)=y3(n3)+fix(2^(-11)*b(nn)*(x3(n3-nn+1)+x3(n3-length(b)+nn)));endy3(n3)=fix(2^(-1)*(y3(n3)+fix(2^(-11)*b(1+(length(b)-1)/2)*x3(n3-(length(b)-1)/2))));%依据乘法器和乘累加二进制位数的要求计算出卷积运算后的结果endfor(iii=1:M)yb(iii)=fix(2^(-4)*y3(iii+34));%左移34个采样点输出16位的卷积运算结果endyb=2*yb;%真实正确的输出Ybk=fft(yb,M);magb=abs(Ybk);f4=m2*Fs/M;subplot(2,1,2),plot(f4,magb*2/M);xlabel(”频率/Hz”),ylabel(”振幅”),title(”定点型半带滤波器滤波后后信号的幅频特性曲线”),gridon;figure定点滤波器输出”)gridon;、定点半带滤波器滤波后的结果:x104 定点滤波器输出3210-1-2-30 500 1000 1500 2023 2500 3000 3500 4000 45005浮点半带滤波器时域输出0-50幅振-100
定点半带滤波器的归一化幅频特性曲线-1500 0.1 0.2 0.3 0.4 0.5 归一化频率
0.7 0.8 0.9 115001000幅振500
定点型半带滤波器滤波后后信号的幅频特性曲线00 2 4 6 频率/Hz
10 12 14x105结论
62倍过采样的频谱分析及滤波结果通过以上分析论证,得出最终得信噪比为75db,已到达系统的要求。三、FIR滤波器的误差分析、FIR滤波器浮点系数的参数特性-1.5619827730160107e-018-5.2391810630145275e-0034.1925742052049851e-0182.3211101786365075e-002-1.0543383717858071e-017-7.6105845748673545e-002-1.5619827730160107e-018-5.2391810630145275e-0034.1925742052049851e-0182.3211101786365075e-002-1.0543383717858071e-017-7.6105845748673545e-0021.6894193230511156e-0173.0769877873674434e-0015.0087029257715721e-0013.0769877873674434e-0011.6894193230511156e-0171.6894193230511156e-017-7.6105845748673545e-002-1.0543383717858071e-0172.3211101786365075e-0024.1925742052049851e-018-5.2391810630145275e-003-1.5619827730160107e-018MagnitudeMagnitude(dB)andPhaseResponses0-0.1784-10-3.1797-20-6.1809(e -30-9.1822gM-40-12.1835P-50-15.1848-60-18.1861-70-21.18740 0.1 0.2 0.30.4NormalizedFrequency(0.50.6rad/sam ple)0.70.80.9图7 16阶FIR滤波器频率响应量化滤波器系数的过程为:滤波器系数用小数二进制表示后,截取高15位后,乘以2^15,然16bit的二进制数表示,1601515位。此过程相当于滤波器的系数均取正数,进展小数二进制表示,截取高15位后,扩大2^15倍,即左15位。9个非零正系数的量化结果,用16bit二进制数表示为:d1=0000000000000000=0;d2=0000000010101011=171;d3=0000000000000000=0;d4=0000001011111000=760;d5=0000000000000000=0;d6=0000100110111101=2493;d7=0000000000000000=0;d8=0010011101100010=10082;d9=0100000000011100=16412;其中,d2、d6均表示的是负数系数。正确的16位二进制原码表示方法为:d1”=h[0]=0000000000100101==0d2”=h[1]=1000000001011010==-171d3”=h[2]=0000000010111101==0d4”=h[3]=1000000101011111==760d5”=h[4]=0000001001100001==0d6”=h[5]=1000001111111010==-2493d7”=h[6]=0000011010111011==0d8”=h[7]=1000110010110000==10082d9”=h[8]=0010100001110000==16412所以得到定点FIR滤波器的参数为:h=[0,-171,0,760,0,-2493,0,10082,16412,10082,0,-2493,0,760,0,-171,0]依据卷积公式,y[n]=N1[k]*[nk],但是通过以上二进制表示后的滤波器的系数,量化后k00h[8]y[n]的表达式:h[7]*x[n7x[n9]+h[8]*x[n8]由上可以看出,乘法元算系数最大的是h[7]=10082,其次是h[8]=16412。正如上面所示的卷积5次乘法运算。所以按输入最大化的状况,乘法最大的值为:两个输入的加法最大值,16位:0111111111111111Max(plus)=x[n-7]+x[n-9]=01111111111111110h[7]=0010011101100010所以最大的乘法输出结果为31位的二进制数,即是:Max(mult)=h[7]*Max(plus)=0101101011011011010010100100100031220位表示,这就舍去了后面的低11位二进制数,相当于除以了2^11,右移了11位。其他的乘法运算结果都要右移11位,也就是舍去运算结果后面的低11位。2^1111位。对于先进展的系数累加也要用20位的二进制数表示,不过这没有任何影响。其他的系数假设h[8]2h”结果是:h”=h[1]+h[3]+h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婚前签婚后财产协议书
- 土石方运输合同协议书
- 调换铺面协议书
- 父亲和亲戚买房协议书
- 校园暴力和欺凌协议书
- 老公保证协议书
- 苗木成活协议书
- 职能授权协议书
- 美加谈判协议书
- 炸鸡店入股合同协议书
- 2024年中国海鲜水饺市场调查研究报告
- 模拟试卷(7)-【中职专用】2025年职教高考语文冲刺模拟卷(职教高考)解析版
- 【MOOC】成本会计学-西北农林科技大学 中国大学慕课MOOC答案
- 《反洗钱培训》课件
- 博飞全站仪BTS-812CLA说明书
- LNG详细工艺流程
- 《公路建设项目文件管理规程》
- 2024-2030年中国产权交易行业前景动态与未来发展形势报告
- 门窗合伙人合同协议书范文范本
- 红色经典影片与近现代中国发展学习通超星期末考试答案章节答案2024年
- 户外空调外机清洗的安全协议书
评论
0/150
提交评论