




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南 京 理 工 大 学课程设计说明书(论文)作 者:莫小锦学 号:109010176学院(系):机械工程学院专 业:精密仪器及机械题 目:FIR滤波器(16阶)的VHDL语言设计 2010 年 5 月课程设计说明书(论文)中文摘要根据设计要求,设计了一个输入序列为10位(最高位是符号位),输出10位(最高位是符号位)的16阶FIR滤波器,此滤波器的采样频率为80kHz,截止频率为10 kHz,采用Kaiser窗,Beta=0.5, 采用CSD算法对乘法运算进行优化,并用Quartus ii软件进行仿真验算。关键词 FIR滤波器 CSD算法 数字信号处理课程设计说明书(论文)外文摘要Title FIR filter (16 bands) of the VHDL Language Design AbstractAccording to design requirements, design an input sequence of 10 bits (the highest bit is the sign bit), output sequence of 10 bits (MSB is sign bit) of the 16-order linear phase FIR filter, the sampling frequency of the filter is 80kHz, the cutoff frequency is 10kHz, using Kaiser window, Beta = 0.5, multiplication by CSD algorithm optimization, and simulation using Quartus ii software checking.Keywords: FIR CSD Digital Signal Processing1 引言数字滤波器是语音与图像处理、 模式识别、 雷达信号处理、 频谱分析等应用中的一种基本的处理部件,它能满足滤波器对幅度和相位特性的严格要求, 避免模拟滤波器所无法克服的电压漂移、 温度漂移和噪声等问题。 有限冲激响应(FIR)滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。目前(FIR)滤波器的实现方法有三种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要。 使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度必然不快。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。但长期以来FPGA一直被用于系统逻辑或时序控制上, 很少有信号处理方面的应用,其原因主要是因为在FPGA中缺乏实现乘法运算的有效结构,现在这个问题得到了解决,使FPGA 在数字信号处理方面有了长足的发展。因而本文运用所学的VHDL语言设计一个实际的FIR滤波器。2. FIR数字滤波器理论概述有限冲激响应(FIR)数字滤波器和无限冲激响应(IIR)数字滤波器广泛应用于数字信号处理系统中。IIR数字滤波器方便简单,但它相位的非线性,要求采用全通网络进行相位校正,且稳定性难以保障。FIR滤波器具有很好的线性相位特性,使得它越来越受到广泛的重视。有限冲击响应(FIR)滤波器的特点:1 既具有严格的线性相位,又具有任意的幅度;2 FIR滤波器的单位抽样响应是有限长的,因而滤波器性能稳定;3只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,因而能用因果系统来实现;4 FIR滤波器由于单位冲击响应是有限长的,因而可用快速傅里叶变换(FFT)算法来实现过滤信号,可大大提高运算效率。5 FIR也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。6 FIR滤波器比较大的缺点就是阶次相对于IIR滤波器来说要大很多。FIR数字滤波器是一个线性时不变系统(LTI),N阶因果有限冲激响应滤波器可以用传输函数H(z)来描述,(2.1)在时域中,上述有限冲激响应滤波器的输入输出关系如下:(2.2)其中,xn和yn分别是输入和输出序列。N阶有限冲激响应滤波器要用N1个系数描述,通常要用N+1个乘法器和N个两输入加法器来实现。乘法器的系数正好是传递函数的系数,因此这种结构称为直接型结构,可通过式(1.2)来实现,如图1。 图2.1 直接型结构当冲击响应满足下列条件时, FIR滤波器具有对称结构,为线性相位滤波器: (2.3)这种对称性,可使得乘法器数量减半:对n价滤波器,当n为偶数时,乘法器的个数为n/2个;当n为奇数时,乘法器的个数为(n+1)/2个。在电路实现中,乘法器占用的逻辑单元数较多。乘法器的增加,意味着电路成本增加,另外对电路的工作速度也有影响。N阶线性相位的因果FIR系统的单位冲激响应滤波器可用对称冲激响应 (2.4)或者反对称冲激响应(2.5)来描述。具有对称冲激响应的FIR传输函数的冲激响应可写成如下形式:当N为偶数时(2.6)当N为奇数时(2.7)则FIR线性相位系统的结构可转化成如图2(a)和图2(b)所示。 图2.2(a) N为奇数 图2.2(b) N为偶数3 设计方案3.1 FIR滤波器的结构FIR滤波器的结构主要是非递归结构,没有输出到输入的反馈。并且FIR滤波器很容易获得严格的线性相位特性,避免被处理信号产生相位失真。而线性相位体现在时域中仅仅是h(n)在时间上的延迟,这个特点在图像信号处理、数据传输等波形传递系统中是非常重要的。此外,它不会发生阻塞现象,能避免强信号淹没弱信号,因此特别适合信号强弱相差悬殊的情况。3.2 FIR数字滤波器的设计方案:通常采用窗函数设计FIR滤波器的方法,利用matlab 滤波器设计工具求出FIR滤波器的系数,再结合图2.2(b)用VHDL语言及框图编写滤波器。对于线性相位因果FIR滤波器,它的系列具有中心对称特性,即h(i)=h(N-1-i)。令s(i)=x(i) x(N-1-i),对于偶对称,代入可得: (3.1)根据设计要求,设计一个输入序列为10位(最高位是符号位),输出10位(最高位是符号位)的16阶线性相位FIR滤波器,此滤波器的采样频率为80kHz,截止频率为10 kHz,采用Kaiser窗,Beta=0.5。MATLAB设计计算滤波器系数过程如下:FIR滤波器参数设置,因为h(0)=0,所以Specify order处填15,图 3.1 MATLAB设计FIR滤波器参数设置图FIR滤波器的幅频响应图 3.2 MATLAB设计FIR滤波器的幅频响应图FIR滤波器的相频响应图 3.3 MATLAB设计FIR滤波器的相频响应图FIR滤波器的冲激响应图 3.4 MATLAB设计FIR滤波器的冲击响应图FIR滤波器系数由MATLAB设计得到的系数如下:-0.015272067014474 -0.043206691615732 -0.051740294894893 -0.026481809566975 0.034345449976716 0.116840975117296 0.19557819135231 0.243558201127512 0.243558201127512 0.19557819135231 0.116840975117296 0.034345449976716 -0.026481809566975 -0.051740294894893 -0.043206691615732 -0.015272067014474图 3.5 MATLAB设计FIR滤波器的系数对FIR滤波器的系数进行调整,使系数整数化对结果进行四舍五入可得FIR滤波器的参数为-31,-88,-106,-54,70,239,401,499,499,401,239,70,-54,-106,-88,-31由系数可以看出是线性相位对称的FIR滤波器。根据以上所说的该思路,可以将FIR滤波器的原理图设计如下:图 3.6 FIR滤波器的原理图4 模块电路设计设计的FIR滤波器可以分为以下三种模块:寄存器、加法器、乘法器。41 寄存器4.1.1 寄存器原理寄存器用于寄存一组二值代码,对寄存器的触发器只要求它们具有置1、置0的功能即可,因而本设计中用D触发器原理组成寄存器,实现寄存功能。4.1.2 寄存器要求实现的功能在CLK正跳沿前接受输入信号,正跳沿时触发翻转,正跳沿后输入即被封锁。4.1.3寄存器的代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity dff_10 is port(clk,res:in std_logic; x:in signed(9 downto 0); y:out signed(9 downto 0);end dff_10;architecture dff_10 of dff_10 isbegin process(clk) begin if res=1then y=0000000000; elsif(clkevent and clk=1)then y=x; end if; end process;end dff_10;4.1.4寄存器的波形仿真图 4.1 寄存器波形仿真图完全符合设计要求。42 加法器本设计共使用了五种不同的加法器,为了提高设计精度,在中间过程中都没有将多余的位数截去,直到最后一个加法器才截去多余的位数。这五种不同的加法器分别是:10位加10位加法器,17位加17位加法器,18位加18位加法器,19位加19位加法器,20位加20位加法器。各个加法器所用原理均相同,下面以10位加10位加法器为例。4.2.1 加法器的原理在将两个多位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位3个数相加。这种运算称为全加,所用的电路称为全加器。多位加法器的构成有两种方式:并行进位和串行进位。并行进位加法器设有进位产生逻辑,预算速度较快;串行进位方式是将全加器级联构成多位加法器。并行进位加法器通常比串行级联加法器占用更多的资源。随着为数的增加,相同位数的并行加法器与串行加法器的资源占用差距也越来越大,因此,在工程中使用加法器时,要在速度和容量之间寻找平衡点。本设计中由于是带符号数相加,直接将数据定义为带符号数,调用库std_logic_arith就可以直接对带符号数进行算术运算。4.2.2 加法器要求实现的功能实现两个二进制数字的相加运算。当到达时钟上升沿时,将两数输入,运算,输出结果。4.2.3 10位加10位加法器的代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity add_10 is port(clk:in std_logic; a,b:in signed(9 downto 0); c:out signed(10 downto 0);end add_10;architecture add_10 of add_10 isbegin process(clk,a,b) variable t1,t2:signed(10 downto 0); begin t1:=a(9)&a; t2:=b(9)&b; if(clkevent and clk=1)then c=t1+t2; end if; end process;end add_10;4.2.4 加法器的波形仿真图 4.2 10位加10位加法器仿真图完全符合设计要求。4.3 乘法器本设计共使用了八种不同的加法器,为了提高设计精度,在中间过程中都没有将多余的位数截去。这八种不同的加法器分别是:10位乘31乘法器,10位乘88乘法器,10位乘106乘法器,10位乘54乘法器,10位乘70乘法器,10位乘239乘法器,10位乘401乘法器,10位乘499乘法器,各个乘法器所用原理均相同,下面以10位加499乘法器为例。 4.3.1 乘法器的原理在实现滤波器时,通常采用序列移位相加的方法来实现乘法,而加法的计算次数等于系数中的非零位数减l。为了减少加法计算次数,更有效地降低芯片面积和功耗,最好的方法是采用CSD码来表示乘数,即滤波器的量化系数。对于任意一个小于1的小数x ,其CSD码可以表示为 (4.1)式中,M 是量化系数的长度。在CSD编码时,必须符合的两条规则为 :a、非零位的相邻位必须为零。b、每个系数编码后的非零位必须小于规定的个数。根据以上的CSD算法,滤波器系数拆为:4.3.2乘法器要求实现的功能实现输入带符号数据与固定数据两个二进制数的乘法运算。当到达时钟上升沿时,将两数输入,运算,输出结果。4.3.3 11位乘499乘法器代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity mul_499 is port(clk:in std_logic; x:in signed(10 downto 0); y:out signed(19 downto 0);end mul_499;architecture mul_499 of mul_499 isbegin process(clk,x) variable a,b,c,d,e:signed(20 downto 0); variable f:signed(19 downto 0); begin a:=x(10)&x&000000000; b:=x(10)&x(10)&x(10)&x(10)&x(10)&x(10)&x&0000; c:=x(10)&x(10)&x(10)&x(10)&x(10)&x(10)&x(10)&x(10)&x&00;d:=x(10)&x(10)&x(10)&x(10)&x(10)&x(10)&x(10)&x(10)&x(10)&x(10)&x; e:=a-b+c-d; f:=e(20)&e(18 downto 0); if(clkevent and clk=1)then y=f; end if; end process;end mul_499;4.3.4 乘法器的波形仿真图 4.3 10位乘499乘法器仿真图完全符合设计要求。5 FIR滤波器整体电路FIR滤波器的整体电路基本与其原理图类似。整体电路如下图所示:图 5.1 FIR滤波器的顶层框图6 FIR滤波器整体电路仿真结果6.1正弦波的设计由于正弦波的非线性,所以对算法有较严的要求。它在一个周期里变化有规律可循,由图和公式sina=sin(a)可以看出,只需要算出1/4个周期的幅值,则可得出其他3/4个周期的幅值,而在我们所设计的过程中,也正是采用了这个规律来简化采样点数。由于设计为10位输入,所以必须要考虑到采样个数和采样值的大小。如果仅以原始波形为基础进行采样,必然会出现小数和负数,这将使得二进制的转化和编程变的很困难。综合以上因素,首先要解决的问题就是消除小数和负数,使采样数值变成整数,于是我们采用了以下的算法: 首先,将原始波形幅度扩大为原来的512倍,然后将进行采样sina,在简便又不影响波形输出且是误差允许范围内的情况下,小数点后的数值可以四舍五入,只取整数。数值是利用MATLAB计算得出。具体程序见附录。6.2利用正弦波仿真图 6.1 1kHz正弦信号仿真图输入为1kHz的正弦波信号,可见可以完全通过滤波器,滤波效果不错。图 6.2 10kHz正弦信号仿真图输入为10kHz的正弦波信号,由于设计滤波器的截止频率为10kHz,但并不是10kHz的信号就完全不能通过滤波器,由图观察虽然还有正弦波的影子,正弦波幅度大幅度降低。图 6.3 20kHz正弦信号仿真图输入为20kHz的正弦波信号,由图观察几乎没有信号通过滤波器,呈现一直线。图 6.4 1kHz正弦波信号叠加20kHz正弦信号仿真图图6.5 MATLAB 拟合的带有高频分量的正弦波高频输入为1kHz的正弦波信号叠加一个20kHz的正弦波信号,由图观察1kHz的信号可以通过滤波器,20kHz的信号几乎不能通过滤波器,由此可见所设计的滤波器完全符合设计要求。结 论经过构思,编程设计,模拟仿真。仿真显示波形与设计要求基本相吻合,仅在波形的稳定及光滑程度与理论波形有着一定差距,但这差距并不不大,不影响设计结果。造成这差距的原因主要有算法的选择,采样的点数及精确度,程序书写的精确与简练程度,以及输入时钟脉冲频率的选择. 经过仿真可见所设计的滤波器符合设计要求。致 谢感谢蒋力平老师的悉心教导,给我们一个将理论知识转化为实际的一个学习机会,加深对滤波器的理解。锻炼了自己的实际能力。参 考 文 献1 Volnei A.Pedroni. VHDL数字电路设计教程 M.电子工业出版社.20092 潘松,黄继业EDA技术实用教程M北京:科学出版社,20023 曾繁泰,陈美金VHDL程序设计M北京:清华大学出版社,20004 郑风涛,陈金佳基于CPLD的数控正弦波的信号源的设计J黎明职业大学学报,2003,总38期(1):253O5 杜建国,崔广平,刘卫平利用相位累加器产生标准相位(移)J计量技术,1999,总310期(9):31336 基于可编程逻辑器件实现任意波形发生器J .7李虎虎,罗丰.基于CSD算法的高阶FIR滤波器优化设计J.雷达科学与技术。2006.12第六期。附录:1. 普通正弦波图 1 普通正弦波波形数据1ibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity sin isport(clk:in std_logic;outp:out integer range 511 downto -512);-输出范围为0到1023end sin;architecture dacc of sin issignal q: integer range 100 downto 0;beginprocess(clk)variable tp: integer range 100 downto 0;beginif (clkevent and clk=1) thentp:=tp+1;end if;if(q=100)thentp:=0;end if;qoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpoutpou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国际武术大赛赞助合同
- 智能家居场景下的安全防护方案设计研究
- 2024年湖北省黄冈市《考评员》专业技能鉴定考试题库与答案
- 风电场地质勘察与评估方案
- 污水处理厂可持续发展方案
- 2025年二级建造师之二建市政工程实务试题及答案
- 导游专业毕业论文 云南
- 2024年度河北省二级建造师之二建公路工程实务模考预测题库及答案
- 临床执业医师综合笔试考前冲刺试题及答案
- 支付宝毕业论文
- 胖东来运营经理培训课件
- 村两委内部管理制度
- 供电公司信访管理制度
- 木工入场安全教育试卷(含答案)
- 工业管道的定期检查与维护措施
- 林业发展“十五五”发展规划
- 工厂厂规厂纪管理制度
- 2025全球翻译行业发展报告
- T/CCS 025-2023煤矿防爆锂电池车辆动力电源充电安全技术要求
- 贴膜安装服务合同协议书
- 新疆遴选公务员笔试题及答案
评论
0/150
提交评论