在许多数字系统中都使用信号滤波技术来消除噪声、频谱整形或信号检测与分析。FIR是最常用的一种滤波器,使用Altera IP核可以快速的生成符合设计要求的FIR滤波器。
首先,打开FIR IP核,在此之前,要确保你的license已经完全破解。
![](https://img.haomeiwen.com/i1960386/1b18e6bb77837d61.png)
根据下表设置你的FIR滤波器,着重考虑输入数据类型、位宽和输出数据类型和位宽和具体的阶数、截止频率和采样频率,采样时钟要满足奈奎斯特准则,且为了简化设计,前级AD,FIR,和后级DA三者的时钟尽量匹配。
![](https://img.haomeiwen.com/i1960386/7b9e167de41f0fe6.png)
在这里,我设计了一个63阶、截止频率为5Mhz的低通滤波器。
![](https://img.haomeiwen.com/i1960386/cc534e32697ebe8a.png)
生成代码,如下:
fir FIR_inst( --元件调用
.clk(dac_clk), --时钟
.reset_n(1'b1), —高电平,(低电平有效)
.ast_sink_data(firin), —数据输入
.ast_sink_valid(1'b1), --高电平
.ast_source_ready(1'b1), --高电平
.ast_sink_error(2'd0), --“00”
.ast_source_data(fildata), --输出数据
.ast_sink_ready( ),
.ast_source_valid( ),
.ast_source_error( )
);
测试的话,可以用NCO生成两个不同频率的正弦波进行叠加,然后用FIR低通滤波器将高频信号滤除,在此不再做详细介绍。经过我的验证,使用IP核生成的FIR效果还是可以的,但是因为输出位宽的限制和DAC的位宽固定,导致幅值出现了一定的变化,但不影响实际的使用,后级接运算放大器即可解决。
网友评论