Matlab 如何绘制复杂曲线的包络线

http://jingyan.baidu.com/article/aa6a2c14d36c710d4c19c4a8.html

如果一条曲线(比如声音波形)波动很大,曲折复杂,可以通过绘制包络线的方式使其更加平滑和清晰。本经验帮助刚接触matlab不久的新手完成这一过程。

工具/原料

  • Matlab 软件

  • 样本数据

方法/步骤

  1.  

    处理前后的效果对比,图示为某声波傅里叶变换(fft)后的频谱图。

  2.  

    原数据为横纵坐标为 frequency 和 Amplitude,都是<2048x1 double>的数据,即包含2048个数据点,由 subplot(2,2,1),plot(fr,Am); 绘制而成。

  3.  

    包络线的生成,需要将原数据分成等宽度的小段,每段取一个最高点所对应的横坐标和纵坐标(如图所示)。比如设定每小段的长度为 d = 4 或 8 或 16(或2048的其他约数),然后运行

    y=reshape(Amplitude,d,2048/d);

    y=max(y);

    x=linspace(0,max(frequency),2048/d);

    所得 x 和 y 即为包络线的横纵坐标。

  4.  

    其中关键的函数为 reshape() 和 linspace()。

    reshape() 函数重新调整矩阵的行数、列数、维数。reshape(X,m,n) 可以把矩阵 X 调整为 m 行 n 列的矩阵,比如:

    >> reshape([1 2 3 4 5 6],2,3)

    ans =

    1     3     5

    2     4     6

    linspace() 用于生产线性矢量。 linspace(a,b,n) 可以生产从 a 到 b 之间共 n 个元素组成的一维数组。比如:

    >> linspace(1,5,4)

    ans =

    1.0000    2.3333    3.6667    5.0000

     

Matlab 如何绘制复杂曲线的包络线的更多相关文章

  1. Matlab | 绘制动态曲线(使用 animatedline 对象)

    效果如下: 示例代码: figure('Color','w'); h1 = animatedline; h1.Color = 'r'; h1.LineWidth = 1.0; h1.LineStyle ...

  2. Matlab绘图基础——绘制三维曲线

    %% 绘制三维曲线 %plot3函数,其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同. %1.当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线. x0 = 0 ...

  3. Matlab图形绘制

    图形绘制 离散函数图形: 例:离散数据和离散函数可视化(离散数据作图方式) X1=[,,,,,,,,,,,,,,,,,,,]; Y1=[,,,,,,,,,,,,,,,,,,,]; figure() p ...

  4. MATLAB中绘制质点轨迹动图并保存成GIF

    工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...

  5. 用html5的canvas画布绘制贝塞尔曲线

    查看效果:http://keleyi.com/keleyi/phtml/html5/7.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...

  6. 4. 绘制光谱曲线QGraphicsView类

    一.前言 Qt的QGraphicsView类具有强大的视图功能,与其一起使用的还有QGraphicsScene类和QGraphicsItem类.大体思路就是通过构建场景类,然后向场景对象中增加各种图元 ...

  7. canvas绘制贝塞尔曲线

    原文:canvas绘制贝塞尔曲线 1.绘制二次方贝塞尔曲线 quadraticCurveTo(cp1x,cp1y,x,y); 其中参数cp1x和cp1y是控制点的坐标,x和y是终点坐标 数学公式表示如 ...

  8. 使用python和pygame绘制繁花曲线

    前段时间看了一期<最强大脑>,里面展示了各种繁花曲线组合成的非常美丽的图形,一时心血来潮,想尝试自己用代码绘制繁花曲线,想怎么组合就怎么组合. 真实的繁花曲线使用一种称为繁花曲线规的小玩意 ...

  9. 绘制ROC曲线

    什么是ROC曲线 ROC曲线是什么意思,书面表述为: "ROC 曲线(接收者操作特征曲线)是一种显示分类模型在所有分类阈值下的效果的图表." 好吧,这很不直观.其实就是一个二维曲线 ...

随机推荐

  1. 精确到秒的JQuery日期控件

    项目中需要用到精确到秒的日期控件,到网上搜了一下,发现有一个JQuery控件可以实现该功能---TimerPicker.但是官网上没有提供该控件的完整Demo,而且没有提供汉化包,所以自己汉化了一下, ...

  2. UI/UE对个性化推荐的影响

            用户界面,用户体验.         在创建网站选择色调时,大多数企业想到的是美观.其实,颜色所起到的作用远超出人们的想象.         关于颜色与购买习惯的心理学书籍比比皆是,下 ...

  3. 判断数据库表字段是否为null值,采用is null

    use UserCentergo select * from AccountDetails1.判断一个字段是否为null值,进行查询:update AccountDetails set Project ...

  4. VirtualBox虚拟vdi磁盘扩容

    http://blog.chinaunix.net/uid-25627207-id-3342576.html

  5. ANDROID_MARS学习笔记_S01原始版_005_ProgressBar

    一.代码 1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

  6. 【HDOJ】1285 确定比赛名次

    拓扑排序,居然要考虑重边,使用STL实现. #include <iostream> #include <cstdio> #include <cstring> #in ...

  7. 解决在IE里预览时弹出:为了有利于保护安全性......

    用Dreamweaver做网页,在IE里预览时弹出这个:为了有利于保护安全性,Internet Explorer 已限制此网页运行可以访问计算机的脚本或ActiveX控件. 在页面顶部加段代码就可以了 ...

  8. Java开发所需架包官方下载

    1.连接MySQL数据库所需架包点击进入官网下载 2.连接Oracle数据库所需架包点击进入官网下载 3.JUnit测试所需架包点击进入官网下载或者点击进入官网下载 4.Struts所需架包点击进入官 ...

  9. hdu4678Mine

    http://acm.hdu.edu.cn/showproblem.php?pid=4678 之前写了一并差集找连通块 貌似不对 比赛时写的dfs爆栈了 只好用bfs了 单独数字块  为1 空白+数字 ...

  10. html5 svg 第八章 文字text

    虽然它可能是真实的,每一个画面讲述了一个故事,这是完全正确的,用言语来帮助讲故事.因此,SVG有几个元素,让你将文本添加到您的图形. 文本术语 Text Terminology 在我们调查的主要方法添 ...