1、数字信号处理基础在FPGA中的实现,讲座主要内容,数字信号的表示与基本运算 数字滤波器的种类 FIR滤波器的设计与实现 多速率数据信号处理的原理与实现 几种特殊滤波器的原理与应用 其他数字信号处理技术简介,数的表示,定点数原码:对应于无符号数反码补码:对应于有符号数浮点数,数的截位,对于正数,加上0.10000后截位 对于负数,加上0.01111后截位,二进制加法器,串行加法器超前进位加法器,二进制加法器,流水线加法器三种加法器的比较 串行加法器:速度最慢,耗费的资源最少 超前进位加法器:速度较快,耗费的逻辑资源最多 流水线加法器:速度最快,但需耗费触发器等时序资源,二进制乘法器,移位相加乘法
2、器 加法树乘法器流水线乘法器,二进制乘累加器,传统型的乘累加器V4与V5中的DSP48E就可以配置成上面的结构,返回,二进制乘累加器的改进型,分布式的乘累加器设x(n)与h(n)两个序列的长度为N,每一个数的位长为B+1。令计算h(n)*xb(n)可用查找表实现。查找表的构照如下:,分布式算法的查找表构照,分布式算法的乘累加器的结构,其分布式算法的乘累加器的实现结构如下:其中每次乘累加后都要除以2(相当于右移一位),其最终的输出结果应该乘以2B(相当于左移B位),返回,分布式算法的乘累加器的改进型,分布式算法的乘累加器的优缺点 优点: 耗费的硬件资源少,不随输入数据位数的增加而降低。 缺点:
3、随着数据个数N的增加,查找表的复杂程度呈指数方式增加,且需要知道固定的一组系数来构照查找表项值。,数字滤波器的种类,FIR(有限冲激响应)与IIR(无限冲击响应) FIR的h(n)有限长,IIR的h(n)无限长。 FIR的实现是非递归的,IIR的实现是递归的。 FIR可以实现线性相位响应,IIR只能在某一个范围内近似线性。 FIR一定是稳定的,IIR不一定稳定,其稳定性取决于极点的位置。 FIR的阻带衰减特性不如IIR,其硬件开销也大于IIR滤波器。,FIR滤波器的种类与设计,FIR滤波器分为低通,高通,带通,带阻。目前公司内部用的较多的是低通滤波器,下面主要介绍了如何运用MATLAB设计低通
4、滤波器的系数。1. 最常用的工具箱为fdatool,界面操作,只需设置滤波器的一些参数即可。例如阶数,通带,阻带等等。2. 将生成的系数转换成二进制或十六进制。,FIR滤波器的实现,FIR滤波器的基本模型一般不会用上述的模型去实现FIR滤波器,因为时钟速率肯定非常低。下面介绍几种常见的滤波器的实现方式。,MAC方式与分布式算法方式,FIR滤波器其实质就是乘累加过程,只是其中一路是源源不断的数据流。故MAC方式与分布式算法方式的实现见之前的内容。 若FIR滤波器的系数是对称的,无论奇对称还是偶对称,MAC方式都存在改进型。,MAC,DA,直接型FIR滤波器的实现,上图中,为了得到更高的时序,可以
5、在乘法器与加法器之间插入触发器,每一级的加法器之间插入触发器。 上图中系数的顺序反了,转置型FIR滤波器的实现,转置型FIR滤波器的系数与直接型FIR滤波器的系数是相反排列的。,直接型FIR与转置型FIR的比较,与直接型FIR滤波器相比,转置型FIR最大的优势在于它的触发器的双重功能性,即实现数据延时的同时也实现流水线的功能。 转置型的FIR滤波器的输出延时更小。 转置型的FIR滤波器所耗费的时序资源更少。 转置型的FIR滤波器无法利用对称系数的特点。 转置型的FIR滤波器的输入数据的扇出较大。,基于DSP48e的FIR滤波器实现,基于DSP48e的转置型FIR滤波器的实现,基于DSP48e的
6、FIR滤波器实现,基于DSP48e的脉动型FIR滤波器的实现,基于DSP48e的FIR滤波器实现,基于DSP48e的具有对称系数的脉动型FIR滤波器的实现,几种方式实现的滤波器的比较,串行滤波器:速率较慢,适用于阶数与数据速率较低的情况。例如,时钟频率100MHz,输入数据速率为25MHz,则最多只能实现4阶的普通滤波器或是8阶的具有对称系数的滤波器。,几种方式实现的滤波器的比较,分布式的滤波器:不需要消耗额外的乘法器,适用于定系数的滤波器,若滤波器阶数较大则需考虑应用其改进型。,几种方式实现的滤波器的比较,并行滤波器:无论是直接型,转置型或是脉动型滤波器都属于并行滤波器。并行滤波器最大的特点
7、是速度快,占用资源大,但有时也会造成资源的浪费。例如,实现一个16阶的滤波器,时钟频率100MHz,若数据速率为100MHz需要耗费16个DSP48E,若数据速率为25MHZ,也需要耗费16个DSP48E?,基于DSP48e的FIR滤波器实现,半并行的FIR滤波器:若实现一个16阶的滤波器,时钟频率100MHz,数据速率为25MHZ,则完全可以用高速时钟来完成DSP48e的复用。每25MHz只需要完成16次乘法运算,如果采用100MHz的时钟来复用此乘法器,则只需每个时钟周期内完成4次乘法运算即可,故只需要4个DSP48e。采用该种复用方式实现的FIR滤波器为半并行滤波器。下面介绍实现方式。,
8、基于DSP48e的FIR滤波器实现,半并行的FIR滤波器的实现其中每个4*18的cofficients都装有4个系数,其实质就是循环移位寄存器,其时钟为100MHz。而其中的we,we1,we2,we3都是25MHz的信号,用来标识数据速率。而最后一个DSP48E并不是一直累加的。,多速率信号处理的基础知识,所谓多速率信号处理就是指改变信号的采样率,包括抽取和内插两种情况。 抽取也就是将采样数据每隔M-1个数据取一个数据,其中M为大于1的整数,称为抽取因子。其采样率变为原来的1/M。 内插是在采样数据的相邻采样点之间插入L-1个0,其中L为大于1的整数,称为内插因子。其采样率变为原来的L倍。,
9、多相滤波器的原理,以内插为例,对于L=2,N=6的情况上图中,任意一个时刻仅有三个抽头系数有效,而另外三个抽取系数与0相乘。综上,可将此滤波器分解为两个子滤波器,其两个子滤波器的系数分别为h(0),h(2),h(4)与h(1),h(3),h(5).,多相滤波器的实现,对于上面提到的2x的实现如下:其中每个子滤波器的实现可以采用串行,并行,半并行,分布式等方式实现,这在前面已经讨论过了,这里不在累赘。,多相滤波器的原理,如果实现抽取滤波器,抽取因子为M。则其实现方式与内插类似,只是需要多完成一次加和的过程,多相滤波器的实现,以SP5060中的程序为例,介绍下行内插滤波器的实现。SP5060的下行
10、滤波器中有以内插因子为3的39阶奈奎斯特滤波器。其实现如下:,半带滤波器,半带滤波器的通带和阻带对称,即通带波纹和阻带波纹是相等的,而通带的边频和组带的边频是关于Fs/4对称的其系数具有对称性,且除了中心点外,其余偶次系数均为0.其实现如下:其中由于系数对称的关系,还可以参考具有对称系数的脉动型滤波器的实现方式该半带FIR。,半带滤波器的应用,由于其系数的对称性以及近一半的系数为零,使得乘法次数减少了近3/4,加法次数减少了1/2,用于存放滤波器系数的存储器也减少了近1/2. 由于将半带滤波器用于2倍抽取时,其过渡带是有混叠的,所以对过渡带要求较高的情况下,不宜完全采用半带滤波器满足其过渡带要
11、求。,CIC滤波器,CIC滤波器的全称是积分级联梳状滤波器,其结构简单,只需加法器和寄存器即可实现,在高数据速率的处理上具有重要作用。其传输函数如下:其中D是微分延迟参数,M是抽取或内插因子。其结构如下:,CIC滤波器的应用,CIC由于结构简单且不需要消耗乘法器,故在数据速率较高时的速率变换处理中运用较多。 由于CIC的幅度响应是Sinc函数,故其通带的平坦度较差。为了弥补通带内的不平坦性,需要一个的补偿滤波器,其幅度相应实质1/ Sinc函数。如果通带越大,其补偿滤波器的阶数也会越高。所以,CIC滤波器适合做窄带滤波器。,其他常用数字信号处理技术,DDS技术:其实质就是两个ROM中的数据被不断的寻址读出。FFT技术CORDIC算法:通过矢量旋转迭代的方式进行三角函数,指数对数等运算。,谢谢!,