基于RLS算法的谐波检测.docx
文本预览下载声明
一、最小二乘法首先来复习一下最小二乘法,工程上常常因为无法建立系统的连续函数,而是只知道该系统在输入信号下输出时刻离散的采样点值,那么我们可以根据这些采样点值求一个函数即与采样信号数据{(,) , i=0,1,2,3,m}拟合,设是上的线性无关函数族,在中找到一个函数,使误差平方和,也就是用误差的平方和来考量拟合的效果。的一般表达式为线性无关(正交)函数组线性组合,若是正弦函数,即其中为基频,问题转化为求多元函数的极小值点的问题,式中是的权函数,他表示不同点处的数据比重不同。则有若用标准内积形式表示上面的线性组合。上式改写成线性方程组可写成矩阵方程表达式由上面的方程解出系数,则所求的最小二乘解为.二、递归最小二乘法以下研究递归最小二乘法,并且针对谐波辨识这一课题,令被拟合的信号也就是该函数是未知的信号量,采样后组成的信号向量变为为令正交函数组,在采样点时刻组成的矩阵为根据上面的最小二乘法,其中是拟合好的信号。是权向量,也就是待求向量。是对角阵,其中是称为遗忘因子,且根据上面最小二乘法对权向量的求导,可以知道整理得,这就是包含遗忘因子的最小二乘法。该式与下面的不带遗忘因子的式子进行比较。上面两式进行比较,上式中就多了一个对角阵A,而A的作用表明为,对前面采样点的比重进行衰减,刚刚采样的比重最大,越早采样的点比重越小,这个作用表明,了对刚刚采样点的信号的参考依据更大,如果遗忘因子取值为1,那么上面的两个方程一模一样了。实际使用中并不是真正的求取上面式子中的逆矩阵求解权向量,而是根据实时采样,根据最新的拟合的误差来产生一个迭代方程去逐渐逼近,这就产生了递归最小二乘法(RLS)。为了构造递归算式,首先将分块,得到,然后对进行分块得到为了表示方便,令,则式表示为根据的关系式,有,该式可通过展开矩阵,进行证明得到,此处略去证明过程。从上面的式子可以看出最新时刻的误差为,上面的迭代方程就是求解的迭代方程。在矩阵论中有矩阵求逆公式有如下的递推公式现在有了和的迭代公式,就可以选取初始矩阵和来进行迭代求解。迭代算法如下:初始设置:,for kp程序返回;for k=p用下式计算矩阵For kp进入权值迭代程序,用误差作为判断停止标准具体程序参看附录三、MATLAB程序运行情况循环次数cylce_num = 89权向量Wk = -0.0002 0.9658 0.2588 -0.0000 -0.0003 2.5978 1.5000 -0.0001 -0.0002 2.8279 2.8284 -0.0005 0.0001 -0.0002 -6.9991幅值Amplitude = 0.9999 0.0003 2.9997 0.0003 3.9996 0.0005 6.9991相位Phase = 15.0010 -85.9190 30.0020 -56.4118 45.0048 16.9208 -89.9984红色的曲线函数是原函数曲线y=sin(2*pi*50*x+pi/12)+3*sin(2*3*pi*50*x+pi/6)+4*sin(2*pi*5*50*x+pi/4)+7*sin(2*pi*7*50*x+pi*3/2);该曲线是几个正弦函数的线性组合,其中包含基波、3、5、7次谐波。蓝色的曲线y=-0.000188*1+0.965828*sin(wx)+0.258810*cos(wx)+-0.000024*sin(2wx)+-0.000339*cos(2wx)+2.597784*sin(3wx)+1.499955*cos(3wx)+...这是RLS算法下拟合的曲线。权向量WK = Columns 1 through 13 0.0771 0.0044 0.0357 -0.5775 0.1355 0.0050 -0.0106 -0.2767 0.1117 0.0002 -0.0176 -0.1735 0.1044 Columns 14 through 21 -0.0020 -0.0250 -0.1132 0.0976 -0.0005 -0.0313 -0.0730 0.0881幅值Amplitude = 0.0359 0.5932 0.0118 0.2984 0.0176 0.2025 0.0251 0.1495 0.0313 0.1145相位Phase = 82.9272 13.2025 -64.6330 21.9813 -8
显示全部