本帖最后由 simplebinbin 于 2014-9-10 09:30 编辑
clear;format long
%%%%%%%%%%%%%%%%%%%%%%%%%
%声明为全局变量
global mn;
fni=input('有理分式多项式法-输入数据批文件名:','s');
fid=fopen(fni,'r');
mn=fscanf(fid,'%d',1); %模态阶数
df=fscanf(fid,'%f',1); %频率间隔
fno=fscanf(fid,'%s',1); %输出数据文件名
b=fscanf(fid,'%f',[2,inf]); %输出实测频响函数实虚部数值数组
status=fclose(fid);
%定义幂多项式的阶次
nm=mn*2;
%取频响函数长度
n=length(b(1,:));
%建立离散频率向量
f=0:df:(n-1)*df;
%建立离散圆频率向量
w=2*pi*f;
%建立归一化离散频率向量
wi=w/max(w);
%建立实测频响函数复数向量
H=b(1,:)+i*b(2,:);
%计算拟合频响函数的分子和分母系数向量
[A,B]=invfreqs(H,wi,nm,nm,[],100);
%幂多项式方程求根
P=roots(B);
%计算模态频率向量