论文部分内容阅读
盲源分离(Blind Source Separation,BSS)是信号处理领域于20世纪90年代初发展起来的一个活跃分支,其特有优势在于能在各源信号和传输通道参数均未知的情况下,仅仅利用源信号的多个混合信号,就能够恢复源信号的各个独立成分。BSS以其特有优势很快成为信号处理领域的一个研究热点,并已广泛应用在无线通信、生物医学、语音和图像处理等许多领域。 信息最大化算法(Information Maximization,Infomax)是Bell和Sejnowski基于Linskers的信息最大化理论提出的一种著名BSS方法。该算法在分离混和语音等超高斯信号方面,性能明显优于其他BSS算法,适于在通信、多媒体、语音识别等系统中进行高质量的语音处理。但是,Infomax算法计算量较大,分离速度达不到实时性要求。 针对Infomax算法的实时性问题,本文给出了基于FPGA(Field Programmable Gate Array)实现该算法的硬件解决方案。主要工作如下:(1)深入分析了Infomax算法的原理和功能,采用模块化设计方法将该算法分为输入模块、矩阵乘模块、判断模块、权值调整模块和输出模块等五大模块。(2)对各个模块分别进行了FPGA设计。由于权值调整是Infomax算法实现的核心,因此重点设计了权值调整模块,并采用基于ROM的查找表法实现了Infomax算法中的非线性函数。(3)设计了信息最大化算法中所应用的矩阵乘法运算模块,给出了串行、并行和串并结合三种结构设计方案。通过在MAX+PLUSⅡ编程环境中分析和比较三种结构占用的硬件资源,最终确定了整个算法的实现流程。(4)依据自定义定点数格式,对整个算法进行了设计。完成了其中各子模块及整个算法的设计和仿真,并对仿真结果进行了分析。(5)基于18位自定义浮点数格式给出了改进的乘法器、除法器、加法器和比较器,并在此基础上利用已有的算法结构实现了浮点算法。