APP下载

基于MATLAB和FPGA结合的自适应算法实验教学案例设计

2025-03-07李迎松付泳琳李莉萍苗永春

科教导刊 2025年3期
关键词:Matlab仿真

摘 要 为了更好地将电子信息类理论课程与工程应用结合,提升学生学以致用的能力,文章开发了基于经典自适应滤波最小均方误差(LMS:Least Mean Square)算法的MATLAB和FPGA一体化硬件仿真实验教学案例。利用MATLAB软件对自适应滤波算法进行编程设计,并借助Quartus Ⅱ来实现LMS算法的测试。该自适应滤波算法实验教学案例对于初学者来说通俗易懂,不仅有利于加深学生对自适应滤波理论和信号处理的理解,还可以提高学生自主进行项目开发和学以致用能力,以及解决复杂工程问题的能力。

关键词 自适应滤波;MATLAB仿真;LMS算法;FPGA

中图分类号:G424 " " " " " " " " " " " " " " 文献标识码:A " " DOI:10.16400/j.cnki.kjdk.2025.03.004

Adaptive Algorithm Experimental Teaching Case Design Based on the

Combination of MATLAB and FPGA

LI Yingsong, FU Yonglin, LI Liping, MIAO Yongchun

(School of Electronics and Information Engineering, Anhui University, Hefei, Anhui 230601)

Abstract In order to better combine electronic information theory courses with engineering applications and improve students' ability to apply what they have learned, this article developed an Software-Hardware simulation experimental teaching case for classic adaptive filtering least mean square (LMS) algorithm using MATLAB and FPGA. MATLAB is to program and design the adaptive filtering algorithm, and Quartus Ⅱ is used to implement the simulation test of the LMS algorithm. This adaptive filtering algorithm experimental teaching case is easy to understand for beginners. It not only helps deepen students' understanding of adaptive filtering theory and signal processing, but also improves students' independent project development and ability to apply what they have learned for solving complex projects.

Keywords adaptive filtering; MATLAB simulation; LMS algorithm; FPGA

随着信息与通信技术的发展,数字通信成为目前主要的通信方式,也成为通信发展的主要方向,涉及移动通信、卫星通信、物联网、车联网和通感一体化方向。然而,作为数字通信的关键技术,数字信号处理在数字通信领域具有重要的作用。数字信号处理(Digital Signal Processing,DSP)是指利用数字计算机对模拟信号进行采样、量化、编码、处理和再生等一系列操作的技术,其广泛应用于通信、媒体、医疗、雷达、导航、噪声抑制和控制系统等领域。近年来,数字信号处理(DSP)已经发展成为一项成熟的技术[1-3],逐步从仿真走向工业应用。

自适应滤波器在数字信号处理中起着重要的作用,可以应用于多种场景,例如信道估计、均衡、系统识别、波束赋形和波达方向估计、去除噪声、增强信号、回声消除和提高信噪比等。它根据输入信号的特性和预设的目标函数动态地调整滤波器的参数,以更准确地反映输入信号的信息。常用的自适应滤波器算法包括最小均方误差(Least Mean Square,LMS)算法、递归最小二乘(Recursive Least Squares,RLS)算法、仿射投影算法(Affine projection Algorithm, APA)等。自适应滤波器在数字信号处理、数字通信和雷达系统中扮演着重要角色,可以有效地处理数字信号,并提升信号的质量。

对于学生而言,学习并理解自适应信号处理的原理并不太难,但面临将知识进行实际应用时,学生却无法将所学知识应用到实际工程实践中以解决复杂工程问题,导致学习效果不佳。在这种情况下,MATLAB作为一种算法开发语言,具有编程简单、易于掌握的特点,可以将自适应信号处理理论的数学问题和公式转化为程序代码,有助于学生掌握自适应信号处理的基本理论并在实际工程中进行应用。此外,MATLAB还是一款功能强大且广泛应用于工程和科学领域的软件,其提供了丰富的工具箱和函数,使得数字信号处理变得简单易学,学生可以通过图像和图形的方式可以迅速理解信号的变化。通过MATLAB,学生可以快速上手并深入理解数字信号处理的概念和技术,将信号处理的理论和方法与实际应用结合。同时,在电子信息类课程中还有很多关于现场可编程逻辑门阵列(Field Programmable Gate Array, FPGA)的相关学习,以实现硬件工程的设计。但是将这两门课程结合并应用于实际工程实践时,却缺少相关的实践教学案例,导致学生学习效果很差,很难将理论知识和工程应用结合[4-5]。

在新工科建设、双一流建设、工程认证的驱动下许多高校开始积极探索工程教育的创新路径[6-7]。特别是以产出为中心的工程认证,促使学校积极推进课程改革和学科建设,形成了“以改促建、以建促学”的良好局面。这一系列的改革举措旨在为学生提供更广阔的学习空间,使他们能够更好地将理论知识与实践技能相结合,实现课堂基础理论学习与专业知识应用的紧密结合,为未来的就业和创新创业奠定坚实的基础。本文结合MATLAB和FPGA开发了基于经典的自适应滤波最小均方误差(LMS:Least Mean Square)算法的软硬件仿真实验教学案例,使学生深入理解自适应滤波理论,掌握编程技巧和实际应用,实现从算法理论计算到软硬件编程实现的全过程教学,为学生的全过程学习构建抽象理论与实践应用之间的桥梁。首先,学习LMS的基本原理;其次,基于LMS的工作原理和迭代函数,使用MATLAB编写LMS算法的程序代码,并对LMS的学习性能进行仿真测试分析;再次,利用QuartusⅡ和ModelSim进行联合仿真;最后,以图形的形式向学生展示LMS的工作原理,并对结果进行分析。

1" 实验设计与实现

随着在线监测和自适应学习技术的需求,信号处理技术的重要性日益凸显,其在通信、音视频处理、雷达信号处理、车联网、低空经济等众多国防重大工程和区域经济发展领域可确保信息传输的实时高效,数字滤波技术作为自适应信号处理技术的重要组成部分,其应用广泛且关重要。为了使学生能够掌握自适应滤波算法理论、滤波器设计及其应用,本实验教学案例基于经典自适应滤波算法中的最小均方(LMS)算法,采用MATLAB和FPGA结合的形式实现自适应滤波算法的编程设计和硬件联合仿真设计,链接LMS算法理论和其工程应用,使学生懂算法、学编程、会应用。

在教学过程中,学生首先应通过数字信号处理课程的学习,深入理解信号处理中自适应滤波的核心概念、典型算法、数学推导,并培养学生运用MATLAB进行算法编程实现,掌握信号分析和处理的技能。同时,教学过程中还复习了Verilog" HDL语言课程和FPGA的仿真,有利于学生掌握模块实例化理论与实践,并结合QuartusⅡ和ModelSim仿真软件深入了解算法的应用与实现。最后,通过MATLAB算法编程分析和仿真来调试和验证设计的正确性。

在MATLAB中实现LMS算法时,首先需要构建算法的基础框架,定义关键变量和初始化参数。接着,利用MATLAB内置的信号处理函数和LMS算法的迭代公式,编写权重更新和误差计算的核心代码。通过输入语音信号对LMS算法进行测试,验证其正确性和LMS的性能,并以图形的形式直观显示仿真结果。

在完成MATLAB中LMS算法模型的设计与参数设定后,下一步是使用Quartus" II和ModelSim软件进行硬件联合仿真以验证LMS算法的性能。根据硬件描述语言Verilog" HDL与之前定义的参数和性能指标进行编码实现。最后,创建Testbench激励文件来进行仿真测试,以评估LMS算法在硬件上的性能和准确性。学生可以基于仿真结果对算法进行必要的调整和优化,以满足特定应用的要求,并掌握参数对LMS算法的影响,为未来自适应信号的应用奠定基础。

2" 实验原理与教学方法

2.1" LMS算法原理

LMS算法是一种自适应滤波技术,它融合了Wiener滤波器的实现便捷性和Kalman滤波器的高效性,同时克服了它们的局限。该算法通过迭代调整滤波器系数来最小化输出误差,适用于实时信号处理,同时因其计算效率高、适应性强以及复杂度低等特点而受到广泛青睐。其核心机制是基于误差信号来递进更新滤波器系数,以期达到最佳的滤波效果。这种递推的过程使得LMS算法在实时应用中具有较高的效率和灵活性。LMS算法的原理框图如图1所示。根据自适应滤波理论,结合图1,LMS算法的工作机理描述如下:

上式u中为输入信号,为参考信号,有时也叫期望信号。根据不同的应用场景,参考信号既可以是有效信号(信号增强),也可以是噪声信号(去噪),还可以是无线通信信道和阵列权值;为估计误差信号;为系统输出信号。为步长因子,它影响算法的收敛速度和稳态误差,其值太大可能导致算法不稳定,其值太小可能导致收敛过慢。因此,在实际应用中,可以根据需求,调整以平衡收敛速度和稳态误差。I为单位矢量,z-1为延迟。LMS算法的优点在于其简单性和易于实现,特别是在处理未知信号或变化的环境信息时,它能快速适应并调整滤波器系数以改善性能,达到跟踪或者稳定系统的效果。

2.2" 算法设计

首先,初始化LMS算法的关键参数,选择合适的滤波器阶数和步长因子,并初始化权重w。输入的语音信号是ITU-TP.501[8]中的样本,使用8000Hz的采样频率进行重采样并取32000个采样点,噪声信号是与音频数据相同长度的高斯白噪声,其均值为0,标准差为0.05。语音信号如图2所示。

为了获得LMS算法的收敛速度和稳定性,采用标准化均方误差(normalized" mean" square" deviation," NMSD)作为性能指标,对其性能进行评估。NMSD的定义如下:

在实验中,采用100次计算的平均值得到LMS算法学习曲线,如图3所示。当曲线趋于平稳时,算法逐步收敛,对应的标准化均方误差值越小,说明算法估计性能越好。将采样得到的语音信号和系统输入输出信号的数据利用dec2bin函数转化为16位二进制,并储存为文本文件,作为激励文件Testbench数据进行后续的FPGA仿真实验测试。

2.3" FPGA仿真设计

LMS滤波器结构图如图4所示。

本设计的滤波器阶数为16,本实验采用QuartusⅡ13.1版本,芯片为Cyclone" IV E 系列EP4CE115F29C7 器件,仿真器为ModelSim SE 10.1c版本,为精确仿真验证提供了强大的软件平台支持,保障了仿真过程的准确性和效率。

在设计流程中,根据模拟结构图编写Verilog HDL代码实现LMS滤波器。需要定义模块的输入输出端口,包括输入信号、期望的输出信号以及滤波器的系数。然后,根据LMS滤波器的结构设计LMS算法的核心部分,即系数的更新机制和误差信号的计算。在Quartus Ⅱ中进行编译,分析综合结果如图5所示。

系统编译成功后,为了验证LMS滤波器设计的正确性和有效性,需要编写激励文件进行测试。激励文件的数据来源于上一节通过MATLAB生成的文件。在仿真环境中,将编写好的激励文件testbench导入QuartusⅡ并执行RTL(寄存器传输级)仿真。ModelSim中运行结果如图6,可以观察到三条曲线,分别代表带噪声的语音信号、原始清晰的语音信号以及经LMS滤波器处理后的信号。通过这三条曲线的对比,可以直观地评估LMS滤波器的去噪效果。LMS滤波器能够有效地从噪声信号中恢复出原始信号,与Matlab仿真的结果一致,这表明设计的LMS滤波器成功达到了预期目标。

3" 结语

本研究通过将MATLAB的强大仿真能力与FPGA的硬件实现潜力相结合,实现LMS自适应滤波算法的设计、仿真和测试。这种融合理论与实践的方法极大地丰富了学生的学习体验,使学生能够在实际操作中观察和分析算法的性能,从而更深入地理解自适应滤波算法的工作原理和性能。这种多课程结合的学习方式和软硬件结合的教学方式,不仅可以将学生学习的多门课程串联起来,还可以提升学生主动探索和解决问题的能力,培养学生在面对复杂工程问题时的批判性思维和创新能力。

参考文献

[1] 王连明,陈菊芳,黄继鹏,等.电子信息类专业实验课程体系改革与实践[J].实验室研究与探索,2018,37(3):147-149.

[2] 王青云,梁瑞宇,赵力,等.实时语音信号处理教学与实验方法研究[J].实验室研究与探索,2019,38(9):186-189.

[3] 尹霄丽,尹鹏,林泊安,等.多课程融合的“信号与系统”实验教学改革[J].实验室研究与探索,2016,35(10):192-195.

[4] 石昊强,蒋占军.Matlab和FPGA相结合的软硬件综合实验设计[J].实验室研究与探索,2020,39(1):103-107.

[5] 朱磊,宋彩霞.基于DSP的FIR数字滤波综合实验设计[J].实验技术与管理,2017,34(1):206-209.

[6] 芮贤义,唐宇轩.基于自适应滤波的回声消除实验设计[J].实验室研究与探索,2022,41(8):23-26.

[7] 杨子康,熊兰.传统数字设计与FPGA融合的教学改革与实践[J].电气电子教学学报,2022,44(1):13-17.

[8] ITU-T.Recommendation ITU-T P.501:Test signals for use in telephony and other speech-based applications[EB/OL].https://www.itu.int/net/itu-t/sigdb/genaudio/Pseries.htm. 3969/j.issn.1008-0686.2022.01.004.

猜你喜欢

Matlab仿真
微信网络的信息传播模型研究
常规PID控制和常规模糊控制的比较
基于凸极效应的混合动力车用IPMSM无传感器控制的设计
感应电机低速运行时自适应状态观测器研究
浅析地区电网谐波治理方案
MATLAB仿真在《控制工程基础》教学中的应用