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

更新时间:2024-06-15 10:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于FPGA的数字滤波器设计

院 系:信息科学与工程学院 专 业 班:通信工程1102班 姓 名:李羚 学 号:20111181082 指导教师:周忠强 王军舰

2015年5月

基于FPGA的FIR数字滤波器设计

摘 要

随着公元的第二十一个世纪的到来,今天我们进入了一个科技日新月异的时代。在现代电子数字系统中,滤波器都以一个不可缺少的身份出现。其中,FIR数字滤波器又以其良好的线性特性被广泛和有针对性的大量使用。众所周知,灵活性和实时性是工程实践中对数字信号处理的基本要求。在以往使用的各种滤波器技术中,不难发现有许许多多的问题。但是,随着现代计算机技术在滤波问题上的飞跃,派生出一个全新的分支——数字滤波器。利用可编程逻辑器件和EDA技术,使用FPGA来实现FIR滤波器,可以同时兼顾实时性和灵活性。基于FPGA的FIR数字滤波器的研究势在必行。

本论文讨论基于FPGA的FIR数字滤波器设计,针对该毕业设计要做的基本工作有如下几点:

(一)掌握有限冲击响应FIR(Finite Impulse Response, FIR)的基本结构,研究现有的实现方法。对各种方案和步骤进行比较和论证分析,然后针对目前FIR数字滤波器需要的特点,速度快和硬件规模小,作为指导思想进行设计计算。

(二)基于硬件FPGA的特点,利用Matlab软件以及窗函数法设计滤波器。对整个FPGA元件,计划采用模块化、层次化设计思想,从而对各个部分功能进行更为详细的理解和分工设计。最终FIR数字滤波器的设计语言选择VHDL硬件编程语言。

(三)设计中的软件仿真使用Altera公司的综合性PLD开发软件Quartus II,并且利用Matlab工具进行对比仿真,在仿真的过程中,对比证明,本论文设计的滤波器的技术指标已经全部达标。

关键词:数字滤波器 Matlab 可编程逻辑元件 模块化算法

基于FPGA的FIR数字滤波器设计

Based On FPGA Design Of FIR Digital Filters

Major:Electronic And Information Engineering Department

( Information Engineering)

Student: YangChengjie Supervisor:FengLiu

Abstract

As we have entered the twenty first century, our technology is changing continuously with the times. In the modern electronic digital systems, filters are indispensable. Among them, the FIR digital filters are widely used with the excellent linear characteristic. As is well-known to us all, flexibility and real-time quality are the basic requirements in digital signal processing of engineering practice. Since we have used a variety of filter technology in the past, it is not difficult for us to find many problems in it. Moreover, with the development of modern computer technology in filter, a new branch - digital filter has derived. We make use of the programmable logic devices and EDA technology, together with the FPGA to design the FIR filter, which is real-time and flexible. In a nutshell, it is imperative to do the research in the FIR digital filters based on the technology of FPGA. This thesis is focused on the design of the FIR digital filters based on the technology of FPGA. Several points are worth mentioning here:

(1)To understand and master the basic structure of the limited shock Response FIR (Finite Impulse Response, FIR), research existing realization method,to use various solutions to compare and analyze the steps and demonstrations; then, to do the self design and correction concerning the characteristics of the present FIR digital filters, that is, fast in speed and small scale in hardware.

(2) To design FIR filter based on the characteristics of FPGA hardware. In the design process, ready to use of Matlab software and window function method design filter. As far as the whole FPGA components are concerned, we plan to carry on the modularized and hierarchic design, in order to have a more detailed understanding of the function of each

II

基于FPGA的FIR数字滤波器设计

part and make a division of design. Eventually, FIR digital filters will adopt the VHDL hardware programming language.

(3) To adopt the comprehensive PLD development software Quartus II of the Altera company in the design of the software simulation. And we will use of the Matlab tools for the simulation 。In the simulation process, contrast our filter technology index whether you have all the standards, and filtering whether the result is ideal.

Keywords: digital filter,

Matlab,programmable logic devices,

III

Modular Algorithm

基于FPGA的FIR数字滤波器设计

目 录

1绪 论 .................................................................. 1

1.1本课题研究意义 ................................................... 1 1.2国内外研究现状分析 ............................................... 1 1.3研究思路 ......................................................... 1 1.4相关概念说明 ..................................................... 1 2 FIR数字滤波器的设计方法 ............................................... 4

2.1理论部分 ......................................................... 4

2.1.1引言 ........................................................ 4 2.1.2 FIR数字滤波器的基础 ........................................ 4 2.1.3数字滤波器的设计原理 ........................................ 6 2.1.4 FIR数字滤波器的理论计算方式与参数转换思想: ................. 7 2.1.5 Matlab直接FDAtool设计方式解析 ............................ 13 2.1.6 FDAtool设计模板及设计结果图 ............................... 16 2.2程序分析部分 .................................................... 16

2.2.1 FPGA 可编程逻辑元件介绍 .................................. 17 2.2.2 QuartusⅡ及Verilog HDL介绍 ............................... 18 2.2.3实际滤波器程序设计(11阶FIR数字滤波器) .................. 19 2.2.4.VerilogHDL的实现 .......................................... 20

3 滤波器仿真滤波 ....................................................... 28

3.1设置混合信号 .................................................... 28 3.2设置仿真参数 .................................................... 31 3.3 仿真总结 ........................................................ 33 4 总结与展望 ........................................................... 34

4.1 设计成果总结 .................................................... 34 4.2 设计心得 ........................................................ 34 参考文献 ............................................................... 35 致谢 ................................................................... 36

IV

基于FPGA的FIR数字滤波器设计

V

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

1绪 论

1.1本课题研究意义

在现代通信信号处理领域中,随着各种精密计算和快速计算的发展对信号处理的实时性、快速性的要求越来越高。以往的模拟滤波器无法克服电压漂移、温度漂移和噪声等问题,从而带来了许多误差和不稳定因素。而数字滤波器具有稳定性高、精度高、设计灵活、实现方便等突出优点。

FPGA元器件在高速并行处理和数据传输中有独特优势,FPGA正在前端信号处理中越来越多地代替ASIC和DSP。我们需要的就是这种设计周期短,功能密度高,重组时间短的元器件。

本文在FPGA元器件的基础上,实现现代FIR数字滤波器功能。并且研究多种快速的FIR数字滤波器的理论设计思想和程序设计方法。

1.2国内外研究现状分析

1985年XilinX公司生产出了第一块FPGA元器件,由于它有着集成度高、方便易用、开发和上市周期短的绝对优势,使得FPGA器件在数字设计和电子生产中得到迅速普及和应用,发展潜力十分巨大。现在FPGA已经发展到可以利用硬件乘加器、片内储存器、逻辑单元、流水处理技术等特有的硬件结构,高速完成FFT 、FIR 、复数乘加、卷积、三角函数以及矩阵运算等数字信号处理。这样可以完成信号处理的主要技术,如中频采样、参数估计、自适应滤波、脉冲压缩、自适应波束形成和旁瓣对消等。

1.3研究思路

通过对目前数字滤波器的几种实现方法的简单分析,本文认为基于FPGA的数字滤波器具有许多优点,本文考虑到信息技术的发展对于数字滤波器的要求越来越高,而目前FIR数字滤波器的性能还不完善,于是选择了基于FPGA的数字滤波器作为主要研究内容,通常滤波器在进行数据处理时用到了卷积运算,在设计中的解决这些乘法运算的思路是将它们转换成加减法,这是目前解决乘法运算的主流思想。设计初期在Matlab下对滤波器原理进行证明包括(零极点图、时域和频域分析图等),分析FIR数字滤波器的多种理论设计思想和窗函数选择方法,在设计后期对FIR数字滤波器的小数乘法问题进行单独论证。然后对分析出来的问题进行论证和解决,最后在QUARTUSⅡ中进行仿真验证。

1.4相关概念说明

数字滤波器(Digital filter)是由数字乘法器、加法器和延时单元组成的一种装置。其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。可认为是一个离散时间系统按预定的算法,将输入离散时间信号转换为所要求的输出离

1

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

散时间信号的特定功能装置FIR(Finite Impulse Response )由线性系统理论可知,在某种适度条件下,输入到线性系统的一个冲击完全可以表征系统。当我们处理有限的离散数据时,线形系统的响应(包括对冲击的响应)也是有限的。若线性系统仅是一个空间滤波器,则通过简单地观察它对冲击的响应,我们就可以完全确定该滤波器。通过这种方式确定的滤波器称为有限冲击响应(FIR)滤波器。

2

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

选题明确目标奠基资料准备指导设计定位指导理论部分基础程序分析部分滤波器基础研究选择软硬件介绍分析滤波器设计方法研究规划程序设计仿真错误修正及优化总结设计成功图1-1总体设计流程图

3

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

2 FIR数字滤波器的设计方法

2.1理论部分

2.1.1引言

数字滤波器的功能一般是用来变换时域或者频域中某些要求信号的属性,滤除信号中某一部分频率分量。经过数字滤波器的信号是让其频谱与数字滤波器的频率响应相乘从而得出新的结果。经过一个线性卷积过程,从时域上输入信号与滤波器的单位冲击响应作一个卷积和。下面是卷积定义式:

y[n]?x[n]?f[n]??x[n]f[n?k]??x[n?k]f[k] (1)

kkLTI数字滤波器在一般情况下分为有限脉冲响应(Finite impulse response)和无限脉冲响应(Infinite impulse response),FIR数字滤波器的设计方法和IIR滤波器的设计方法有很大的差别。因为其设计方向是选择有限长度的h(n),使频率响应函数H(ej?)满足指标。数字滤波器正在用直接的电子计算机规范和算法进行分析的方式来逐渐代替传统的模拟滤波器的RLC元器件和放大电路。 2.1.2 FIR数字滤波器的基础

首先介绍FIR数字滤波器基本原理,在如下表格中对FIR和IIR数字滤波器进行了全面的比较:

表2-1两种滤波器特点比较分析

FIR数字滤波器 在一般的情况下,FIR数字滤波器没有设计公式。它的设计需要借助计算机程序完成 IIR数字滤波器 可以利用AF的设计成果,可简单、有效地完成设计 设计 方法 阶数 高 低 稳定性 在稳定性方面(稳定),极存在一定的稳定性问题,需要 结构 运算误差

4

点全部在原点 非递归系统 注意 递归系统 一般情况下不存在反馈,存在反馈,由于运算中的特殊运算的误差比较小 运算方法会产生极限环

四川大学锦城学院本科毕业论文 基于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

本文来源:https://www.bwwdw.com/article/xac3.html

Top