Matlab+ModelSim“傻瓜化”设计数字滤波器

Matlab+ModelSim“傻瓜化”设计数字滤波器

         0.先上图
        9189b0639b6eb1330d33fa7b.jpg

        效果就是这样,上面是测试向量生成的输入波形,下面是滤波后的输出波形,可以看出阶越变成了过冲,而光标右侧的高频部分完全被滤除。事实上输入波形不是随意产生的,它们是三种常用的测试波形:step(阶跃),ramp(斜升),chirp(线性调频)。这张图是ModelSim的仿真结果,而滤波器的HDL源码和测试向量文件完全是Matlab生成。步骤如下:

         1.运行Matlab R2009a,打开Help->Demos,在目录中找到Toolboxes->Filter Design HDL Coder->HDL Butterworth Filter,然后按照说明一步步设计出一个巴特沃斯5阶低通滤波器,嫌麻烦的话可以点击这个地方5d0b9c10b8570faec2ce797c.jpg直接运行实例代码。

       2.在最后一步,会弹出Generate HDL对话框,这里面包含丰富的选项,可以选择语言VHDL还是Verilog HDL,目标路径等等,在More HDL Settings中还可以设置输入输出端口名称。

6c96b6223d3de7f64723e82f.jpg

        3.运行ModelSim,切换到上面设置的目标路径,建立工程,把Hd_copy.v和Hd_copy_tb.v两个文件添加进工程,编译这两个文件,然后对把编译好的Hd_copy_tb载入,最后添加信号,运行仿真,在Wave窗口中可以观察到波形。(详情参考ModelSim Tutorial Chapter 3,4)当然filter_in和filter_out这两个信号需要改变一下显示格式,才能看见模拟波形。如下图:

8ec47634fe4f75e5d1a2d3c5.jpg

转载于:https://www.cnblogs.com/tureno/articles/2215064.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
并行FIR滤波器是一种在数字信号处理中常用的滤波器结构。在Matlab中,可以使用filter函数实现该滤波器的仿真。首先,需要定义滤波器的系数向量h和输入信号向量x。然后,使用filter函数进行滤波操作,将输入信号x和滤波器系数h作为参数输入,得到滤波后的输出信号y。对于并行FIR滤波器,可以将输入信号分为多个并行路径,每个路径都采用相同的滤波器系数进行滤波操作,最后将并行路径的输出信号加权求和得到最终的输出信号。 在Matlab中,可以通过创建多个滤波器对象并将其并联,分别对不同的并行路径进行滤波操作。然后,将各个并行路径的输出信号通过加权求和得到最终的输出信号。在该过程中,可以通过改变滤波器系数的数值和结构,观察输出信号的变,从而分析并行FIR滤波器的性能。 在ModelSim中,可以使用HDL语言(如VHDL或Verilog)进行并行FIR滤波器的仿真。首先,需要使用HDL语言描述并行FIR滤波器的结构和行为。然后,将该HDL代码编译为可执行文件,并将输入信号和滤波器系数作为仿真的输入。最后,通过观察仿真的输出结果,分析并行FIR滤波器的性能。在仿真过程中,可以改变滤波器系数的数值和结构,观察其对输出信号的影响。 无论是在Matlab中还是在ModelSim中进行并行FIR滤波器的仿真,都需要根据实际需求和滤波器的性能指标,选择合适的滤波器设计方法和参数,以达到预期的滤波效果。同时,还可以通过对比不同滤波器结构和算法的仿真结果,选择最优的滤波器方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值