在通信或者信号处理中,数字滤波器是非常重要的模块,前面有关博文中提到FIR滤波器的一步步Verilog设计,如https://ee.ac.cn/index.php/archives/511.html
本文以带通滤波器为例,利用Matlab进行高效开发
MATLAB生成低通滤波器设计步骤:
(1)在MATLAB命令窗口中输入“filterDesigner”或“fdatool”出现如下对话框
设置FIR滤波器为和需要的阶数滤波器,选择窗函数的类型为海明窗函数,海明窗函数可以得到旁瓣更小的效果,能量更加集中在主瓣中
设置带通滤波器的上下截至频率分别为4MHz 和 5MHz
(2)量化输入输出,点击工作栏左边的量化选项,即“set quantization parameters”选项,选择定点,设置输入字长为8,其他选择默认,如下图示:
(3)根据自己需求,细化一些配置。这里不难探索
设置完成后,点击Targets中Generate HDL,选择生成Verilog 代码,设置路径,MATLAB即可生成设计好的滤波器Verilog HDL 代码以及测试文件:
(4)根据需求,配置输出.v文件的全局信号、测试文件,点击生成,生成后,Matlab主页面会提示.v生成的文件路径
Modelsim仿真上述文件
可以看到输入信号在4MHZ~5MHZ备保留,设计无误。需要注意一点,一般Modelsim仿真输出波形都是离散的01信号,这里需要配置一下,在上图被选中的信号中,在左侧右键鼠标。
右击,format,analog(automatic);
右击,radix,decimal;
这两个步骤完成之后,就出现上图模拟信号的效果
评论 (0)