在科研資料處理當中,往往會遇到許多不規則的散點資料,通過程式將這些資料的包絡線(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段為轉彎尾音消失段。通過兩個點的...