本帖最后由 fyx10319 于 2019-4-11 20:23 编辑
本人正在学习使用正交多项式法拟合频响函数的matlab实现,发现王济老师的《matlab在振动信号处理中的应用》里面的程序运行得不到正确结果,请问该程序是否有错误?能否指导一下如何改正?谢谢!
clear
format long
global mn;
fni=input('输入数据文件名称:','s');
fi=fopen(fni,'r'); %打开输入数据文件
mn=fscanf(fi,'%d',1); %输入模态阶数
df=fscanf(fi,'%f',1); %输入频率间隔
fo=fscanf(fi,'%s',1); %输出文件名称
h=fscanf(fi,'%f',[2,inf]); %输入实测频响函数实部和虚部
status=fclose(fi); %关闭文件
nm=mn*2; %定义频响函数有理分式的阶数
n=length(h(1,:)); %频响函数长度
f=0:df:(n-1)*df; %定义频率向量
w=[-f(n:-1:1) f(1:n)]/max(f);
H1=[h(1,n:-1:1)-i*h(2,n:-1:1) h(1,1:n)+i*h(2,1:n)];%建立扩展的实测频响函数向量
w=w.';
H1=H1.';
[p,cp]=fun