下面是一系列关于MATLAB的包络线的程序:

%这是定义了一个函数:

function [up,down] = envelope(x,y,interpMethod)

%ENVELOPE gets the data of upper and down envelope of the known input (x,y).

%

% Input parameters:

% x the abscissa of the given data

% y the ordinate of the given data

% interpMethod the interpolation method

%

% Output parameters:

% up the upper envelope, which has the same length as x.

% down the down envelope, which has the same length as x.

%

% See also DIFF INTERP1

% Designed by: Lei Wang, , 11-Mar-2003.

% Last Revision: 21-Mar-2003.

% Dept. Mechanical & Aerospace Engineering, NC State University.

% $Revision: 1.1 $ $Date: 3/21/2003 10:33 AM $

if length(x) ~= length(y)

error('Two input data should have the same length.');

end

if (nargin < 2)|(nargin > 3),

error('Please see help for INPUT DATA.');

elseif (nargin == 2)

interpMethod = 'linear';

end

% Find the extreme maxim values

% and the corresponding indexes

%----------------------------------------------------

extrMaxValue = y(find(diff(sign(diff(y)))==-2)+1);

extrMaxIndex = find(diff(sign(diff(y)))==-2)+1;

% Find the extreme minim values

% and the corresponding indexes

%----------------------------------------------------

extrMinValue = y(find(diff(sign(diff(y)))==+2)+1);

extrMinIndex = find(diff(sign(diff(y)))==+2)+1;

up = extrMaxValue;

up_x = x(extrMaxIndex);

down = extrMinValue;

down_x = x(extrMinIndex);

% Interpolation of the upper/down envelope data

%----------------------------------------------------

up = interp1(up_x,up,x,interpMethod);

down = interp1(down_x,down,x,interpMethod);

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐