美文网首页
matlab取离散数据图像的极大值与极小值

matlab取离散数据图像的极大值与极小值

作者: 胜负55开 | 来源:发表于2019-05-11 22:31 被阅读0次

需求:现实数据都是离散的,有时需要离散数据图像的极大值点集极小值点集,并用它们绘制原函数的上、下包络线。基于此需求,本文给出matlab的简单实现。

极大值的寻找方式:
函数:findpeaks
使用1:findpeaks(x)
使用2:[top, location1] = findpeaks(x);
效果:找到原始数据x的极大"值"们(top)以及对应的索引(location1)

极小值的寻找方式:
说明:matlab里没有自带直接的找极小值的函数,可用下面这个小技巧
函数:findpeaks
技巧:findpeaks(-x);
使用:[low, location2] = findpeaks(-x);
效果:把原始数据相当于翻转或乘-1,这样原来的极小值就是极大值!翻转不会改变极小值的索引!

真实数据的实例:

clear ; clc;

x = xlsread('shuju.xlsx');
x = x(1001:1001+1023)';
N = length(x);
fs = 100;         % 采样频率 = 1/采样间隔
t = (0:N-1)/fs;  % 时间刻度

% 一般只要返回的第2个参数: 极值的索引
[top,location1] = findpeaks(x);
[low,location2] = findpeaks(-x);

xtop = x(location1);
ttop = t(location1);

xlow = x(location2);
tlow = t(location2);

figure(1);
h1 = plot(t, x, 'k'); hold on;
h2 = plot(ttop, xtop, 'r'); hold on;
h3 = plot(tlow, xlow, 'g'); hold off;

axis([min(t) max(t) -inf inf]);

legend([h1(1),h2(1),h3(1)],'原始数据', '极大值包络', '极小值包络');
title('原始数据的极大值、极小值包络');
xlabel('采样点时间');
ylabel('振幅');

效果:


图1:原始数据及极值包络

其实包络线可以用三次样条插值绘制的更平滑一些!
三次样条插值的操作参考这篇文章

相关文章

  • matlab取离散数据图像的极大值与极小值

    需求:现实数据都是离散的,有时需要离散数据图像的极大值点集和极小值点集,并用它们绘制原函数的上、下包络线。基于此需...

  • MATLAB|求极值

    极大值matlab里面的findpeaks函数可以求出数据的极大值。 极小值fminbnd可以找到一个有约束边界的...

  • excel数据标准化

    min-max标准化:新数据 = (原数据-极小值)/(极大值-极小值) 使用标准分进行标准化:标准分 = (原始...

  • 函数的极值与最大值最小值

    函数的极值及其求法。 极值点 函数的极大值或极小值的定义 函数的极大值和极小值概念是局部性的。 驻点:一阶导数为零...

  • 图像处理入门书推荐

    《MATLAB图像处理实例详解》 《数字图像处理》 冈萨雷斯 《图像识别与项目实践――VC++、MATLAB技术实...

  • matlab图像数据的读取总结

    Matlab 读取彩色图像是三维数组,图像的坐标是以左上角为(0,0)点; matlab读入图像的数据是uint8...

  • 无人驾驶随笔

    高斯滤波 计算图像梯度 因为图片是离散所以无法进行求导,可以将差商来近似导数。 非极大值抑制 通常灰度变化的地方都...

  • 支持向量机

    1.严格的支持向量机支持向量机要解决的问题 凸函数求极大值不好求,但求极小值好求,所以转换成求极小值的问题 对偶问...

  • 用R语言画图

    箱线图 boxplot()是箱线图的绘制函数,一般上下两条线为该数据集合的两个极值,极大值和极小值,箱子上下边缘是...

  • 三章 导数的应用与不定积分

    函数单调性的判定法 函数的极大值与极小值统称为极值,使函数取得极值的点称为极值点。 函数极值的求法定理:设发(x)...

网友评论

      本文标题:matlab取离散数据图像的极大值与极小值

      本文链接:https://www.haomeiwen.com/subject/juwfaqtx.html