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

本文介绍如何使用Matlab与ModelSim进行数字滤波器的设计及验证过程。通过Matlab设计巴特沃斯低通滤波器,并自动生成HDL代码,再利用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值