• 大小: 353KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: 其他
  • 标签: matlab  包络  插值  

资源简介

三次样条插值法来求信号包络线,源码提供,此种方法求包络线较为传统也较为准确

资源截图

代码片段和文件信息

%三次样条插值法,求信号的包络线
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

评论

共有 条评论