基于fpga的数字滤波器的设计_毕业设计论文(编辑修改稿)内容摘要:

b=fir1(N,wn,window);③b=fir1(N,wn,’ftype’);④b=fir1(N,wn, ’ftype’,window)。 其中N表示滤波器的阶数,wn是截止频率,取值在0到1之间,它是以采样频率的一半为基准频率的归一化值,1对应采样频率的一半,b为滤波器的系数向量h(n)(按降幂排列),window用于指定窗函数种类,缺省为海明窗,窗函数的长度为N+1。 参数‘ftype’用于设计高通、带通和带阻滤波器,缺省为设计低通滤波器。 本设计中,所需FIR滤波器阶数为17阶,那么窗函数的长度为18,调用窗函数和fir1函数时,应注意N的值。 FIR滤波器MATLAB设计程序如下:N1=18。 N2=18。 N3=18。 w1=blackman(N1)。 w3=rectwin(N3)。 b1=fir1(N11,2/15,w1)。 b2=fir1(N21,2/15)。 b3=fir1(N31,2/15,w3)。 b0=a2dt(b1,16)。 disp(b0)。 [h1,omega1]=freqz(b1,1,512)。 [h2,omega2]=freqz(b2,1,512)。 [h3,omega3]=freqz(b3,1,512)。 [h0,omega0]=freqz(b0,1,512)。 plot(omega1/pi,20*log10(abs(h1)),39。 b39。 ,omega2/pi,20*log10(abs(h2)),39。 b:39。 ,omega3/pi,20*log10(abs(h3)),39。 b39。 )。 grid on。 xlabel(39。 归一化频率39。 )。 ylabel(39。 增益/dB39。 )。 axis([0 1 120 2])。 legend(39。 布拉格曼窗39。 ,39。 海明窗39。 ,39。 矩形窗39。 )。 figure。 plot(omega1/pi,20*log10(abs(h1)),39。 b39。 ,omega0/pi,20*log10(abs(h0)),39。 b:39。 )。 grid on。 hold on。 xlabel(39。 归一化频率39。 )。 ylabel(39。 增益/dB39。 )。 axis([0 1 120 2])。 legend(39。 布拉格曼窗原始39。 ,39。 布拉格曼窗量化后39。 )。 disp(39。 h1(n)=39。 )。 disp(b1)。 for i=1:18 a=dectobin(b1(i),16)。 num=0。 for k=1:16 num=a(k).*2.^(k)+num。 end。 disp(a)。 disp(num)。 end上述程序调用了三种窗函数设计FIR滤波器。 ,使用布拉格曼窗时,副瓣峰值明显比海明窗和矩形窗的小,很好地抑制了副瓣,符合预期要求。 上述程序还实现了系数量化和量化前后滤波器幅频特性比较,其中调用了自己编写a2dt和dectobin函数,用于实现系数量化,a2dt和dectobin程序不在这列出。 由于滤波器的所有系数都必须以有限长度的二进制码形式存放到存储器中,所以实际系统与理想系统之间存在误差,从而导致滤波器零极点位置发生偏离,进而影响到滤波器的性能。 故滤波器系数合理的量化,对数字滤波器的设计特别关键。 三种窗函数实现的FIR滤波器幅频特性。 ,使用15位二进制系数量化前后的幅频特性差异很大,使用16位二进 15位二进制系数量化前后的幅频特性制系数量化前后的幅频特性差异很小,量化前后幅频特性曲线几乎重合,故采用16位二进制系数量化。 16位二进制系数量化前后的幅频特性。 ,满足线性相位的要求。 16位二进制系数量化结果h(n)原始数据16位二进制h(0)、h(17)000000000000000h(1)、h(16)00000000000000h(2)、h(15)00000001100001h(3)、h(14)00001000011011h(4)、h(13)00011010001000h(5)、h(12)00111010001011h(6)、h(11)01100101011110h(7)、h(10)10010000100011h(8)、h(9)10101011101110 IIR滤波器设计用MATLAB进行IIR滤波器设计有两种方法,第一种是直接调用数字滤波器函数设计,第二种是调用模拟滤波器函数设计模拟滤波器,再调用冲激响应不变法或双线性变换法映射函数,转变成数字滤波器。 两者方法的不同在于第一种只采用双线性变换法,而第二种冲激不变法和双线性变换法都适用。 本设计采用的是双线性变换法,故使用第二种方法。 MATLAB中IIR数字滤波的设计通常包含两个步骤,一是根据技术指标确定滤波器阶次N和截止频率缩放因子wn,二是确定传输函数的系数。 MATLAB信号处理工具箱中提供了常用的设计IIR滤波器的函数,可以方便地调用这些函数来完成滤波器的设计,比如buttord,cheb1ord,cheb2ord,ellipord函数,他们分别对应于数字巴特沃斯滤波器、数字切比雪夫I型滤波器、数字切比雪夫II型滤波器和数字椭圆滤波器阶次N和截止频率缩放因子wn的确定。 ,wp和ws分别对应通带截止频率和阻带起始频率,单位为rad, 4种IIR滤波器设计函数调用格式IIR滤波器种类调用格式巴特沃斯[N,wn]=buttord(wp,ws,Rp,Rs)切比雪夫I型[N,wn]=cheb1ord(wp,ws,Rp,Rs)切比雪夫II型[N,wn]=cheb2ord(wp,ws,Rp,Rs)椭圆[N,wn]=ellipord(wp,ws,Rp,Rs)Rp和Rs分别对应通带最大衰减和阻带最小衰减,单位为dB。 MATLAB信号处理工具箱中的函数butter,cheby1,cheby2,ellip用于确定巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器和椭圆滤波器传输函数的系数。 , 4种滤波器传输函数系数计算函数滤波器种类调用格式巴特沃斯[B,A]=butter(N,wn,’ftype’)切比雪夫I型[B,A]=cheby1(N,Rp,wn,’ftype’)切比雪夫II型[B,A]=cheby2(N,Rp,wn,’ftype’)椭圆[B,A]=ellip(N,Rp,Rs,wn,’ftype’)A是数字滤波器系统函数的分母多项式系数,ftype用于指定滤波器类型,缺省为低通。 在以上的调用中,加上参数‘s’,完成的是相应模拟滤波器设计。 本IIR滤波器设计中,采样频率fs=135KHz,其模拟域技术指标为通带截止频率fp=,阻带起始频率fs=,通带最大衰减小于等于1dB,阻带最小衰减大于等于30dB。 其MATLAB设计设计程序如下:wp=2*pi*。 disp(wp)。 ws=2*pi*。 disp(ws)。 ap=1。 as=30。 w=linspace(0,*pi,200)。 [n,wc]=ellipord(wp,ws,ap,as)。 [b,a]=ellip(n,ap,as,wc)。 [n1,wc1]=buttord(wp,ws,ap,as)。 [b1,a1]=butter(n1,wc1)。 [n2,wc2]=cheb1ord(wp,ws,ap,as)。 [b2,a2]=cheby1(n2,ap,wc2)。 bt=a2dt(b,6)。 disp(bt)。 at=a2dt(a,6)。 disp(at)。 h=freqz(b,a,w)。 h1=freqz(b1,a1,w)。 h2=freqz(b2,a2,w)。 h0=freqz(bt,at,w)。 disp(39。 n=39。 )。 disp(n)。 disp(39。 wc=39。 )。 disp(wc)。 disp(39。 b=39。 )。 disp(b)。 disp(39。 a=39。 )。 disp(a)。 disp(39。 n1=39。 )。 disp(n1)。 disp(39。 wc1=39。 )。 disp(wc1)。 disp(39。 b1=39。 )。 disp(b1)。 disp(39。 a1=39。 )。 disp(a1)。 disp(39。 n2=39。 )。 disp(n2)。 disp(39。 wc2=39。 )。 disp(wc2)。 disp(39。 b2=39。 )。 disp(b2)。 disp(39。 a2=39。 )。 disp(a2)。 plot(w/pi,abs(h),39。 b39。 ,w/pi,abs(h1),39。 b:39。 ,w/pi,abs(h2),39。 b39。 )。 grid on。 axis([0 0 ])。 legend(39。 椭圆39。 ,39。 巴特沃斯39。 ,39。 切比雪夫39。 )。 figure。 plot(w/pi,abs(h),39。 b39。 ,w/pi,abs(h0),39。 b:39。 )。 legend(39。 椭圆型原始39。 ,39。 椭圆型量化后39。 )。 grid on。 figure。 zplane(b,a)。 grid on。 title(39。 椭圆型原始零极点分布39。 )。 legend(39。 零点39。 ,39。 极点39。 )。 figure。 zplane(bt,at)。 grid on。 title(39。 椭圆型量化后零极点分布39。 )。 legend(39。 零点39。 ,39。 极点39。 )。 for i=1:4 z1=dectobin(b(i),6)。 disp(z1)。 endy0=[(a(1)1) (a(2)1) (a(3)1) (a(4))]。 for i1=1:4 y2=dectobin(y0(i1),6)。 disp(y2)。 end上述程序设计了三种数字滤波器,分别是椭圆、巴特沃斯和切比雪夫数字滤波器。 ,巴特沃斯滤波器阶数N=7,切比雪夫滤波器阶数N=4,而椭圆滤波器阶数最小(N=3),再比较幅频特性,巴特沃斯滤波器过渡带特性最差,而椭圆滤波器,过渡带较陡,幅频特性较好。 综上两点,选择设计椭圆数字滤波器。 三种数字滤波器幅频特性比较上述程序还实现了椭圆数字滤波器系数量化和量化前后滤波器幅频特性和零极点分布比较,其中调用了用户编写的a2dt和dectobin函数,用于实现系数量化,a2dt和dectobin程序不在这列出。 ,使用5 5位二进制系数量化前后的幅频特性 6位二进制系数量化前后的幅频特性位二进制系数量化前后幅频特性相差很大,使用6位二进制系数量化前后幅频特性相差很小,两者曲线几乎重合。 ,使用6位二进制系数量化前后零极点分布相差很小。 综上两点,故采用6位二进制系数量化。 6位二进制系数量化前零极点分布 6位二进制系数量化后零极点分布。 ,某些数据是负数,在此只取其大小进行量化。 6位二进制系数量化结果分母多项式系数b(n)六位二进制分子多项式系数a(n)六位二进制b(0)=0000101a(0)=1000000b(1)=0000101a(1)=1100011b(2)=0000101a(2)=1010001b(3)=0000101a(3)=0011001重庆大学本科学生毕业设计(论文) 5 VHDL程序设计5 VHDL程序设计 VHDL语言简介VHDL(VeryHighSpeed Integrated Circuit Hardware Description Language)意为超高速集成电路硬件描述语言,起初是由美国国防部开发并使用,后来由IEEE进一步发展完善并作为IEEE标准[13]。 从此,VHDL成为标准的硬件的描述语言,推动了电子技术的飞速发展,是数字系统设计的主要硬件描述语言,在EDA领域扮演着重要的角色。 各大EDA公司和EDA领域的技术人员都将其作为重要的发展目标。 VHDL语言能成为标准的硬件描述语言并得到广泛的使用,它自身必然具有其他硬件描述语言所不具备的优点。 VHDL语言具有设计方法灵活多样、强大的硬件描述能力、很强的移植能力、设计描述与器件无关、易于共享和复用等优点 [14]。 VHDL在对硬件电路描述的过程中应该遵循一定的流程。 采用VHDL语言进行硬件电路设计的开发步骤主要包括确定总体设计方案、确定电路具体功能、划分模块并编写程序、仿真、综合、优化、布局布线、生成下载文件、下载运行等 [15]。 在具体步骤施行的时候,可能出现很多问题,比如程序结构不合理、综合错误、仿真结果不理想、硬件运行结果不理想、下载不成功等。 这些都要求设计人员有着很强的问题分析解决总结能力,对VHDL语言有很深的理解,且拥有一定的设计经验。 本设计中,主要利用VHDL语言设计有限状态机。 有限状态机(Finite State Machine,简称FSM)及其设计技术是实用数字系统中的重要组成部分,也是实现高效率高可靠逻辑控制的重要途径。 用VHDL语言可以设计不同表达方式和不同实用功能的状态机。 利用VHDL设计的逻辑系统中,有许多是可以利用有限状态机的设计方案来描述和实现的。 相比于同样基于VHDL的其他设计方案,使用有限状态机的设计方法有很多优点,比如顺序控制灵活且性能优越;结构相对简单,设计方案相对固定;构建性能良好的同步时序逻辑模块,能很好地解决竞争冒险现象;高可靠逻辑控制等。 描述状态机常用的方法有状态转移图和状态转移表两种。 本设计采用状态转移图。 DA电路配置本设计是基于spartan3e开发板。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。