基于VHDL的有限冲激响应滤波器的设计_第1页
基于VHDL的有限冲激响应滤波器的设计_第2页
基于VHDL的有限冲激响应滤波器的设计_第3页
基于VHDL的有限冲激响应滤波器的设计_第4页
基于VHDL的有限冲激响应滤波器的设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

基于VHDL的有限冲激响应滤波器的设计图3.3n阶FIR滤波器硬件电路3.6数据处理与软件设计3.6.1MATLAB/Simulink根据设计要求,通过MATLAB/Simulink参数设置与处理,得到FIR低通数字滤波器57个系数:-0.0004970.000590-0.000921 0.001356-0.0019120.002603-0.0034420.0044400.004440-0.0034420.002603-0.0019120.001356-0.0009210.000590-0.0004973.6.2VHDL系数处理程序相关参数定义:d_in:输入数据信号;d_out:输出数据信号;rst:复位信号;fsclk:采样时钟信号。在VHDL代码中,滤波器的系数被设置,类似存储于程序存储器中执行。subtypeROMbyteissigned(20downto0); typeROMARRAYisarray(1to57)ofROMbyte;signalROMDATA:ROMARRAY;……………coefficient:process(rst)begin--processcoefficientif(rst='1')thenforiin1to57loopROMDATA(i)<=“000000000000000000000”;endloop;elseROMDATA(1)<=“111111111111000001111”;----0.000497ROMDATA(2)<=“000000000001001001110”;----0.000590…………endifendprocesscoefficient;3.6.3数据输入和频率控制根据设计滤波器的参数可知,采样频率要求是44.1kHz,所以采样周期为Ts=22us(T=1/f)(1)时钟频率控制程序forjin0to49loopFSCLK<=‘1’;d_in<=sinv(j);waitfor11us;----Ts=22us,fs=44.1kHzFSCLK<=‘0’;waitfor11us;----Ts=22us,fs=44.1kHzendloop;(2)将输入的数据信号写入数据存储器RAM(由D触发器组成)中wr_data:process(rst,fsclk)beginif(rst=‘1’)thenforkin1to57loopRAMDATA(k)<="000000000000000000000";endloop;elsiffsclk’eventandfsclk=‘1’thenforkin1to56loopRAMDATA(k+1)<=RAMDATA(k);RAMDATA(1)<=D_in;endloop;endif;endprocesswr_data;(3)对正弦信号采样程序正弦信号T=2*pi=360°,在整个周期上采样100次,故每3.6°采样一次。typetableisarray(0to49)ofsigned(20downto0)signalsinv:table:=(“000000000000000000000”,--sin0;lineNo.1“000000000010000000100”,--sin(3.6);lineNo.2………“000000011111111111111”,--sin(90);lineNo.26………“000000000100000000101”,--sin(180-7.2);lineNo.49“000000000010000000100”);--sin(180-3.6);lineNo.50)(4)在整个程序执行过程中,输入正弦波模拟信号分为两个过程进行采样处理,在一个周期上共采样100个点,正半周采样50个点,负半周采样50个点。采样时间的计算:由fs=44.1Hz,则Ts=1/fs=22us,所以总时间T=22*100=2200us采样子程序:forkin0to99loopforjin0to49loopFSCLK<=‘1’;d_in<=sinv(j);waitfor11us;FSCLK<=‘0’waitfor11us;endloop;正半周采样forjin0to49loopFSCLK<=‘1’;d_in<=-sinv(j);waitfor11us;FSCLK<=‘0’;waitfor11us;endloop;负半周采样(5)滤波器的功能设计的滤波器具有以下两项功能:一是通过低频信号;二是衰减截止高频信号达60dB,实现数据滤波和综合,下面是实现其功能代码:A:filtering_data:process(fsclk)begin--processrd_dataif(rst=‘1’)thenforkin1to57loopmulDATA(k)<=“000000000000000000000000000000000000000000”;endloop;elsiffsclkeventandfsclk=‘1’thenforkin1to57loopmulDATA(k)<=RAMDATA(k)*ROMDATA(k);endloop;endif;endprocessfiltering_data;B:accumulation:process(fsclk)variableaccu:signed(41downto0);beginif(rst=‘1’)thenD_OUT<=“000000000000000000000”;accu:=“000000000000000000000000000000000000000000”;elsiffsclk'eventandfsclk=‘1’thenforkin1to57loopaccu:=mulDATA(k)+accu;endloop;endif;endprocessaccumulation;4软件仿真为了测量所设计的数字滤波器的低通滤波特性,分别进行低频仿真和高频仿真,把低频信号和高频信号输入滤波器来观察滤波效果。运行中分别输入信号为455Hz和22KHz的正弦信号,从图4.1我们可以看到,频率为455Hz的正弦信号,输入波形与输出波形相比,频率几乎无变化,虽然还有一定的波形抖动,但是对于数字系统来说,这样微小的电压幅值还不至于引起0,1跳变,因此对于数字信号来说,可以认为该低通滤波器的理论设计是达到了要求的。高频信号滤波情况中,输入数据频率为截止频率22kHz。图4.2是信号通过情况,可以清楚的看到与输入振幅16253相比,输出为18,衰减20lg(16253/18)=59.956dB,近似60dB。实现了低通滤波功能,对于高频率信号则不能通过,满足设计要求,达到理论滤波效果。4.1低频仿真1.条件:输入数据频率为455Hz(fs=1/T=1/2200us=455Hz)。2.结论:低频仿真如图4.1所示,输入波形振幅A=5062,输出为A=7813,衰减20lg(5062/7813)=0,输入波形与输出波形相比,频率几乎无变化,达到低通功能,满足设计要求。图4.1f=455Hz时4.2高频仿真1.条件:输入数据频率为截止频率22kHz。2.结论:高频仿真如图4.2所示,与输入振幅16253相比,输出为18,衰减20lg(16253/18)=59.956dB,近似60dB。实现了低通滤波功能,对于高频率信号则不能通过,满足设计要求。图4.2f=22kHz由前面的实验我们可以认为:该设计所建的模型是正确,实验方案是合理的、可行的,制作的数字滤波电路基本达到设计指标。从这里我们可以看出图4.1中虽然在曲线的形状上比较接近,但是实际的精度还是存在误差。误差造成的原因是多方面的,比如有限字长效应的影响等。5结论与展望数字信号处理的最主要应用领域就是数字滤波,数字滤波器与快速傅里叶变换(FFT)被公认为数字信号处理的两大基石。在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用,随着科技的日新月异,基于FPGA来设计电子电路己成为一种趋势。这是由于FPGA器件集成度高、体积小,使用它可以大大缩短开发的周期,减少资金的投入,将原来的电路板级产品升级为芯片级产品。VHDL语言是一种功能强大的硬件描述语言,本设计用VHDL语言编写了一个实现FIR滤波器的程序,结合MATLAB软件,在Max+plusII软件里进行了仿真运行,实现FIR数字滤波器进行了研究,并对其性能进行优化。在规定的带通频率0--20kHz范围,截止频率fc=22kHz,截止频带衰减约为60dB,对压电直线微电机控制系统中FIR低通数字滤波器行为进行仿真描述是理想的,实现了用软件描述硬件的动作及其功能,满足设计要求,使设计达到最优化。设计和仿真压电直线微电机控制系统中的FIR低通数字滤波器,实现用软件描述硬件的动作及其功能,给设计带来极大方便,使设计达到最优化。与其它方法实现的FIR滤波器相比,可编程逻辑器件实现的FIR滤波器,具有设备利用率高、集成度高、简化电路设计过程等优点,避免了ASIC的设计制作周期长,只能用于特定场合等缺点。本设计主要从方法论的角度出发,设计的滤波器阶数、采样精度及频率较低,忽略了高速高阶数字滤波器可能存在的一些问题,如:干扰、延时、资源占用等。总而言之,FPGA是今后数字系统发展的一个重要方向,具有广阔的应用前景。基于VHDL的有限冲激响应滤波器的设计PAGE第28页共32页致谢本文课题研究及撰写工作是在王新老师的悉心指导下完成的。王老师渊博的知识、严谨的治学态度、一丝不苟的工作作风、高度的责任感对我影响至深,使我受益终生。在课题进行中,在设计的过程和论文撰写方面等都给予了我很大的指导和帮助,在此对他表示深深的谢意。感谢老师对我的关心和教诲,在今后的人生道路上我将谨记恩师的教诲。向参加论文评审、答辩的专家和老师表示衷心的感谢!参考文献樊昌信,张甫翊,徐炳祥等.通信原理[M].北京:国防工业出版社,2001.雷伏容.VHDL电路设计[M].北京:清华大学出版社,2006.Clive“Max”Maxfield著,杜生海,邢闻译.FPGA设计指南[M].北京:人民邮电出版社,2007.UweMeyer-Baese著,刘凌译.数字信号处理的FPGA实现[M].北京:清华大学出版社,2007.朱幼莲.线性相位FIR数字滤波器的CPLD实现[J].工矿自动化,2005(1)丁玉美,高西全.数字信号处理[M].西安:西安电子科技大学出版社,2004.潘松.VHDL实用教程[M].成都:电子科技大学出版社,2001.卢建国,张泽.\o"FIR线性相位数字滤波器的CPLD实现"FIR线性相位数字滤波器的CPLD实现[J].内蒙古大学学报(自然科学版),2002,(03)单琳娜,李帅,石瑞英.\o"模块法设计FIR数字滤波器的一种新方法"模块法设计FIR数字滤波器的一种新方法[J].高师理科学刊,2005,(02)凌朝东,刘蓉,林旭.\o"用CPLD实现的FIR滤波器"用CPLD实现的FIR滤波器[J].华侨大学学报(自然科学版),2001,(01)岳学东,买鹏.\o"基于MATLAB的FIR数字滤波器最优设计"基于MATLAB的FIR数字滤波器最优设计[J].中国科技信息,2005,(08)戴月明,张秀娟.\o"FIR数字滤波器优化设计方法"FIR数字滤波器优化设计方法[J].山东科技大学学报(自然科学版),2002,(01)李永刚,李锦萍.\o"有限长单位冲激响应FIR数字滤波器线性相位分析和结构图"有限长单位冲激响应FIR数字滤波器线性相位分析和结构图[J].首都师范大学学报(自然科学版),2002,(02)栗瑞芳,付卫国.\o"基于DSP中数字滤波器的设计与实现"基于DSP中数字滤波器的设计与实现[J].科技信息,2006,(12)[15]林怀蔚,费旻,邢玮.基于VHDL和MATLAB应用结合的FIR数字滤波器设计[C].合肥:中国科技大学出版社,2007[16]Dillinger,T.E.etal.ALogicSynthesisSystemforVHDLDesignDescription[J].IEEEICCAD-89,Santaclara:Calif,1989附录A实现FIR滤波器的源程序subtypeROMbyteissigned(20downto0); typeROMARRAYisarray(1to57)ofROMbyte;signalROMDATA:ROMARRAY;coefficient:process(rst)begin--processcoefficientif(rst='1')thenforiin1to57loopROMDATA(i)<=“000000000000000000000”;endloop;elseROMDATA(1)<=“111111111111000001111”;----0.000497ROMDATA(2)<=“000000000001001001110”;----0.000590…………endifendprocesscoefficient;forjin0to49loopFSCLK<=‘1’;d_in<=sinv(j);waitfor11us;----Ts=22us,fs=44.1kHzFSCLK<=‘0’;waitfor11us;----Ts=22us,fs=44.1kHzendloop;wr_data:process(rst,fsclk)beginif(rst=‘1’)thenforkin1to57loopRAMDATA(k)<="000000000000000000000";endloop;elsiffsclk’eventandfsclk=‘1’thenforkin1to56loopRAMDATA(k+1)<=RAMDATA(k);RAMDATA(1)<=D_in;endloop;endif;endprocesswr_data;typetableisarray(0to49)ofsigned(20downto0)signalsinv:table:=(“000000000000000000000”,--sin0;lineNo.1“000000000010000000100”,--sin(3.6);lineNo.2………“000000011111111111111”,--sin(90);lineNo.26………“000000000100000000101”,--sin(180-7.2);lineNo.49“000000000010000000100”);--sin(180-3.6);lineNo.50)forkin0to99loopforjin0to49loopFSCLK<=‘1’;d_in<=sinv(j);waitfor11us;FSCLK<=‘0’waitfor11us;endloop;正半周采样forjin0to49l

温馨提示

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

评论

0/150

提交评论