最小二乘法获取系统传递函数:
- function [numd, dend] = LeastSquare(x, y, N)
- count = length(y);
- M = count - 1;
- ai = zeros(N*2, M);
- for i=1:N
- ai(i, i:M) = x(1:(count-i));
- ai(i+N, i:M) = -y(1:(count-i));
- end
- bi = y(2:(count));
- xd = (inv(ai*ai')*ai*bi)';
- numd = [0 xd(1:N)];
- dend = [1 xd(N+1: N+N)];
输入参数:
x --- 系统输入阵列
y --- 系统输出阵列
N --- 系统传递函数的阶数
函数输出:
系统 Z 传递函数分子与分母的系数,即: h(z) = numd(z) / dend(z)
这个函数实在是居家旅行 ..., 啊,是建模仿真必备良器。
|