收藏 分销(赏)

线性滤波器.doc

上传人:pc****0 文档编号:7578417 上传时间:2025-01-09 格式:DOC 页数:30 大小:703.64KB 下载积分:10 金币
下载 相关 举报
线性滤波器.doc_第1页
第1页 / 共30页
线性滤波器.doc_第2页
第2页 / 共30页


点击查看更多>>
资源描述
线性滤波的特性及滤波器设计与实现 线性滤波的特性及滤波器设计与实现 摘 要 数字滤波器是语音与图像处理、模式识别、雷达信号处理、频谱分析等应用中的一种基本的处理部件,它能满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。有限冲激响应(线性)滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。现场可编程门阵列FPGA器件的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果。FPGA器件集成度高、体积小,具有通过用户编程实现专门应用功能。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。随着科技的发展,电子电路的设计正逐渐摆脱传统的设计模式,而采用FPGA(现场可编程门阵列)来设计电子电路正成为设计的趋势。这是因为采用 FPGA 设计电子电路不仅开发时间短,资金投入相对少,且可将电路板级产品集成为芯片级产品。在数字信号处理中,滤波占有重要的地位。数字滤波在语音和图像处理、HDTV(高清晰电视)、模式识别、频谱分析等应用中经常用到。与模拟滤波相比,数字滤波具有很突出的优点。例如它可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波所无法克服的电压漂移、温度漂移和噪声等问题。有限长冲激响应(线性)滤波器,由于线性系统只有零点、系统稳定,便于实现FFT算法、运算速度快、线性相位的特性和设计更为灵活等突出优点而在工程实际中获得广泛应用。本文将研究基于设计线性数字滤波器。对几种改进算法分别进行必要的运算量与性能分析,并进行对比。最后,对文中所述插值算法做了总结。为了对算法的实现以及性能做一个分析,文中引入了MATLAB软件。 关键词:FPGA ; 线性滤波器 ; 窗函数 ; MATLAB 概述 课题背景 数字信号处理已成为一门极其重要的学科和技术领域。作为数字信号处理的一项重要内容,数字滤波器是语音与图像处理、模式识别、雷达信号处理、频谱分析等应用中的一种基本的处理部件,它能满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。有限冲激响应(线性)滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。目前线性滤波器的实现方法有三种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。本文选用可编程逻辑器件实现线性滤波器。 现场可编程门阵列FPGA器件的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果。FPGA器件集成度高、体积小,具有通过用户编程实现专门应用功能。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。目前使用最多的可编程开发环境Quartus II 软件支持几乎所有的EDA(电子设计自动化)工具,并且可以通过命令行或Tcl脚本文件与第三方EDA工具之间进行无缝连接。但在很多工程设计应用中,由FPGA器件完成的主程序中只完成大量的数学运算,程序调试时以二进制形式输出的信号可视性差,给设计人员进行仿真、调试带来了很多不便。对于很多工程设计人员来说MATLAB是一种熟悉的具有强大的运算功能和波形仿真、分析功能的软件,如果能将FPGA与MATLAB接口,就可以快速、准确、直观地对FPGA程序进行校验和仿真,尤其在数字信号处理等工程应用领域具有实际意义。本文正是借助于MATLAB/Simulink工具设计分析线性数字滤波器,并实现对线性数字滤波器系统的模拟仿真。 近年来,FPGA市场开发十分迅速,各大FPGA厂商不断采用新技术来提高FPGA器件的容量,增强软件的性能。如今,FPGA器件广泛应用于通信、自动控制、信息处理等诸多领域,越来越多的电子设计人员在使用FPGA,熟练掌握FPGA设计技术已经是对电子设计工程师的基本要求。 第1章 数字滤波器的基本概念 所谓数字滤波器,是指输入、输出均为数字信号,通过一定的运算关系改变输入信号所含频率成份的相对比例或者滤除某些频率成份的器件。因此,数字滤波器的概念和模拟滤波器相同,只是信号的形式和实现滤波方法不同。正因为该点的不同,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及实现模拟滤波器无法实现的特殊滤波功能等优点。如果要处理的是模拟信号,可通过ADC和DAC,在信号形式上进行匹配转换,同样可以使用数字滤波器对模拟信号进行滤波。 数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波器输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即1/2抽样频率点呈镜像对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。 数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。数字滤波器有低通、高通、带通、带阻和全通等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器 一般数字滤波器从功能上分类,和模拟滤波器一样,可以分为低通、高通、带通、带阻等选通滤波器。它们的理想幅频特性如图1-1所示。这种理想滤波器是不可能实现的,因为它们的单位脉冲响应均为非因果且是无限长的,我们只能按照某些准则设计滤波器,使之尽可能逼近它,这些理想的滤波器可作为逼近的标准用。另外,需要注意的是数字滤波器的传输函数H( )都是以2 为周期的,滤波器的低通频带处于2 的整数倍处,而高通频带处于 的奇数倍附近,这一点和模拟滤波器是有区别的。 图1-1 理想低通、高通、带通、带阻滤波器幅频特性 数字滤波器从实现的网络结构或者从单位脉冲响应分类,可以分为无限长脉冲响应(IIR)滤波器和有限脉长冲响应(线性)滤波器。它们的系统函数分别为: H(z)= (1.1) H(z)= (1.2) (1.1)式中的H(z)称为N阶IIR滤波器函数,(1.2)式中的H(z)称为(N-1)阶线性滤波器函数。这两种类型的设计方法有很大的区别,本课题主要讨论线性的设计。 1.1数字滤波器的技术要求 我们常使用的数字滤波器一般属于选频滤波器。假设数字滤波器的传输函数H( )用下式表示: H( )=|H( )| 式中,|H( )|称为幅频特性,Q(ω)称为相频特性。幅频特性表示信号通过该滤波器后各频率成份衰减情况,而相频特性反映各频率成份通过滤波器后在时间上的延时情况。因此,即使两个滤波器的幅频特性相同,而相频特性不一样,对同样的输入,滤波器的输出信号也是不一样的。一般选频滤波器的技术要求有幅频特性给出,相频特性一般不作要求,但如果对输出波形有要求,则需要考虑相频特性的技术指标,例如,语音合成、波形传输、图像信号处理等。如果对输出波形有严格要求,则需要设计线性相位的数字滤波器。 对于图1-1中所示的各种理想滤波器,我们必须设计一个因果可实现的滤波器去实现。另外,也要考虑复杂性与成本问题,因此实用中通带和阻带中允许一定的误差容限,即通带不一定是完全水平的,阻带信号电压不一定都绝对衰减到零。此外,按要求在通带与阻带之间还应设置一定宽度的过渡带。因此由上可知数字滤波器的技术指标有:通带的最大波动、阻带的最小衰减、以及过渡带的宽度。 1.2 数字滤波器的设计概述 由于结构的差异,IIR滤波器和线性滤波器的设计方法也是不相同的。IIR设计方法通常有两类,经常用的一类设计方法是借助于模拟滤波器设计方法进行的。其设计步骤是:先设计模拟滤波器得到传输函数Ha(s),然后将Ha(s)按某种方法转换为数字滤波器的系统函数H(z)。这一类相对容易一些,这是因为模拟滤波器的设计方法已经很成熟,它不仅有完整的设计公式,还有完善的图表供查询;另外,还有一些典型的滤波器类型可以供我们使用。另一类是直接在频域或者时域中进行设计的,由于要解联立方程,设计时需要计算机作辅助设计。线性滤波器不能采用由模拟滤波器的设计进行转换的方法,经常用的是窗函数法和频率采样法。还有一种比较有效的方法是切比雪夫等波纹逼近法,需要通过计算机辅助设计完成。 IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。 IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。 IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。 在MATLAB下设计IIR滤波器可使用Butterworth函数设计出巴特沃斯滤波器,使用Cheby1函数设计出契比雪夫I型滤波器,使用Cheby2设计出契比雪夫II型滤波器,使用ellipord函数设计出椭圆滤波器。下面主要介绍前两个函数的使用。 与FIR滤波器的设计不同,IIR滤波器设计时的阶数不是由设计者指定,而是根据设计者输入的各个滤波器参数(截止频率、通带滤纹、阻带衰减等),由软件设计出满足这些参数的最低滤波器阶数。在MATLAB下设计不同类型IIR滤波器均有与之对应的函数用于阶数的选择。 IIR单位响应为无限脉冲序列FIR单位响应为有限的 IIR幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上; FIR幅频特性精度较之于iir低,但是线性相位,就是不同频率分量的信号经过FIR滤波器后他们的时间差不变。这是很好的性质。 对于线性相位型滤波器,通常采用线性滤波器,其单位脉冲响应满足一定条件,可以证明其相位特性在整个频带中是严格线性的,这是模拟滤波器无法达到的。当然,也可以采用IIR滤波器,但必须使用全通网络对其非线性相位特性进行相位校正,这样增加了设计与实现的复杂性。本课题主要研究线性滤波器的设计。 第2章 线性滤波器特性及原理 常见的数字滤波器为线性时不变(Line Time Invariant , LTI)滤波器。线性是数字滤波器的一种。线性滤波器的运算是一种卷积运算,可以用快速傅氏变换和其他快速算法来实现. 2.1线性滤波器原理及结构 并非所有的线性数字滤波器都具有线性相位特点,而是当线性数字滤波器的单位脉冲响应具有对称性特点时,才具有严格线性相位,即h(n)是实数,且h(n)的前半部和后半部之间满足偶对称或奇对称, h(n)= h(N-1-n) 当一个 线性 滤波器具有线性相位响应时,其脉冲响应呈现某种对称条件。在这种形式中,将利用这些对称关系把相乘的次数减少一半。正是由于此原因,在本课题中才会选择线性相位型来进行设计。 线性相位响应的优点如下: 1、 设计过程中只有实数运算而没有复数运算,运算简单; 2、 线性相位 线性 滤波器没有延时失真,仅有某一固定时延,便于设计; 3、 对于长度为 N或(N-1)的滤波器,其运算次数具有 N/2数量级,有利于提高运算速度,节省资源。 我们知道,对于线性滤波器的直接型结构如图1-2所示,图中共需要N个乘法器,但对于线性相位的线性滤波器,N为偶数时,仅需要N/2次乘法,节约一半乘法器。如果N为奇数,则需要(N+1)/2个乘法器,也节约了近一半。 图1-2 线性滤波器直接型结构 线性相位线性滤波器的差分方程为, y(n)= =h(0)*x(n)+h(1)*x(n-1)+…+h(1)*x(n-N+2)+h(0)*x(n-N+1) =h(0)[x(n)+x(n-N+1)]+h(1)[x(n-1)+x(n- N+2)]+… 当线性滤波器的阶数为奇数和偶数时,其相应的结构如图1-3,1-4所示。 图1-3线性相位线性滤波器(奇数阶) 图1-4线性相位线性滤波器(偶数阶) 比较从以上图形结构,可看出线性相位结构比较简单,节省了大量的硬件资源。对于线性相位线性滤波器的单位脉冲响应h(n)为奇对称和偶对称又分别分为列长N为奇数和偶数两种情况。其单位脉冲响应序列h(n)如图1-5,1-6所示。因此共有四种类型的线性相位线性滤波器。 图1-5偶对称单位脉冲响应 图1-6奇对称单位脉冲响应 2.2线性滤波器的特性 线性滤波器是脉冲响应有限长的数字滤波器,它由有限个采样值构成。按网络实现结构,线性滤波器可分以下几种:直接型、级联型、频率采样型,若线性的脉冲响应满足奇偶对称的条件,则线性还具有线性相位型结构。由于线性脉冲响应是有限长的,系统函数在单位圆外没有极点,因而系统具有很好的稳定性,多采用非递归结构实现,运算误差小。相比之下,IIR滤波器的单位脉冲响应序列是无限长的,其系统函数极点在单位圆内时才是稳定的,实现结构必定是递归型的,这种结构由于运算误差,有时会引起零输入极限环震荡。 线性滤波器的运算是一种卷积运算,可以用快速傅氏变换和其他快速算法来实现。而IIR滤波器没有快速算法。线性滤波器能得到严格的线性相位特性。而IIR滤波器具有良好的幅频特性,但相位是非线性的,要设计线性相位的IIR滤波器,只能用优化设计的方法逼近。通常,在满足同样设计指标的情况下,线性滤波器的阶数要比IIR滤波器的阶数高,这是因为线性滤波器的极点固定在原点位置上,要达到较好的选择性,只能提高滤波器的阶数。在设计滤波器时,IIR滤波器的设计可利用模拟滤波器的理论,有公式表格可供查阅等,设计工作量小。而线性滤波器没有直接设计公式,计算工作量大,一般要借助于计算机来完成。 2.3线性滤波器的设计 前文提到设计线性滤波器不能采用由模拟滤波器的设计进行转换,通常用的是窗函数法,频率采样法以及切比雪夫等波纹逼近法。线性滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。 IIR数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配,所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。其设计方法主要有经典设计法、直接设计法和最大平滑滤波器设计法。FIR数字滤波器的单位脉冲响应是有限长序列。它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。 在对滤波器实际设计时,整个过程的运算量是很大的。设计阶数较高的IIR滤波器时,计算量更大,设计过程中改变参数或滤波器类型时都要重新计算。 设计完成后对已设计的滤波器的频率响应要进行校核。要得到幅频、相频响应特性,运算量也是很大的。平时所要设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候要根据设计要求和滤波效果不断地调整,以达到设计的最优化。在这种情况下,滤波器设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成。利用MATLAB强大的计算功能进行计算机辅助设计,可以快速有效地设计数字滤波器,大大地简化了计算量在本课题中,选用窗函数法来设计。 2.3.1窗函数法设计原理 线性滤波器最简单的设计方法是窗函数法,也称为傅氏级数法。线性滤波器的设计同IIR滤波器一样,先给出要求的理想滤波器的频域,设计一个线性滤波器的频响去逼近理想的频响。然而窗函数设计法是在时域进行的,因此必须先求出理想频响对应的单位脉冲响应hd(n),再设计线性滤波器的单位脉冲响应h(n)去逼近hd(n)。它的基本思想是要选取某一种合适的理想频率选择性滤波器,然后将它的脉冲响应平移截断以得到一个线性相位和因果的 线性滤波器。因此这种方法的重点在于选择某种合适的窗函数和一种理想滤波器。对于给定的滤波器技术指标,选择滤波器长度和具有最窄主瓣宽度和尽可能小的旁瓣衰减的某个窗函数。任何数字滤波器的频率响应 H( )都是ω的周期函数,它的傅立叶级数展开式为, H( )= 其傅立叶级数系数hd(n)就是理想数字滤波器的单位脉冲响应,且 hd(n)= 其中ωc为滤波器的归一化截止频率。 显然,hd(n)是无限长的序列,系统是非因果的,物理不可实现的。因此我们必须把hd(n)右移截断,得到一个有限长的因果序列 h(n),让h(n)去逼近hd(n),比如把hd(n)右移(N-1)/2位得: h'd(n)= 可以看出h'd(n)是一个关于(N-1)/2点偶对称的序列,其相位响应是严格线性的。但这种直接平移截取的方法,会产生吉布斯(Gibbs)现象。即随着窗口长度的增加,窗口频谱的主瓣宽度变窄,频谱旁瓣个数增加,但主瓣与旁瓣相对比例基本不变。因此增加窗口长度,由于主瓣宽度变窄可减小过渡带宽,又由于频谱旁瓣个数增加而使得通带内起伏和阻带内的余振增加,但肩峰强度以及阻带最小衰减基本不变,若要改善阻带衰减特性,必须减小旁瓣与主瓣的相对比例,使窗口能量集中在频谱主瓣,这样一来又增加了主瓣的宽度,其结果将导致过渡带变宽。实际应用中要兼顾过渡带宽和阻带衰减。因此常常结合具体情况,通过选择不同的窗函数来满足实际的需要。 2.3.2几种常用的窗函数 工程中比较常用的窗函数有:矩形窗函数、三角形(Bartlett)窗函数、汉宁(Hanning)窗函数、海明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞(Kaiser)窗函数。其中凯塞窗是由零阶贝塞尔函数构成的。它有一个形状参数β,可以自由选择。改变β值可以调节主瓣宽度和旁瓣电平。β越大,W(n)窗越窄,频谱的旁瓣越小,但主瓣也相应加宽。以上六种窗函数的比较如表1-1所示。 表1-1 六种窗函数的比较 窗函数 第一旁瓣幅度衰减/dB 过渡带宽 阻带最小衰减/dB 矩形窗 -13 4 /N -21 三角形窗 -27 8 /N -25 汉宁窗 -31 8 /N -44 海明窗 -41 8 /N -53 布莱克曼窗 -57 12 /N -74 凯塞窗 -57 10 /N -80 在 MATLAB 中的窗函数,: (1)矩形窗(Rectangle Window) 调用格式:w=boxcar(n),根据长度 n 产生一个矩形窗 w。 (2)三角窗(Triangular Window) 调用格式:w=triang(n),根据长度 n 产生一个三角窗 w。 (3)汉宁窗(Hanning Window) 调用格式:w=hanning(n),根据长度 n 产生一个汉宁窗 w。 (4)海明窗(Hamming Window) 调用格式:w=hamming(n),根据长度 n 产生一个海明窗 w。 (5)布拉克曼窗(Blackman Window)调用格式:w=blackman(n),根据长度 n 产生一个布拉克曼窗 w。 (6)恺撒窗(Kaiser Window) 调用格式:w=kaiser(n,beta),根据长度 n 和影响窗函数旁瓣的β参数产生一个恺撒窗w 窗函数的选择原则是: 1、具有较低的旁瓣幅度,尤其是第一旁瓣幅度; 2、旁瓣幅度下降速度要大,以利增加阻带衰减; 3、主瓣的宽度要窄,以获得较陡的过渡带。 通常上述三点很难同时满足。当选用窗函数主瓣宽度较窄时,虽然得到较陡的过渡带,但通带和阻带的波动明显增加,当选用最小的旁瓣幅度时,虽能得到均匀的幅度响应和较小的阻带波动,但过渡带变宽。因此,实际选用的窗函数往往是取它们的折衷。在保证主瓣宽度达到一定要求的条件下,适当牺牲主瓣宽度来换取旁瓣波动的减少。以上是从幅频特性的改善对时域窗函数提出的原则要求。通过分析比较,本课题选择海明窗。 2.3.3海明窗简介 海明窗是一种改进的升余弦窗,定义为: W(n)=0.54-0.46cos 0≤n≤N-1 图1-7,1-8所示,分别为64阶海明窗、矩形窗窗函数的时域及频域幅度特性。由表1-1及图1-7,1-8比较得出,本课题选择海明窗的主要原因如下: 1、在以上所列窗函数中,矩形窗的主瓣宽度最窄,但其旁瓣幅度衰减太小,从而造成所设滤波器的通带和阻带特性均不理想。然而所选的海明窗,其主瓣宽度适中,对应所设计的滤波器的过渡带也比较窄。 2、在窗函数中,海明窗最大旁瓣值比主瓣衰减约41dB,旁瓣抑制较高,通带特性好。 3、海明窗的谱能量绝大部分集中在主瓣内,阻带特性良好。 本课题研究的是线性相位线性滤波器的设计,h(n)有对称特点,且要求窗函数W(n)必须有偶对称特点,即 W(n)=W(N-1-n) 图1-7 64阶海明窗时域与频域幅度特性 图1-8 64阶矩形窗时域与频域幅度特性 2.3.4 FPGA概述和基本结构 FPGA 的发展相当迅速,现已形成了各种不同的结构。按逻辑功能块的大小分类,可分为细粒度 FPGA 和粗粒度 FPGA。细粒度 FPGA 的逻辑功能块小,资源可利用度高,但连线和开关多,速度慢;粗粒度 FPGA 的逻辑功能模块大,功能强,但资源不能充分利用。从逻辑功能块的结构上分类,可分为查找表结构、多路开关结构和多级与非门结构。 根据 FPGA 的内部连线的结构不同,可分为分段互连型 FPGA 和连续互连型FPGA 两种。分段互连型 FPGA 中具有多种不同长度的金属线,各金属线段之间通过开关矩阵或反熔丝编程连接,走线灵活方便,但走线延时无法预测;连续互连型 FPGA 是利用相同长度的金属线,连接与距离远近无关,布线延时是固定和可预测的。 根据编程方式,FPGA可分为一次编程型和可重复编程型两类。一次编程型采用反熔丝开关元件,具有体积小、集成度高、互连性特性阻抗低、寄生电容小和高速度的特点,此外还具有加密位、防拷贝、抗辐射、抗干扰、不需外接PROM或EPROM的特点,但只能一次编程,比较适合于定型产品及大批量应用,Actel公司和Quicklogic公司提供此类产品。可重复编程型FPGA采用SRAM开关元件或FLASH控制的开关元件,配置数据存储在SRAM或FLASH中。SRAM型的FPGA的突出优点是可以反复编程,系统上电时,给FPGA加载不同的配置数据就可完成不同的硬件功能,甚至在系统运行中改变配置,实现系统功能的动态重构。FLASH型FPGA具有非易失性和可重复编程的双重优点,但不能动态重构,功耗也较SRAM型高。目前FPGA的主流仍然是Xilinx公司的产品。 FPGA一般有由三种可编程电路和一个用于存放编程数据的SRAM组成,这三种可编程电路是:可编程逻辑模块CLB(Configurable Logic Block)、输入/输出模块IOB(I/O Block)和可编程布线通道(其中包括可编程内部连接点PIP),其基本结构如图2-1所示。CLB是FPGA的主要组成部分,是实现逻辑功能的基本单元。I/O 模块提供了器件引脚和内部逻辑阵列之间的连接,通常排列在芯片的四周。可编程布线通道把各逻辑模块与 I/O 模块互相连接起来,构成各种功能复杂的系统。 2.6设计方法及流程 在EDA 出现以前,人们采用传统的硬件电路设计方法来设计数字系统。传统的硬件电路采用自下而上的设计方法。其主要步骤是:根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流程图,对系统的功能进行分化,合理的划分功能模块,并画出系统的功能框图;接着就是进行功能的细化和电路设计;各功能模块电路设计调试完成后,将各功能模块的硬件电路连接起来,再进行系统的调试;最后完成整个系统的硬件电路设计。随着计算机技术、大规模集成电路的技术的发展,这种设计方法已经落后于当今技术的发展。一种崭新的自上而下的设计方法已经兴起,它为硬件电路设计带来一次重大的变革。 20世纪80年代初,在硬件电路设计中开始采用计算机辅助设计技术(CAD),开始仅仅是利用计算机软件来实现印刷板的布线,以后慢慢地才实现了插件板级规模的电子电路的设计和仿真。随着大规模专用集成电路的开发研制,为了提高开发的效益和增加已有开发成果的可继承性,以及缩短开发时间,各种新兴的EDA工具开始出现,特别是硬件描述语言HDL(Hardware Description Language)的出现,使得传统的硬件电路设计方法发生了巨大的变革,新兴的EDA设计方法采用自上而下的设计方法。所谓自上而下的设计方法,就是从系统总体要求出发,自上而下地逐步将设计内容细化,最后完成系统硬件的整体设计。 可编程逻辑器件的设计是指利用EDA开发软件和编程工具对器件进行开发的过程。高密度复杂可编程逻辑器件的设计流程如图2-2所示,它包括设计准备,设计输入,功能仿真,设计处理,时序仿真和器件编程及测试等七个步骤。 图2-2 可编程逻辑器件设计流程 本课题中利用MATLAB提供的滤波设计分析工具FDAtool来进行线性滤波器的参数计算。工作界面如图3-3所示,根据设计要求选择参数实现滤波器的设计分析。其中,指定线性低通滤波器为32阶,选择海明窗函数设计,采用数字归一化频率,令截止频率为0.3, 点击设计按钮,导出系数如下表所示,由于该滤波器是线性相位的,因此系数具有对称性。 由于在FDAtool工具中采用数字归一化频率设计滤波器,并指定了截止频率与采样频率的比例,因此在滤波器的实现时,只要调节采样频率就可以改变截止频率,而对应的滤波器系数不发生改变[4]。本设计对应的滤波器的幅频、相频特性如图3-4所示。 图3-3 FDAtool设计界面 图3-4 32阶线性相位线性滤波器幅频、相频特性(归一化截止频率为0.3) 第3章FPGA芯片实现线性滤波器 3.1 FPGA芯片硬件实现线性滤波器 本设计中用到的FPGA芯片为Cyclone EP1C6,该芯片是本系统线性滤波器设计的核心。通过下载程序对其编程后,结合信号输入/输出外围电路(AD,DA转换电路),最终完成硬件系统的实现。 3.2 线性滤波器硬件实现 本课题的是进行系统的硬件实现,上文中已介绍通过在MATLAB/Simulink环境下对所编辑的线性滤波器进行模拟仿真,根据要求设定线性滤波器图形编辑结构中各元件的参数,然后通过示波器模块观察模拟结果。若结果达到预期要求,则模拟成功。之后利用Quartus = 2 \* ROMAN II对线性滤波器图形编辑结构进行综合、分析,估算出所设计的线性滤波器系统所占用的硬件资源,同时生成线性滤波器模块,并建立Quartus = 2 \* ROMAN II工程文件。最后在Quartus = 2 \* ROMAN II 平台上,通过调用已有的元件模块及I/O时序、控制端口,正确连接各元件模块建成整个硬件系统模块(如图4.5),综合通过后给系统的输入/输出端口及数据线端口分配引脚。然后对整个硬件系统进一步综合、分析并生成对应的VHDL代码。接着把VHDL代码下载到有EP1C6Q240C8芯片的实际电路上进行系统调试。用示波器观察结果。通过调节系统采样频率,从而改变截止频率。 在图4-5中,可以看到引入一个74244模块,74244是一个8位三态门逻辑器件模块,它有两个控制端口,分别控制高低四位,均为低电平有效。由于所用的开发实验箱上AD与DA共用一条数据总线,为避免数据传输冲突,因此在此硬件系统中引入了74244模块,来控制数据的传输。 图4-5 线性滤波器系统模块结构 3.3 线性滤波器电路软件设计及模拟仿真 本设计利用MATLAB可视化图形编辑工具,结合DSP Builder软件先画出课题所设计的线性相位的线性滤波器硬件电路结构图,如图3-5所示。同时根据线性滤波器的技术参数,使用MATLAB滤波器设计工具计算出线性滤波器的系数,然后把系数代入结构图中,初步完成线性滤波器的图形编辑。 图3-5 32阶线性相位线性滤波器结构简图 通常MATLAB计算得到线性滤波器的系数是浮点数,而为了方便FPGA器件的定点数运算及提高系统的工作效率,必须把浮点数转换成定点数来进行计算。因此,在这里先对系数进行处理。由线性相位线性滤波器的差分方程表达式: y(n)= 可知,等式两边可同乘一个最佳数量级,然后取整使得系数由浮点数转换成定点数。在整个过程中必然造成一定的量化误差,然而数量级选得越大,则误差就越小,但计算也就变得更复杂。所以根据实际具体要求,选择合适的数量级,对提高系统性能起着重要的作用。 在MATLAB/Simulink环境下对所编辑的线性滤波器进行模拟,根据要求设定线性滤波器图形编辑结构中各元件的参数,通过示波器模块观察模拟结果。结果如图3-6,3-7所示。以上两图所示为32阶海明窗函数低通线性滤波器的模拟效果,采样频率为100KHz,截止频率为30KHz。其中,SineWave为正弦无符号输入信号(幅度为127、频率为10KHz),Signed_in为线性滤波器系统有符号输入信号,线性(LP)_out为线性滤波器系统的有符号输出信号,DA_in为外围数模转换电路输入信号。通过改变正弦输入信号的频率可观察到该系统的低通滤波效果(在这里是通过改变每个周期内的采样点数来达到改变输入信号的频率),即随着输入信号频率的增大,线性(LP)_out波形的幅度逐渐减小。图3-6,3-7中的模拟信号输入频率分别为1KHz和10KHz。 图3-6 模拟仿真结果(模拟信号输入1KHz) 图3-7模拟仿真结果(模拟信号输入10KHz) 3.4 测试结果 对下载到实际电路中的32阶线性相位低通线性滤波器系统程序运行调试,用示波器观察系统输出信号,其结果如下列图形(图4-6至图4-14)所示。其中模拟输入信号幅度峰峰值恒为2V,频率从10Hz变化到7KHz,滤波器系统采样频率为100KHz,归一化截止频率为0.05。示波器CH1显示数字滤波器输出信号,CH2显示模拟输入信号。 图4-6 模拟输入信号10Hz滤波结果 图4-7 模拟输入信号100Hz滤波结果 图4-8 模拟输入信号1KHz滤波结果 图4-9 模拟输入信号2KHz滤波结果 图4-10 模拟输入信号3KHz滤波结果 图4-11 模拟输入信号4KHz滤波结果 图4-12 模拟输入信号5KHz滤波结果 图4-13 模拟输入信号6KHz滤波结果 图4-14 模拟输入信号7KHz滤波结果 分析以上波形,针对系统输入和输出结果列表如下所示。由此表4-3可知,对于本课题设计的32阶低通线性滤波器系统,随着模拟输入信号频率的增加,该滤波器系统输出信号幅度逐渐减小。在通带上有较小的波动,其中过渡带衰减的速度与本课题选择的窗函数类型有关。以上结果表明本设计较好地实现了低通滤波的效果。 表4-3 滤波结果分析表 模拟输入信号 线性系统输出信号 幅度(V) 频率(Hz) 幅度(V) 频率(Hz) 图4-6 Vpp=2 10 Vpp=0.9 10 图4-7 Vpp=2 100 Vpp=1.4 100 图4-8 Vpp=2 1K Vpp=1.3 1K 图4-9 Vpp=2 2K Vpp=1.1 2K 图4-10 Vpp=2 3K Vpp=0.8 3K 图4-11 Vpp=2 4K Vpp=0.5 4K 图4-12 Vpp=2 5K Vpp=0.25 5K 图4-13 Vpp=2 6K Vpp=0.1 6K 图4-14 Vpp=2 7K Vpp=0.05 7K 第4章展望与总结 在当今的电子电路的设计中,占用相对少的资源和在此相对少的资源上具有最快运行速度以及提高系统设计的性价比是设计的方向。在不同的系统设计中,为了满足具体实际的需要,适当的牺牲一方面的优势也是可以接受的。随着科技的日新月异,基于 FPGA 来设计电子电路已成为一种趋势。这是由于 FPGA 器件集成度高、体积小,使用它可以大大缩短开发的周期,减少资金的投入,将原来的电路板级产品升级为芯片级产品。 在本课题的整个设计过程中,通过学习和交流发现不少问题尚未得到很好的解决。一方面由于作者才疏学浅,很多相关知识只是有个肤浅的了解;另一方面,毕业设计时间有限,作者来不及对某些具体细节作进一步探讨。比如本设计中在用MATLAB工具算出线性滤波器的系数,得到的是浮点数,而FPGA系统芯片只支持定点数的运算,因此在把系数定标处理的过程中引进了误差;另外在模数转换中也引进了量化误差,这些误差作者在本设计中没有进行具体分析,只是一笔带过。总之,这些问题还有待进一步研究。 在做毕业设计的初期阶段,难度很大,没有头绪。通过求助于赵老师、理清了思路。同时,在图书馆里、网上查阅资料,攻克了毕业设计中的道道难题。最后经过指导老师罗老师的耐心指点和连续的奋战才算基本合格。办事只要有了头绪,就会简单很多。本次设计我能独立完成,算是有了很大的收获。总的感受有以下几方面: 1、巩固了课本上的知识。通过本次设计,我不但对单片机有了更为深入的了解,对一个课题如何画流程图,编程序等,有了一定的认识。 2、在本次毕业设计中,我进一步加强了自己的动手能力和运用专业知识的能力,从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案;特别是深刻体会到的是软件和硬件结合的重要性,以及两者的联系和配合作用。 3、通过本次毕业设计,让我了解到DSP技术对当今人们生活的重要性。同时这次做毕业设计的经历也使我受益匪浅。让我知道做任何事情都应脚踏实地,刻苦努力地去做。只有这样,才能做好。 从全文的论述中可以看出,基于可编程逻辑器件来进行电子电路设计已成为一种趋势,在今后的发展中,会有越来越多的开发人员从事此项工作。基于 FPGA 进行滤波器的设计的技术目前还处于不成熟的阶段。在本设计的过程中,虽然最终在实际电路系统上实现达到了较好的效果,但由于时间和条件的限制,难免存在缺点与不足之处,所以在今后的设计中仍有待改善和提高。 参考文献 [1] 褚振勇,翁木云. FPGA设计及应用,西安电子科技大学出版社,2002,1-100页 [2] 徐志军,徐光辉. CPLD/FPGA的开发与应用,电子工业出版社,2002,1-40页 [3] 宋万杰,罗丰,吴顺君. CPLD技术及应用,西安电子科技大学出版社,1999,1-50页 [4] 丁玉美,高西全. 数字信号处理(第二版),西安电子科技大学出版社,2001 [5] 李芬华. 数字信号处理,河北大学出版社,2002年12月 [6] 奥本海姆,谢弗. 离散时间信号处理,科学出版社,1981 [7] 王世一. 数字信号处理(修订版),北京理工大学出版社,2004 [8] 侯伯亨,顾新. VHDL硬件描述语言与数字逻辑电路设计(修订版),西安电子科技大学出版社,1999 [9] 潘松,黄继业. EDA技术实用教材,科学出版社,2000 [10] 楼顺天,李博菡. 基于MATLAB的系统分析与设计——信号处理,西安电子科技大学出版社,2000,20-80页 [11] J.G.Prokis et al.:“Advanced Digital Signal Processing”, Macmillan Publishing Company, 1992 [12] Altera Corporation. Altera Digital Library, Version 2, 2001 [14] w
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服