×
模拟电路设计 > 详情

基于DSP的FIR滤波器的设计(二)

发布时间:2020-07-07 发布时间:
|
实现方案#e#

2.2 实现方案

由于在卷积运算之前, h (n) 的N个数值是已知的, 因此, 可先在程序存储器中开辟N个单元来存放h (n)。由于输入序列x (n) 是不断变化的,因此, 在数据存储器中可开辟N个存储单元并对其进行移位寄存, 其初始值分别为x (n)、x (n-1)……x (n-N-1), 然后采用循环寻址的方法对其进行访问。每次输入新的样本时, 可以以新样本改写滑窗中的最老的数据, 而滑窗中的其他数据则不需要移动。利用片内8 kB (循环缓冲区长度)寄存器可对滑窗进行间接寻址, 循环缓冲区地址首尾相邻。8级循环缓冲区的结构如图1所示, 其中顶部为低地址, 图1中的(a) (b) (c) 分别为初始状态、输入1个和2个样本后的存储情况。


图1 8级循环缓冲区结构。

3 仿真结果

下面是一组信号采样序列样本x (n), 其中存在有高频干扰。现以x (n) 作为输入序列, 然后滤除其中的干扰成分。

{x (n)} = {-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,*,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0}

本设计的线性相位低通FIR数字滤波器的截止频率ωc为0.2πrad, 窗口长度N为11。根据上述原理及实现方案, 若采用汉宁窗来实现, 则可依据算式计算出用汉宁窗设计时的各h (n) 的系数:

{h (n)} = {0, 0.0045, 0.0349, 0.0991, 0.1692,0.2, 0.1692, 0.0991,0.0349, 0.0045, 0}

在CCS2.0软件中观察x (n) 的输入曲线如图2所示, 图3所示是其y (n) 输出曲线。

由图2和图3两图对比可见, 经过滤波后, 其输入曲线变平滑了。并且, 根据计算所得:

{y (n)} = {0, -0.018, -0.1486, -0.4662, -0.893, -1.305, -1.7006, -2.1548, -2.6372, -3.0062, -3.1918, -3.3098, -3.5296, -3.8198,-4.009, -4.0482, -3.9514, -3.4596, -2.0672, 0.3162, 2.7908, 3.*8, 0.9464, -6.2018, -17.6736, -31.8884, -45.5584, -54.1796, -54.044, -44.916, -30.6*, -16.6756, -6.3676, 0.058,4.037, 6.5272, 7.5976, 7.318, 6.2854, 5.0906, 3.8896, 2.*2, 1.5078, 0.6238, 0.0788, -0.3198, -0.7348, -1.0768, -1.1474, -0.9538,-0.7342, -0.6852, -0.7*, -0.8172, -0.8136,-0.8834} 上面一共56个值。


图2 x (n) 输入曲线



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PFC控制电路IR1150S应用图解