Matlab+ModelSim“傻瓜化”设计数字滤波器
0.先上图 效果就是这样,上面是测试向量生成的输入波形,下面是滤波后的输出波形,可以看出阶越变成了过冲,而光标右侧的高频部分完全被滤除。事实上输入波形不是随意产生的,它们是三种常用的测试波形:step(阶跃),ramp(斜升),chirp(线性调频)。这张图是ModelSim的仿真结果,而滤波器的HDL源码和测试向量文件完全是Matlab生成。步骤如下:1.运行Matlab R2009a,打开Help->Demos,在目录中找到Toolboxes->Filter Design HDL Coder->HDL Butterworth Filter,然后按照说明一步步设计出一个巴特沃斯5阶低通滤波器,嫌麻烦的话可以点击这个地方直接运行实例代码。 2.在最后一步,会弹出Generate HDL对话框,这里面包含丰富的选项,可以选择语言VHDL还是Verilog HDL,目标路径等等,在More HDL Settings中还可以设置输入输出端口名称。 3.运行ModelSim,切换到上面设置的目标路径,建立工程,把Hd_copy.v和Hd_copy_tb.v两个文件添加进工程,编译这两个文件,然后对把编译好的Hd_copy_tb载入,最后添加信号,运行仿真,在Wave窗口中可以观察到波形。(详情参考ModelSim Tutorial Chapter 3,4)当然filter_in和filter_out这两个信号需要改变一下显示格式,才能看见模拟波形。如下图: |