谱峰面积估计程序.m

来自「本人利用MATLAB处理了并总结了工程上经常用到的“信号处理”的源代码」· M 代码 · 共 46 行

M
46
字号
%峰面积估计
y=[0.518, 0.586, 0.682, 0.824, 0.999, 1.170, 1.370, 1.520, 1.650, 1.670,1.660, 1.550, 1.380, 1.180, 0.988, 0.814, 0.670, 0.572, 0.509, 0.479,0.479, 0.516, 0.553, 0.501, 0.323, 0.163, 0.063, 0.021];
n=28;
%梯形法计算面积
s1 = (y(1) + y(n)) / 2;
s2 = 0;
for i = 2:n - 1
    s2 = s2 + y(i);
end
st = s1 + s2;
disp(strcat('梯形法面积为:',num2str(st)))     %strcat为字符组合函数,num2str为数值转换成字符函数,disp为字符输出函数

%辛普森法计算面积
if mod(n,2) == 0            %mod为求余函数
   s1 = y(1) + y(n - 3);
   s2 = 0;
   for i = 2: 2:n - 4       %i后面的三个数值分别为:初值,步长,终值
       s2 = s2 + y(i);
   end
   s2 = s2 * 4;
   s3 = 0;
   for i = 3:2:n - 5
       s3 = s3 + y(i);
   end
   s3 = s3 * 2;
   s4 = (y(n - 3) + 3 * (y(n - 2) + y(n - 1)) + y(n)) * 3 / 8;
   sf = (s1 + s2 + s3) / 3 + s4;
else
   s1 = y(1) + y(n);
   s2 = 0;
   for i = 2:2:n - 1
       s2 = s2 + y(i);
   end
   s2 = s2 * 4;
   s3 = 0;
   for i = 3:2:n - 2
       s3 = s3 + y(i);
   end
   s3 = s3 * 2;
   sf = s1 + s2 + s3;
   sf = s / 3;
end
disp(strcat('辛普森法面积为:',num2str(sf)))
plot(y,'.-r')
gtext(strcat('梯形法面积为:',num2str(st)))        %gtext函数在图形上交互输出文本
gtext(strcat('辛普森法面积为:',num2str(sf)))

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?