散點資料的包絡線獲取(MATLAB)

2021-10-09 01:24:57 字數 2464 閱讀 6066

在科研資料處理當中,往往會遇到許多不規則的散點資料,通過程式將這些資料的包絡線(envelope)進行描述可以更好地展現資料的取值範圍。在進行資料統計當中,對於樣本資料報絡線的描述一般不可或缺。

這裡採用matlab軟體,自己編寫了一段描述散點資料報絡線的**,也是我平時使用的**,與大家交流協同改進。

x:散點資料的橫座標;

y:散點資料的縱座標;

n:需要將包絡線進行多項式擬合的階數;

x_min, x_max, x_int:需要進行多項式擬合的座標下限、上限以及座標步長;

window_n:散點資料窗大小(在正序散點當中的n個值裡取極大(極小)值),若n不是散點資料個數的約數,則對資料尾端增加零點使其數量達到n的整數倍。

%  find the boundary of data%x

-input x coordinary%y

-input y coordinary

% n-polyfit times

% x_min,x_max,x_int-range of x and interval of x

function

[xup_fit,yup_fit,xdown_fit,ydown_fit,x_up,y_up,x_down,y_down]

=bd_poly(x

,y,n,x_min,x_max,x_int,window_n)[x2

,p]=

sort(x

);y2=

y(p)

;while

mod(

length(y2

),window_n)~=

0y2(end+1)

=0;x2

(end+1)

=0;end

y_up=

max(

reshape(y2

,window_n,

length(y2

)/window_n));

for i =1:

length

(y_up)

x_up

(i)=x2(

find(y2

==y_up

(i),1)

);endy_down=

min(

reshape(y2

,window_n,

length(y2

)/window_n));

for i =1:

length

(y_down)

x_down

(i)=x2(

find(y2

==y_down

(i),1)

);end[aup]

=polyfit

([x_up]

,[y_up]

,n);

xup_fit=x_min:x_int:x_max;

yup_fit=

polyval

(aup,xup_fit)

;[adown]

=polyfit

([x_down]

,[y_down]

,n);

xdown_fit=x_min:x_int:x_max;

ydown_fit=

polyval

(adown,xdown_fit)

;

對於x,y均為1-5隨機均勻隨機分布的散點來說,通過程式計算得到的包絡線如圖:

紅線為包絡線,藍線為多項式擬合。

window_n=10,擬合多項式次數為5;

window_n=50,擬合多項式次數為5;

window_n=100,擬合多項式次數為5;

對於x服從0-100隨機分布,y服從公式:y=s

in(x

)∗xy=sin(x)*x

y=sin(

x)∗x

的資料散點來說:

window_n=10,擬合多項式次數為5;

window_n=50,擬合多項式次數為5;

window_n=100,擬合多項式次數為5;

空間三維散點資料的線性擬合

clc clear all close all num 50 num個隨機點 rand1 randi 1,1 num,3 雜訊範圍 rand2 randi 1,1 num,3 point1 1 0.5 0.5 num 1 1 0.5 0.5 num 1 1 0.5 0.5 num 1 rand1 p...

關於包絡概念的理解

加速度包絡是skf的專利技術,加速度包絡是一種訊號處理技術,這種技術能夠檢測到很弱的衝擊故障訊號,比如軸承的早期損傷。它可以將非常弱的衝擊訊號經過一系列的放大 濾波等處理轉變成高頻的振動訊號。包絡解調原理 故障所引起的低頻 通常是數百hz以內 衝擊脈衝激起了高頻 數十倍於衝擊頻率 共振波形,對它進行...

樂器取樣包絡的Release處理

r release 釋放,最後止音的過程。演奏某音停止時,聲音不會立即停止,一直到停止的這一過程叫釋放,如果對這一段控制則叫釋放控制。經過包絡分析,有不少樂器不是線性的,處理複雜度提高。我認為分成3段處理,以適應大多數樂器,第1段為轉彎衰減段,第2段為近似線性段,第3段為轉彎尾音消失段。通過兩個點的...