1 Star 4 Fork 0

TnTsukasa / 自适应滤波器

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

自适应滤波器

介绍

verilog下的可变字长,32阶自适应滤波器

内容基础

基于LMS算法和FIR滤波器,进行自适应滤波。详细内容参考,裴师兄研究生毕业论文。

基础模块

模块名 功能
IS_reg 输入信号移位寄存
forward_filter fir滤波器
error_compute 计算期望值和实际值的误差
backfoward_coe_upgrade 依据lms算法的权重更新
  • IS_reg

    输入信号寄存器由32个相同字长的寄存器连接构成,这些结果将由backforward_coe_upgrade用来更新权重,forward_filter模块用来进行滤波

  • foward_filter

    包含乘法器阵列模块(mult_array)和并行压缩模块(parallel_compressor)。以上两个模块作为近似自适应滤波的处理重点,目前只完成了基本的框架搭建,后续使用近似的方法优化

  • error_compute

    依据期望值和实际输出计算误差,返回值存在缩减,因为输出值的位宽和期望值不同。

  • backforward_coe_upgrade

    由coe_upgrade单元构成,基于每一个IS输入,期望误差和上一次权重计算出下一个权重。

  • error_compute

    裴哥定标理解在这个模块里,因为实际输出值是37位,但是之后需要使用乘法器运算,它的位宽需要是16,需要约化。由于信号幅值都是1,它们被扩展到16位时(补码),相当于前两位整数加上后14位小数,表示从-1到+1,而乘法运算的结果也应该再-1到+1之间,因为他是32个值相加,每一位乘法器输出的绝对值小于1,所以它的绝对值小于32位,整数部分需要用6位整数描述。但是,因为期望的输出值(归一化为16位)是两个幅值为1的信号叠加,它的幅值为2,也可以表示为2位整数和14位小数,所以实际输出的范围也应该是-2到2,所以也可以是2位整数和14位小数表示。这里14位小数取小数点之后的前14个,整数部分取第0位和之前任意一位。(整数的0位表示大小,前面的都应该是相同的符号位拓展,所以无所谓)

空文件

简介

verilog下的自适应滤波器 展开 收起
Verilog 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Verilog
1
https://gitee.com/tntsukasa/adaptive-filter.git
git@gitee.com:tntsukasa/adaptive-filter.git
tntsukasa
adaptive-filter
自适应滤波器
master

搜索帮助