資源簡介
三次樣條插值法來求信號包絡線,源碼提供,此種方法求包絡線較為傳統也較為準確

代碼片段和文件信息
%三次樣條插值法,求信號的包絡線
clear?all;close?all;clc
fs=30;??%采樣頻率
t=0:1/fs:5;???%采樣時間
x=sin(2*pi*2*t)+sin(2*pi*4*t);??%信號
%三次樣條插值,求信號的包絡線
d=diff(x);??%對信號求導
n=length(d);
d1=d(1:n-1);
d2=d(2:n);
indmin?=?find(d1.*d2<0?&?d1<0)+1;??%找到極小值的點
indmax?=?find(d1.*d2<0?&?d1>0)+1;??%找到極大值的點
envmin=spline([t(1)?t(indmin)?t(end)][x(1)?x(indmin)?x(end)]t);??%所有極小值的點+兩個斷點,進行三次樣條插值下包絡
envmax=spline([t(1)?t(indmax)?t(end)][x(1)?x(indmax)?x(end)]t);??%所有極大值的點+兩個斷點,進行三次樣條插值,上包絡
[xData?yData]?=?prepareCurveData(tenvmax);
%?Set?up?fittype?and?options.
ft?=?‘spline‘;
%?Fit?model?to?data.
[fitresult?gof]?=?fit(?xData?yData?ft?‘Normalize‘?‘on‘?);
%y?=?feval(fitresultx);%通過feval函數可以去任意x對應的y值
y?=?feval(fitresult[0:1:16383]);%將橫坐標均等劃分,得到Y對應的值
%繪制包絡線
figure
hold?on
plot(tx)?%繪制原信號
plot(tenvmin‘r--‘);???%繪制下包絡線
plot(tenvmax‘m--‘);???%繪制上包絡線
msgbox(‘MATLAB編程答疑,請加QQ:?1530497909‘‘MATLAB答疑‘‘help‘)
web?http://url.cn/TKcdXk?-browser
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-03-08?10:27??MATLAB三次樣條插值法?求信號的包絡線?源代碼\
?????文件????????1122??2018-10-13?12:51??MATLAB三次樣條插值法?求信號的包絡線?源代碼\chazhifa.m
?????文件?????????331??2014-01-07?20:20??MATLAB三次樣條插值法?求信號的包絡線?源代碼\Read?Me.url
?????文件??????360808??2018-10-15?21:09??MATLAB三次樣條插值法?求信號的包絡線?源代碼\基于B樣條插值的局部均值分解方法研究.pdf
?????文件?????????294??2014-02-06?11:28??MATLAB三次樣條插值法?求信號的包絡線?源代碼\聯系我們.txt
- 上一篇:37724122try_fxlms.rar
- 下一篇:模糊pid控制C程序
評論
共有 條評論