系数对称FIR滤波器的MATLAB设计与DSP上的实现

2019-04-25 08:51陈仲源厦门市专用通信局
数码世界 2019年3期
关键词:缓冲区滤波器频谱

陈仲源 厦门市专用通信局

数字滤波器根据其冲激响应函数的时域特性,分无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。稳定和线性相位特性是FIR滤波器突出的优点。

1 设计要求

用窗函数法设计一线性相位数字低通滤波器,其技术指标为:3dB截止频率为:0.2 PI;阻带截止频率为:0.4PI;阻带最小衰减为40dB;并编程用DSP实现。

2 MATLAB设计

2.1 设计原理、方法:

由数字信号处理知识可知:有限长单位脉冲响应(FIR)滤波器的系统函数为的N-1阶多项式,显然系数即是该系统的的单位脉冲响应。

线性相位FIR滤波器通常采用窗函数法和频率采样法来设计。本设计采用窗函数法中的凯塞(Kaiser)窗,对于凯塞(Kaiser)窗,可以在主瓣宽度与旁瓣宽度衰减之间自由地选择。由滤波器的过渡带宽为,阻带最小衰减为,这时的参数和滤波器长度N可由下列经验公式求得:

2.2 设计步骤

2.2.1 产生输入信号序列

利用MATLAB产生一输入信号序列,该序列所含频谱有直流的频率分量,同时将生成的数字序列保存,导入到CCS5000里。

2.2.2 滤波器设计

根据指标要求其边界频率应为

利用MATLAB编写程序,设计并计算出系数表。

由定点的知识可见,定点的选择很重要,此处选择Q14格式,若选Q15形式,由于所选的DSP芯片为16位字长的定点DSP芯片,而由MATLAB滤波运行结果可发现一些计算量已超出了动态范围,所以MATLAB中x=x*16383, b2=b1*16383,实现十进制数转换为定点数。

3 FIR滤波器的DSP实现

3.1 原理、及算法:

在TMS320C54x中,提供了一个用于对称有限冲击响应滤波器设计的专用指令FIRS 其操作如下:

FIRS指令在同一个机器周期内,通过C和D总线读2次数据存储器,同时通过D总线读一个系数。

本设计采用循环寻址方式。在TI的DSP中,循环寻址通过如下方法实现。

①设定BK(寄存器块大小)值,以确定循环寻址缓冲区的大小,也可将它看作是循环的周期。

②设定缓冲区的底部地址。必须注意:其低N位为零,其中N为满足式(1)的最小N值。

2 N>BK (1)

③用辅助寄存器间接寻址循环缓冲区。

由于一个N(设N为偶数)阶的FIR滤波器具有系数对称特性,其输出方程可以写为:

所以可建立如下实现算法:

①在数据存储中开辟两个循环缓冲区,New循环缓冲区存放新数据,O1d循环缓冲区中存放老数据。循环缓冲区的长度为N/2。

②设置循环缓冲区指针,AR2指向New缓冲区中最新的数据,AR3指向O1d缓冲区中最老的数据。

③在程序存储器中设置系数表。即导入先前由MATLAB生成的系数表(FIR_table.dat)。

④(AR2)+(AR3)→AH(累加器 A 的高位);(AR2)-1→AR2;(AR3)-1→AR3。

⑤将累加器B清零,重复执行下列操作N/2次:(AH)*系数ai+(B)→B,系数指针(PAR)加1,(AR2)+(AR3)→AH,AR2和 AR3减 1。

⑥保存和输出结果。

⑦修正数据指针,让AR2和AR3分别指向New缓冲区最新数据和O1d缓冲区中最老的数据。

⑧用New缓冲区中最老的数据替代O1d缓冲区中最老的数据。O1d缓冲区指针减1。

⑨输入一个新数据替代New缓冲区中最老的数据。

重复执行第④~⑨步。

3.2 步骤、调试及结果

根据上述算法编写DSP程序,输入数据x_in, 输出x_out的频谱,如图1,图2所示

图1:输入信号序列x_in的频谱(上)和相位谱(下)

图2:滤波后输出信号序列x_out的频谱(上)和相位谱(下)

分析:由图可见,输入序列中所含频谱分量分别为直流, 经过DSP所设计的系数对称的FIR滤波器后,只剩直流, 的频率分量,而 的频率分量已被滤除,设计符合要求。

4 结论

数字滤波器的应用十分广泛,运行MATLAB语言,能很容易地设计出具有严格要求(如线性相位等)的滤波器。用定点DSP实现滤波器要考虑DSP的定标、误差、循环寻址等几个关键问题。

猜你喜欢
缓冲区滤波器频谱
电机在60Hz运行过程中的故障频谱分析
从滤波器理解卷积
Comparison of decompression tubes with metallic stents for the management of right-sided malignant colonic obstruction
串行连续生产线的可用度与缓冲库存控制研究*
开关电源EMI滤波器的应用方法探讨
基于ARC的闪存数据库缓冲区算法①
一种微带交指滤波器的仿真
FCC启动 首次高频段5G频谱拍卖
动态频谱共享简述
初涉缓冲区