- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于VerilogHDL的小波滤波器的设计与实现
0 引 言
现代计算机和通信系统中广泛采用数字信号处理的技术和方法,其基本思路是先把信号用一系列的数字来表示,然后对这些数字信号进行各种快速的数学运算。其目的是多种多样的,有的是为了加密,有的是为了去掉噪声等无关的信息,称为滤波;有时也把某些种类的数字信号处理运算成为变换,如离散的傅里叶变换(DFT),小波变换(Wavelet T)等。VerilogHDL是目前应用最广泛的一种硬件描述语言,用于数字电子系统的设计。可用它进行各种级别的逻辑设计,并进行数字逻辑系统的仿真验证,时序分析,逻辑综合。小波滤波器的设计属于复杂算法的电路设计,因此利用Veril—ogHDL对双正交小波滤波器进行建模、仿真,实现电路的自动化设计,将是一种较为理想的方法。
1 小波滤波器的设计
对于小波函数,要求它具有正交性、紧支集、对称性和平滑性。正交性可以使变换无冗余;紧支集则带来优良的空间分辨率;对称性保证了与其对应滤波器的相位为线性;平滑性可以产生较小的失真。这样使离散二进小波变换受到很大的限制,为此,人们提出一种双正交的小波变换。本文设计小波滤波器正是基于双正交小波变换的一种双通道完全重构滤波器,因此可以对信号进行分解后实现精确重构,所以对信号的滤波有很好的作用。由于它具有正变换二元上抽样采样和反变换二元下抽样采样特性,在进行滤波器设计时可以将双正交小波滤波器设计成具有多相结构的双通道完全重构滤波器。双正交小波变换可以看成原始信号通过一系列高低通滤波器滤波并经过抽样后所得到的结果,重构过程与此相反。为了使变换后的信号能够完全重建,须满足Y(n)=x-kX(n),在这里取k=1。双正交小波滤波器分解和重构过程如图1所示。
设G(z),H(z)分别为分解低通,高通滤波器,下采样后用H(z)滤波等价于先用H(z2)滤波,然后下采样,所以:
其中:Ge和Go分别是G(z)的偶数项和奇数项,He和H。分别是H(z)的偶数项和奇数项。根据式(1),式(2)可以建立双正交小波滤波器的多相结构模型如图2所示。
<script type=text/javascript>function ImgZoom(Id)//重新设置图片大小 防止撑破表格 { var w = $(Id).width; var m = 650; if(w< m){return;} else{ var h = $(Id).height; $(Id).height = parseInt(h*m/w); $(Id).width = m; } } window.onload = function() { var Imgs = $("content").getElementsByTagName("img"); var i=0; for(;i
下面对双正交小波滤波器用VerilogHDL进行顶层设计:
对于双正交小波滤波器的部件Ge,Go,He,Ho设计,采用行为描述方式进行设计。VerilogHDL行为描述语言作为一种结构化和过程性的语言,其语法结构非常适合于算法级和RTL级的模型设计。在Veril—ogHDL语言中行为描述分为算法和RTL两种。算法级:用语言提供的高级结构能够实现算法的运行模型。RTL级:描述数据在寄存器之间的流动和如何处理,控制这些数据的流动,采用改进的DA算法(如图3所示)。DA算法完成一次滤波所需要B次的累加(或减)也就是B个时钟周期完成一次运算,B位输入数据的位宽。它的查找表(LUT)的大小是由滤波器的阶数N决定的,共需要2N个查找表单元,如果系数N过多,用单个LUT不能够执行全字查找则可把系数分组,利用部分表并将结果相加,为了简单的阐述算法,在此系数只分了2组,每个单元的位宽是由滤波器的系数的量化决定的。Ge,Go,He,Ho四个滤波器虽然长度不同,但具有相同的电路结构,如图4所示。
计算控制器用于控制滤波单元中移位寄存器移位,累加器的循环周期和计算输出,并控制移位寄存器的数据输入。
2 利用VerilogHDL语言实现以上功能
2.1 用VerilogHDL语言进行算法建模
计算机控制器(calculate—controller)的veril—ogHDL模型:
寄存器组中每个寄存器的位数为0,1,…,num一1。
来源:《现代电子技术》
上一篇:利用AMSVF进行混合信号SoC的全芯片验证
下一篇:高速串行总线的常用测试码型