非常的急,求各位高手能帮忙指点啊!真的是万分感谢啊!
mpm就是matrix pencil method方法,也就是矩阵束法,我在网上找了用matlab 编的该方法的程序,但是网上是求角度的,而我需要的是幅值的,需要对网上程序改动一下,可是我这个菜鸟改了好几天了还是不会!!
请高手们务必帮忙啊。

主程序如下: 

clear all;
fid=fopen('chou20_30.dat','r');
B=fread(fid,[20,30],'double');
fclose(fid);%读入文件
plot(B(1,:));
hold on;

M=30;  % number of elements
N=M;
x=B(1,:);
d=1;   % number of signals

semilogy(mpm(x,d,N),'rx')


看着挺简单的,下面是mpm的子程序:

function theta=mpm(u,d,N);
%N=length(u); 
L=floor(N/2)-1; 
Y=hankel(u(1:N-L),u(N-L:N)); 
[U,S,Vs]=svd(Y); 
D=abs(real(S)); 
[Sn,k]=sort(diag(-D)); 
V=Vs(:,k); 
V=V(:,1:d); 
V1=V(1:length(V)-1,:); 
V2=V(2:length(V),:); 
V3=pinv(V1)*V2; 
eigy=eig(V3); 
f=eigy; 
if(f<0) 
    f=-f; 
elseif(f>0) 
    f=1-f; 
end 
theta=Y;

这段程序从f=eigy起应该改为对幅值求解,可是我不知道怎么改才是对的,请帮帮忙啊

我的意思就是我现在有一组离散的数据点,需要用mpm方法来拟合我的这些数据点,应该对mpm的子程序后面一小部分进行修改,可是我实在想不到应该怎么改了!

感谢帮助的人啊!!