基于fpga的fir数字滤波器设计学士学位论文(3)

2019-04-02 07:53

四川大学锦城学院本科毕业论文 基于FPGA的FIR数字滤波器设计

通常情况下一般数字滤波器的N阶FIR数字滤波器基于输入信号x(n)的表达式为:

n?1i?0y(n)??h(i)x(n?i) (2)

这个公式给我们了一个非常明了的直接型网络结构,该结构表现出N个乘法器,每次采样y(n)的内容是n次乘法和n-1次加法,然后做乘累加之和。如图2-1所示:

图2-1 FIR滤波器直接型网络结构

从DSP的介绍中,第一类线性相位对h(n)的约束条件:

H(e)??h(n)e?j?n?Hg(?)e?j?? (3)

j?n?0N?1?h(n)(cos?n?jsin?n)?Hn?0N?1g(?)(cos???jsin??) (4)

由公式(3),(4)我们可以推出:

?h(n)cos?nsin????h(n)sin?ncos?? (5)

n?0n?0N?1N?1移相并利用三角公式化简得到:

?h(n)sin[?(n??)]?0 (6)

n?0N?1从数字信号处理学科中知道函数h(n)sin?(n??)关于求和区间的中心(N-1)/2奇对称,于是我们要求?和h(n)满足如下条件:

N?1?????(?)????? 其中对应的有? (7) 2??h(n)?h(N?1?n)??0?n?N?15

四川大学锦城学院本科毕业论文 基于FPGA的FIR数字滤波器设计

图2-2 线性相位FIR滤波器结构

若h(n)呈现对称特性,即此具有线性相位的滤波器是FIR数字滤波器。滤波器的基础网络结构可以相互进行转换。

在前面本文已经讨论过, FPGA的实现中将对各种方法进行比较,找出最优设计方式。从而达到减少资源占有和提高系统作业速度的目的,更好的体现实时性的数字滤波器优势。

2.1.3数字滤波器的设计原理

在数字信号处理技术的研究中,一般是使用的三种设计方法:窗函数法,FDATool直接设计法,程序编译法。本文首先使用窗函数和Matlab软件共同进行设计。

随着软件技术的不断发展,Matlab软件能给设计者带来的数字信号处理工作已经非常的完善和多样了,设计者可以利用Matlab软件进行数字滤波器的设计和仿真,而且还可以用这款软件进行设计的优化。数字滤波器的一般设计步骤如下: 1.指标的确定

做任何工程或者设计,设计者都必须要有一个期望的指标用来限制设计范围。在很多的实际应用中,设计者常常都是使用数字滤波器做选频的工作。因此,指标的形式一半在频域中给出相位响应和幅度。相位响应的指标形式,一半是指系统在通频带中药有线性相位。幅度指标:绝对指标,它给出对幅度响应函数的要求,一般用于FIR滤波器的设计。相对指标,以分贝值的形式给出具体限制。 2.逼近目标

设计者做高频的时候大概都有一个模式,就是首先得到技术指标,然后利用我们的技术和工具让我们的产品去逼近这个指标。同理我们首先建立以个目标的数字滤波器模型。一般情况下都是采用理想的数字滤波器模型,然后去逼近我们想要的目标数字滤波器参数。

3.计算机仿真和性能优化分析

6

四川大学锦城学院本科毕业论文 基于FPGA的FIR数字滤波器设计

在工作中我们发现通过(1)、(2)之后本文会得到以差分、系统函数或者冲击响应这三种方式描述的滤波器。这个时候设计者可以利用计算进行仿真,在系统中分析技术指标和滤波结果是否是希望得到的结果。

图2-3各种理想数字滤波器的幅度频率响应

2.1.4 FIR数字滤波器的理论计算方式与参数转换思想

在理论上掌握了FIR数字滤波器的基本原理之后,本文需要对设计思想进行一个多方位的论证和尝试。首先设计者设计滤波器要有一个硬性的指标,这个指标可以是直接给出最基本的数据,也有多重表现形式。于是我例举两种特殊的指标形式然后加以解决设计。然后我们分别用2种方式来设计不同指标的滤波器。接下来我首先用程序的方式来实现滤波器: 1.逼近法转换与思想

使用remez函数设计FIR低通滤波器 设计滤波器,使逼近低通滤波特性|Hd(e)|。 |Hd(ej?j??1)|=??0??0????/4 ???5?/16????要求通带波纹?p?3dB,阻带衰减?s?60dB,并用最小阶数实现。

绘出设计的FIR数字滤波幅频特性曲线,检验设计指标。 这个指标我们可以以如下计算方法来得出详细指标:

7

四川大学锦城学院本科毕业论文 基于FPGA的FIR数字滤波器设计

j?从给出的低通滤波特性|Hd(e)|。我们可以看出设计参数f=[1/4,5/16],m=[1,0]; dev的计算根据公式:Rp=-20log1010于是有Rp=20log[1?dev(1)/1?dev(1)],As??20log(dev(2)) 所以dev(1),dev(2)可以被表示出来。 2.逼近法程序描述与思想

有了这几个参数我们现在就可以根据已经设定好的格式来调用函数remezord和remez函数了,于是可得如下程序。 clear;close all

fc=1/4;fs=5/16; %输入给定指标 Rp=3;As=60;Fs=2;

f=[fc,fs];m=[1,0]; %计算remezord函数所需参数f,m,dev dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)];

[N,fo,mo,W]=remezord(f,m,dev,Fs); %确定remez函数所需参数 hn=remez(N,fo,mo,W); %调用remez函数进行设计 hw=fft(hn,512); %求设计出的滤波器频率特性 w=[0:511] *2/512;

plot(w,20*log10(abs(hw)));grid; %画对数幅频特性图 axis([0,max(w)/2,-90,5]); xlabel('w/pi');ylabel('Magnitude(dB)')

line([0,0.4],[-3,-3]); %画线检验设计结果 line([1/4,1/4],[-90,5]);line([5/16,5/16],[-90,5]); 程序结束。 3.仿真图像与结果

用以上的程序我们可以得到在Matlab中的许多参数和图像,从而进一步分析我们的设计。首先引入程序输出的幅频特性图:(如图2-4)

?1??1/1??2?>0

8

四川大学锦城学院本科毕业论文 基于FPGA的FIR数字滤波器设计

图2-4在Matlab中的程序

图2-5程序输出的幅频特性

9


基于fpga的fir数字滤波器设计学士学位论文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:修改不规范Orcad生成的网表,正确导入allegro(四)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: