第3 节 FIR 数字滤波器设计

上传人:xins****2008 文档编号:111123677 上传时间:2019-11-01 格式:DOCX 页数:10 大小:472.09KB
返回 下载 相关 举报
第3 节 FIR 数字滤波器设计_第1页
第1页 / 共10页
第3 节 FIR 数字滤波器设计_第2页
第2页 / 共10页
第3 节 FIR 数字滤波器设计_第3页
第3页 / 共10页
第3 节 FIR 数字滤波器设计_第4页
第4页 / 共10页
第3 节 FIR 数字滤波器设计_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《第3 节 FIR 数字滤波器设计》由会员分享,可在线阅读,更多相关《第3 节 FIR 数字滤波器设计(10页珍藏版)》请在金锄头文库上搜索。

1、FIR 滤波器 应用 Matlab/DSP Builder可以对多种类型的电子线路模块和系统进行建模、仿真和硬件 实现。使用Matlab/DSP Builder进行 DSP 开发可以快速、高效地完成从算法模型的验证到硬 件实现的完整的流程。最终在 FPGA 中的硬件实现可以独立地成为一个功能模块,也可以成为 SOPC 系统的一个组成部分, 成为 Nios II嵌入式系统的自定制指令或者硬件加速模块。FIR(Finite Impulse Response,有限冲激响应)滤波器在数字通信系统中有广泛的应用,如低通滤波、通带选择、抗混叠、抽取和内插等。DSP Builder 中 FIR 滤波器可以使

2、用 FIR的 Megacore,即 FIR 的 IP 来设计,也可以使用模块来自己构建,重点介绍基于 FIR 的 IP来设计 FIR 滤波器的方法。 5.4.1 FIR 滤波器原理 在这个滤波器中,存在 3 个延时单元,4 个乘法器,一个 4 输入的加法器。如果采用数字信号处理器,如 TI或 AD公司的 DSP Processor来实现,只能用串行的方式顺序地执行延时、乘加操作,要用多个指令周期才能完成。采用 FPGA 来实现,则是并行的运算,在一个时钟周期就能得到 FIR 滤波器的输出。 5.4.2 16阶 FIR 滤波器的设计 对于直接 I 型的 16 阶或更高阶的 FIR 滤波器通常低阶

3、的滤波器节进行级联而构成。这里设计一个 4 阶 FIR 滤波器节,然后通过将其级联来构成 16 阶的 FIR 滤波器。直接 I 型 4 阶 FIR 滤波器节的结构如图 5-43 所示,可以看到,其结构相对于上图的 3 阶 FIR 滤波器是在输入信号插入了一个延时单元,从而将 3 阶滤波器编程 4 阶的,但 h(0)的值为 0。将 h(0) 的值设成零,目的是为了在组成高阶的 FIR 滤波器时,进行滤波器节的级联。 由于浮点小数在 FPGA 中实现比较困难,需要很多的资源。这里采用定点计算,为了省去小数点定标,使用整数运算来实现,如同 5.2 节正弦波发生器的情况一样,正弦查找表存储的是整数值。

4、 为了使滤波器参数可变,将 FIR 滤波器系数 h(1)、h(2)、h(3)和 h(4)也作为输入端口。图 5-44 为直接 I 型4 阶FIR 滤波器在 Simulink中的模型。 图 5-44 中的各模块的参数设置如下: xn、h1、h2、h3、h4 模块:Altbus 库:Altera DSP Builder中的 IO & Bus子库 Bus Type:Signed Integer Node Type:Input Port Number of bits:9 yn 模块:Altbus 库:Altera DSP Builder中的 IO & Bus子库 Bus Type:Signed Int

5、eger Node Type:Output Port Number of bits:20 xn4 模块:Altbus 库:Altera DSP Builder中的 IO & Bus子库 Bus Type:Signed Integer Node Type:Output Port Number of bits:9 Parallel Adder Subtractor模块:Parallel Adder Subtractor 库:Altera DSP Builder中的 Arithmetic 子库 Add(+)Sub(-):+ Pipeline:选中 Clock Phase Selection:1 De

6、lay、Delay1、Delay2 和 Delay3 模块:Delay 库:Altera DSP Builder中的 Storage 子库 Depth:1 Clock Phase Selection:1 Product、Product1、Product2和 Product3 模块:Product 库:Altera DSP Builder中的 Storage 子库 Pipeline:0 Clock Phase Selection:1 Use LPM:不选中 利用直接I型4阶的FIR滤波器节可以方便地构成4n阶的直接I型FIR滤波器 (h (0)=0) 。这里利用 4 个4 阶直接 I型的 FIR

7、 滤波器来构建一个 16阶的直接 I型 FIR 滤波器。为了设计的方便,将上面设计的 4 阶 FIR 滤波器生成一个子系统,双击即可打开生成的子系统,生成的子系统相对于上面的模型文件只是多了 5个输入端口和两个输出端口,如图 5-45 所示,对端口名进行修改,把子系统更名为 fir4tap,如图 5-46所示。 在 Simulink中新建一个模型,设计一个 16 阶的 FIR 滤波器需要级联 4 个4 阶 FIR 滤波器,为此复制 4 个 fir4tap 子系统,并将它们级联起来,前一级的输出端口 x4 接后一级的 x输入端口,添加 16 个常数端口,作为 FIR 滤波器系数的输入。把 4 个

8、子系统的输出端口 y接入一个 4输入端口的加法器,加法器的输出为 16 阶 FIR滤波器的输出 yout。 图 5-47 16 阶直接 I型 FIR 滤波器模型中,新增加的模块的参数如下: xn 模块:Altbus 库:Altera DSP Builder中的 IO & Bus子库 Bus Type:Signed Integer Node Type:Input Port Number of bits:9 yout 模块:Altbus 库:Altera DSP Builder中的 IO & Bus子库 Bus Type:Signed Integer Node Type:Output Port N

9、umber of bits:20 x16 模块:Altbus 库:Altera DSP Builder中的 IO & Bus子库 Bus Type:Signed Integer Node Type:Output Port Number of bits:9 Parallel Adder Subtractor模块:Parallel Adder Subtractor 库:Altera DSP Builder中的 Arithmetic 子库 Add(+)Sub(-):+ Pipeline:选中 Clock Phase Selection:1 h1h16 模块:constant 库:Altera DSP

10、 Builder中的 IO & Bus子库 Bus Type:Signed Integer Number of bits:9 在图 5-47 中对 h1h16 的值都设成了 0,滤波器的系数应该是根据具体的应用的要求来计算和确定的。 5.4.3 使用 Matlab 的滤波器设计工具进行滤波器系数的计算 滤波器的系数计算可以使用 Matlab 的滤波器设计工具 FDATool 来计算。FDATool 即为Filter Design & Analysis Tool,可以完成多种滤波器的设计、分析和性能评估。假设要设计一个截止频率为 10.8KHz 的低通滤波器,采样频率为 48KHz。使用 FDA

11、TOOL 进行滤波器设计的步骤如下: (1)启动 Matlab 的 FDATOOL。单击 Matlab 窗口下方的 Start 按钮,然后 ToolboxesFilter DesignFilter Design & Analysis Tool,即可启动 FDATool。也可以在 Matlab 的命令窗口中执行 fdatool 来启动 FDATool。FDATool启动后出现如图 5-48 所示的窗口。 (2) 滤波器我设计。启动 FDATool 后的界面就是滤波器的设计界面,如图 5-48,要从其它的界面进入滤波器的设计界面可以单击 FDATool 窗口左下侧的一列工具按钮中的最下一个图标 f

12、ilter design,即可进入滤波器设计界面。在该界面中进行滤波器的设计,首先选择 Response Type(响应类型)为 Lowpass(低通) ,然后选择 Design Method(设计方法)为 FIR(有限冲激相应) ,在 FIR 的下拉窗口中选择 window(窗口法) ,Filter Order(滤波器阶数)指定为 15,window 选为 Keiser,Beta值为 0.5,Fs(采样频率)为 46KHz,Fc(截止频率)为 10.8KHz。 这里要注意的是,滤波器的阶数是 15 而非 16,是因为设计的 16 阶 FIR 滤波器的滤波器系数 h(0)等于 0,从结构上,可

13、以看成一个 15 阶的 FIR 滤波器前面加了一个延时单元。从系统函数来看,系统函数可以写成 可看成是,输入延时了一个单元进入了 15 阶的滤波器或是滤波器的输出再经过一个延时单元。 (3)滤波器设计和性能分析。进行完上面的设置后,点击 Design Filter按钮(图 5-48底部正中) ,FDATool 根据用户的设置进行滤波器的设计,得到滤波器的系数。在设计完成之后可以对滤波器进行性能的分析,考察是否满足设计要求。 FDATool 可以进行多种性能分析,这里介绍几种主要的分析。 1.幅频响应(Magnitude Response) 选择 Analysis 菜单Magnitude Res

14、ponse,即启动了幅频响应分析。图 5-49显示的是滤波器的幅频响应曲线,横轴为频率,单位为 KHz,纵轴为幅度,单位为 dB。 2. 相频响应(Phase Response) 选择 Analysis 菜单Phase Response,即启动了相频响应分析。图 5-50 显示的即为滤波器的相频响应曲线。可以看到在通带内,相位的响应是线性的,即该滤波器是是一个线性相位滤波器。 3. 相幅联合分析(Magnitude & Phase Responses) 通常要对幅度和相位进行同时的考察,采用相幅联合分析,选择 Analysis 菜单 Magnitude & Phase Response,即可启动相幅联合分析。图 5-51 显示的即为滤波器的相幅 联合响应曲线。 4. 冲激响应(Impulse Response) 选择 Analysis 菜单Impulse Response,即启动了阶跃响应分析。图 5-52即为滤波器的冲激响应曲线。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号