FIR 滤波器的优化(1)结构优化

1.基本结构

(1) 单个乘累加(MAC)结构(Multiply-Accumulate)

用单个乘累加器引擎实现的基于 MAC 的 FIR滤波器的简化视图:

可以将单个 MAC 实现扩展到多个 MAC,可以实现更高性能的滤波器,例如支持更多滤波器系数、更高采样速率以及更多通道等。 FIR滤波器 IP核支持两种 MAC 架构实现:Systolic filter structure(SMAC) and Transpose filter structure(TMAC)。下面将分别介绍两种结构

 

(2) Systolic Multiply-Accumulate(SMAC)

对比传统流水线型FIR和基于SMAC的FIR可知,后者增加了一级延时;支持用DSP直接实现高性能的FIR滤波器;

图3-10是一个多MAC实现的SMAC滤波器:

 

 (3)Transpose Multiply-Accumulate(TMAC)

 

YMAC提供低延迟实现,并且对于某些配置还可以比Systolic结构节省额外的资源。尽管它不利用系数对称性,但是它不需要累加器,并且可以使用更少的数据存储器资源。 

2.滤波器结构的优化

(1)滤波器系数的对称性

按照图1-1的方法,这种传统抽头延迟线FIR滤波器实现方式需要N次乘法和N-1次加法 ;

而图3-14这种高效的实现方式只需要[N/2]乘法和大约N个加法 ;

偶数个系数的情况,直接给出高效结构:

负对称滤波器的脉冲响应,奇数个系数的情况:

 

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于引用中介绍的加权切比雪夫最佳逼近准则优化设计方法,可以使用遗传算法来设计一给FIR滤波器。具体步骤如下: 1. 确定滤波器的技术指标,例如通带截止频率、阻带截止频率、通带最大衰减等。 2. 确定滤波器结构,例如低通、高通、带通或带阻等。 3. 确定滤波器的单位冲激响应h(n)的长度N。 4. 将h(n)的系数作为遗传算法的染色体,每个系数作为染色体的一个基因。 5. 设计适应度函数,即根据滤波器的技术指标计算出滤波器的适应度值,作为遗传算法的评价标准。 6. 设计交叉、变异等遗传算法的操作,对染色体进行优化。 7. 迭代运行遗传算法,直到满足设计要求为止。 8. 利用MATLAB仿真程序验证滤波器的性能。 以下是一个简单的MATLAB代码示例,用于实现基于加权切比雪夫最佳逼近准则的FIR滤波器设计: ```matlab % 确定滤波器的技术指标 wp = 0.2*pi; % 通带截止频率 ws = 0.3*pi; % 阻带截止频率 Rp = 1; % 通带最大衰减 As = 15; % 阻带最小衰减 % 确定滤波器结构 N = 50; % 单位冲激响应h(n)的长度 h = zeros(1,N+1); % 设计适应度函数 f = @(x) 1/(1+sum((x.^2).*(W.^2))); % 设计交叉、变异等遗传算法的操作 crossoverFcn = @crossoverarithmetic; mutationFcn = @mutationuniform; % 迭代运行遗传算法 options = optimoptions('ga','PopulationSize',100,'MaxGenerations',100); x = ga(f,N,[],[],[],[],[],[],[],options); % 利用MATLAB仿真程序验证滤波器的性能 Wp = 1; % 通带权重 Ws = (ws-wp)/(pi/2-wp); % 阻带权重 W = [Wp Ws]; % 权重向量 b = fir1(N,wp/pi,hann(N+1)); % FIR滤波器系数 freqz(b,1,1024); % 绘制滤波器的幅频特性曲线 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值