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等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。
江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!