原创 【博客大赛】自适应滤波教我做人

2018-5-26 00:21 4766 18 6 分类: FPGA/CPLD

最近准备参加电赛,校赛的要求是在2017年电赛国赛的题目中选择一个做。我看了题目,表示对自适应滤波比较感兴趣,正好之前也学习了解过一点信号处理的相关知识,就决定是自适应滤波了。

先说我结果吧,后天就是比赛开始了,但是我还是没有搞定问题,又面临着考试可能会挂科的压力,只能弃权了。

我觉得之所以会导致这个结果,跟我前期的规划失策是有一定原因的。

我将主要的精力全部放在LMS算法的实现上了;再着,FPGA对我来说是一个很大的挑战,因为之前从来没有用过,要在一个月内学会使用并做比赛,对我来说还是有着挺大的压力的;还有很重要的一点就是,我的心太大了,同时报了两个比赛,除了电赛还有另外一个科技创新的校内比赛,本以为很容易解决的,但是还是耽误了我很多时间,而且也是由于时间问题只能放弃。

这次的比赛除了让我意识到我的规划有问题外,也让我知道了,一个人的力量还是有限的。在没有参加比赛前,我还是自信心爆棚的,在网上看了些论文,自以为就没有问题了,就直接随便拉了两个人报名,然后全部工作由我一个人来做。事实证明,还是很难的,特别是做自己不熟悉的东西,更是难上加难;找文档、找论文都花了我超多时间,如果有队友的话,这些时间可以剩出很多来,甚至我的项目进度还可以以并行的方式前进。就拿这次的比赛来说,我需要一个信号叠加、一个信号移相、一个自适应滤波三大模块,正好电赛有三个名额,如果有队友的话,完全可以分成多个任务,大家一起完成,

断断续续做了差不多一个月的这个比赛,我就说说我除了教训,还获得了什么吧。

首先自然是学会了使用FPGA的一点皮毛,Quartus这个庞大的软件基本被我啃了下来,基本会操作了,很感动。因为软件资料真的不算多,特别是我使用的最新quartus 18版,我在官网看的有的资料甚至是几天前才出的,有的资料也还没有更新,真的挺难受的。我把我自己排的许多坑全部都写出来了,直面使用quartus遇到的问题使用ModelSim遇到的问题使用DSP Builder遇到的问题,这些很多都是我在网上没有搜到,然后在官方手册里找了很久才找到的,也算是我为广大群体做的一点小贡献吧。可能我之后还会写一些具体的操作教程,因为我也注意到了我使用的开发板Cyclone IV相关的教程比较缺乏,不好上手,就好像这次困住我的地方就是A/D转换方面的问题,等我解决了后就会发出来。

再者的话自然就是对信号处理有了更多的了解,了解到自适应滤波其实本质上也是一种基于统计学的方法,通过统计输入信号与期望信号之间的误差来调节滤波器的相关参数,自适应滤波分为自适应过程与滤波过程。我花了很多时间,但是也没有完全理解,最后终于在网上找到了一个解决方法,但是效果并不怎么好,是由两个七阶lms滤波器组成,但是却需要差不多8个周期才能收敛,而我在论文中看到的只需要两个周期,而且没有使用这么多资源。下面给张自适应滤波器的效果图吧。


再者的话,就是对数字信号有了更多的了解,一开始想着信号叠加和信号移相全部使用模拟电路做,但是后来了解到可以使用FPGA完成,就想使用数字电路来完成。可以说,这是导致我失败的一个很重要的原因,因为信号的移相需要使用到Direct digital synthesizer(DDS),这是什么?它可以从一个单一的频率源生成任意波形和频率。原本我的想法是通过ADC得到输入信号的波形和频率,然后将移相后的波形通过DDS生成,再通过DAC输出,但是FPGA还不太熟,怎么检测波形我还不会,就一直给卡在这里了...

总的来说,失败了也不错,只有挫折能让人保持清醒,而痛苦才能让我品尝到快乐。

文章评论5条评论)

登录后参与讨论

greedyhao 2018-5-29 18:34

eeNick: 博主加油
谢谢大哥

greedyhao 2018-5-29 18:33

qwqr3231: 也不是坏事,博主加油
谢谢大哥

指的是在下 2018-5-28 17:32

HAHA遭遇类似,我们也败在了CPLD用不熟

eeNick 2018-5-28 11:44

博主加油

qwqr3231 2018-5-28 11:23

也不是坏事,博主加油
相关推荐阅读
greedyhao 2019-03-17 09:03
uboot链接脚本分析
上一篇uboot主编译脚本分析的编译选项参数中提到了链接脚本这么个东西我也是写到这里才开始了解链接脚本(Linker command scripts),之前只是大概知道有这么一个东西先从参考资料中的内...
greedyhao 2018-11-28 08:49
51总线方式获取adc0809数值
最近单片机有一个实验挺有意思的,使用51单片机以总线的方式读取adc0809的数据先补充点关于单片机总线的预备知识,我一开始不了解总线的时候做这个实验也是很懵逼的。单片机的三总线结构​51单片机有三条...
greedyhao 2018-09-29 21:18
对Xil_Out32未定义的引用
第一次在HLS中遇见一个官方库函数未定义问题,这就把解决方法记录下来。在创建好工程,写完工程代码后,发现报错如下./src/led_controller_test_tut_4A.o:在函数‘main’...
greedyhao 2018-09-29 21:12
Vivado生成Bitstream失败的解决方法
跟着实验指导书,难得的又遇到问题了,在最后生成Bitstream的时候出错了,无法生成Bitstream。报错信息如下[DRC NSTD-1] Unspecified I/O Standard: 4 ...
greedyhao 2018-09-17 22:26
zybo初体验
前段时间过生日,亲戚给了些钱让我自己买生日礼物,早就想搞一块zynq的板了,但是淘宝一看太贵,于是去咸鱼上淘了一块二手的ZYBO(谁知道是不是二手,反正看着挺新)来玩玩。学习肯定是从官方资料开始的,T...
greedyhao 2018-09-13 10:53
运行c代码前发生了什么
众所周知,c代码也是一种比较高级的语言了,机器是没有办法直接运行的,机器所能理解的只有机器码--那一串0和1而已。虽然早就知道c代码是先经过编译链接最后才放在机器上执行,但是在这么一个过程中究竟发生了...
我要评论
5
18
关闭 站长推荐上一条 /2 下一条