加权最小二乘法MATLAB程序

加权最小二乘法MATLAB程序,第1张

“/”是矩阵右除的符号,对应的函数是mrdivide。矩阵右除是通过左除实现的,也就是说,A/B = (B'\A')'。

“\”是矩阵左除的符号,对应的函数是mldivide。

x=A\B是线性方程组Ax=B的解,而x=B/A是线性方程组xA=B的解(如果方程组欠定或超定,则解为最小二乘意义上的)。

以你举的例子来说,相当于求3x=1,4x=2,5x=3这样一个方程组的解,显然这个方程组属于超定的情况,无解,但可以求出最小二乘解x=0.52。

使用最小二乘拟合函数可以求出相同的解来:

k=lsqcurvefit(inline('k*x','k','x'),0,[3 4 5],[1 2 3])

我不太清楚你说的加权是指什么.这个程序基本分两个部分,一个是判伪,一个是阶数、频率范围、幅频特性、采样率设定。阶数、频率范围、采样率应该没什么加权可言,只剩幅频特性了。我看你的幅频特性设计是安排传输函数零点位置达到的吧,那对切比雪夫特性的影响也就在零点位置上了,对应到你的程序中应该是AA矩阵中值的设定。你可以改变AA中的值,应该能看出变化。

以上只是一点拙见,有错请见谅,本人也不是专业滤波器设计。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11866163.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存