FPGA项目开发:基于FIR滤波器的带限白噪声的设计

2021-04-16 17:49:10 浏览数 (1)

FPGA项目开发:基于FIR滤波器的带限白噪声的设计

大侠好,最近本媛比较忙,没有时间更新。时间太长,怕大家忘了我,今天我来了,今天由“82年的程序媛”本媛给大侠带来基于FIR滤波器的带限白噪声的设计,后续本媛还会继续更新产品项目开发心得,学习心得等,欢迎大家持续关注,话不多说,上货。

一、 高斯白噪声

高斯噪声:是一种随机噪声,其时域内的信号幅度的统计规律服从高斯分布。

白噪声:信号的功率谱在整个频域内为常数的噪声。

带限白噪声:带宽限制在一定范围内的高斯白噪声。

二、 产生方法

传统的高斯白噪声的产生是将多个m序列通过D/A转换器,然后通过滤波器得到,比较繁琐。本项目将通过线性反馈移位寄存器和FIR滤波器完成。

首先通过matlab中wgn函数生成高斯白噪声,并将生成的噪声数据存入到rom中,然后通过LFSR产生m序列伪随机码作为rom地址对噪声数据进行读取增加其随机性,最后将输出的随机噪声通过FIR滤波器得到带限白噪声。

三、 线性反馈移位寄存器(LFSR)

伪随机码的性能指标直接影响产生白噪声的随机性。本设计采用xilinx提供的LFSR IP核来实现。

LFSR可以通过如图方式进行配置,可选择输出的数据类型、位宽、小数位等。

本设计选择数据类型为UFIX_32_4,然后再通过convert对其进行截位,得到UFIX_10_0的数据输出作为ROM地址,再一次提高了随机性。

四、 FIR滤波器系数重载

该部分滤波器的设计选择Use Reloadable Coefficients模式,接收系统发送的滤波器系数,产生可变带宽的带限噪声信号。

使用可重新加载的滤波器系数时,需将内部系数设置成相同长度的0,然后借助FDATools设计并导出滤波器系数。

本设计中低通FIR滤波器使用等波纹法设计、128阶,250M采样率、通带频率10M、截止频率20M。

设计完成后可通过下图操作将系数生成.m文件,然后就可以作为重载系数输入到滤波器中了。

滤波器设置成系数重载模式时,需控制的接口如下图;

其中data_tdata_real即为输入的数据,reload_tdata_data为输入的系数。

其接口时序图如下图所示:

按照时序要求配置FIR滤波器:

然后对输出数据的位宽和类型进行调整得到结果。

最后得到的带宽为10M的带限白噪声:

今天本媛就说到这里,后续继续和大侠一起分享,欢迎关注貌美如花的“82年的程序媛”本媛,江湖偌大,继续闯荡,加油!

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!

0 人点赞