👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
在本文中,在非高斯噪声环境中比较最小均方(LMS)和最小均方(LMF)算法,以执行系统识别任务。众所周知,LMF算法在非高斯环境中优于LMS算法,在此实现中可以看到相同的结果。此外,还编程了用于添加白色均匀噪声的定制功能。
最小均方(LMS)算法和最小均数四分法(LMF,Least Mean Fourth,这一术语在标准文献中并不常见,可能是对某些特定优化目标的误解或误指,更常见的可能是最小四次方误差LMS,即LMS算法的一个变种,专注于最小化四次方误差)都是迭代优化算法,常应用于信号处理和系统识别领域,尤其是自适应滤波器的设计。下面分别简述这两种算法,并探讨它们在系统识别上的应用。
最小均方(LMS)算法
LMS算法是最基本且广泛使用的自适应滤波器算法之一,其目的是通过最小化输出误差的平方和来调整滤波器的权重,进而逼近一个理想的滤波或识别目标。具体来说,LMS算法在每次迭代时更新滤波器系数,更新规则依赖于输入信号、输出误差及其前一次的系数值。算法的核心在于权值调整步长(也称为学习率)的选择,它平衡了收敛速度和稳定性之间的关系。
最小四次方误差(LMS的变种)
若提及“最小均数四分法”是指寻找一个使得误差的四次方和最小化的算法,则可以类比于LMS算法,只是优化的目标函数从误差平方和变为误差的四次方和。这种方法理论上能更强烈地惩罚大误差,适用于那些对大偏差更敏感的应用场景。然而,这种算法在实际应用中较为少见,因为四次方运算会增加计算复杂度,且易导致算法收敛特性变差,尤其是在存在噪声的情况下。
系统识别中的应用
在系统识别中,目标是根据系统的输入输出数据估计其内部结构或参数。LMS及其变种可以用来实现这一目标:
-
模型参数估计:通过将LMS算法应用于输入输出数据序列,可以逐步调整模型参数,使其输出尽可能接近真实系统的输出。在噪声环境下,LMS算法因其简单和对小误差的敏感性而被广泛使用。
-
自适应滤波:在系统识别框架下,自适应滤波器(基于LMS或其他变种)被设计成模仿或补偿未知系统的行为,通过不断调整滤波器系数来最小化某种误差度量(通常是均方误差或其变体)。
-
非线性系统近似:尽管原始LMS和其四次方误差变种主要设计用于线性系统,通过适当的结构扩展和算法调整,它们也可以应用于非线性系统识别,通过多层或高阶模型来逼近非线性关系。
结论
LMS算法及其变种,包括假想的“最小均数四分法”(可能理解为强调更高阶误差惩罚的算法变体),在系统识别中扮演着重要角色。它们提供了一种实用且灵活的方法来逼近和识别复杂系统的特性。不过,选择合适的算法变种和参数调整策略对于确保算法的收敛性和实用性至关重要,特别是在面对不同类型噪声和系统非线性时。未来的研究可能会探索更多高级算法和优化技巧,以提高系统识别的精度和效率。
📚2 运行结果
部分代码:
N = 1e4; % Number of samples
Bits = 2; % For PSK modulation
SNR = 10; % Noise level
% *Monte Carlo simulations*
% h = [0.9 0.2 0.5 -0.7]; % Plant1 impulse response
% h = [-2:1:2]; % Plant2 impulse response
h = randn(1,5); % Random system
runs=100;
NWDs = 0;
NWDf = 0;
temp3 = 0;
temp4 = 0;
for run = 1:runs % Monte Carlo simulations
% h = randn(1,5);
data = randi([0 (2^Bits)-1],1,N); % Random index for input data
x = real(pskmod(data,2^Bits)); % Phase shit keying (PSK) modulation
r = filter(h,1,x); % Input passed trought system(h)
d = awun(r, SNR); % Addition of white Uniform noise of decined SNR
% d = awgn(r, SNR); % Addition of white Gaussian noise of decined SNR
% *LMS parameter*
etas = 1e-2; % Learning rate for LMS
Wlms = zeros(size(h)); % Initial weights of LMS
Us = zeros(1,length(h)); % Input frame length of LMS
% *LMF parameter*
etaf = 1e-2; % Learning rate for LMF
Wlmf = zeros(size(h)); % Initial weights of LMF
Uf = zeros(1,length(h)); % Input frame length of LMF
for n = 1 : N
% *LMS*
Us(1,2:end) = Us(1,1:end-1); % Shifting of frame window
Us(1,1) = x(n); % Input of LMS
ys = (Wlms)*Us'; % Output of LMS
es = d(n) - ys; % Instantaneous error of LMS
Wlms = Wlms + etas * es * Us; % Weight update rule of LMS
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
@article{Khan2017FLMFFL,
title={FLMF: Fractional least mean fourth algorithm for channel estimation in non-Gaussian environment},
author={Shujaat Khan and Naveed Ahmed and Muhammad Ammar Malik and Imran Naseem and Roberto Togneri and Mohammed Bennamoun},
journal={2017 International Conference on Information and Communication Technology Convergence (ICTC)},
year={2017},
pages={466-470}