独立成分分析(Independent Component Analysis,ICA)是信号处理、机器学习中的经典算法,应用范围广泛。
虽然ICA在算法设计和软件实现层面得到了广泛深入的研究,但是其在硬件实现方面的参考资料较少。尤其是,如何基于FPGA的硬件资源实现ICA,这方面的参考资料更少。
从今年(2021年)春季学期开学到6月份,我指导2017级电子信息工程专业陶同学开展毕业设计,选题为:基于FPGA的ICA实现。
毕设开始时,我们能从参考资料中找到基于Verilog的ICA实现方法,但是这些参考资料仅涉及算法实现。基于这些参考资料,我对陶同学提出了进一步的三点要求:(1)要综合流水线等体系结构技术,重新组织和编写实用性更强ICA的Verilog脚本;(2)要实现在FPGA上的部署;(3)要接上混合信号输入,用示波器观察分离信号输出。
上述三点要求,看似简单,但几乎查不到紧密相关的参考资料。这给陶同学的毕业设计增加了很大的难度。然而,陶同学凭着一股韧劲,不断思考、尝试、查阅、询问、总结,最终实现了我提出的目标,完整地完成了毕业设计的内容。这其中,还要感谢我的2018级电子与通信工程专业硕士生岳同学给与的有价值的建议和帮助。
陶同学完成毕业论文后,我鼓励他将毕业设计过程中的技术要点总结成博文,分享给大家。他的博文如下:
https://blog.csdn.net/Super_goudan/article/details/118513510?spm=1001.2014.3001.5501
https://blog.csdn.net/Super_goudan/article/details/118757842?spm=1001.2014.3001.5501
https://blog.csdn.net/Super_goudan/article/details/118758190?spm=1001.2014.3001.5501
https://blog.csdn.net/Super_goudan/article/details/118793693?spm=1001.2014.3001.5501
https://blog.csdn.net/Super_goudan/article/details/118941171?spm=1001.2014.3001.5501