Hilbert 变换仅可估计单分量信号的瞬时频率。单分量信号在时频平面中用单一“脊”来描述。单分量信号包括单一正弦波信号和 chirp 等信号。

生成以 1 kHz 采样的时长为两秒的 chirp 信号。指定 chirp 信号的最初频率为 100 Hz,一秒后增加到 200 Hz。

fs = 1000;
t = 0:1/fs:2-1/fs;
y = chirp(t,100,1,200);

使用通过 pspectrum 函数实现的短时傅里叶变换来估计 chirp 信号的频谱图。下图中每个时间点有一个峰值频率,很好地描述了这一信号。

pspectrum(y,fs,'spectrogram')

如图所示:

计算解析信号并对相位进行微分以得到瞬时频率。对导数进行缩放以得到有意义的估计。

z = hilbert(y);
instfrq = fs/(2*pi)*diff(unwrap(angle(z)));clf
plot(t(2:end),instfrq)
ylim([0 fs/2])

如图所示:

instfreq 函数只需一步即可计算并显示瞬时频率。

instfreq(y,fs,'Method','hilbert')

如图所示:

当信号不是单分量时,该方法会失败。生成频率为 60 Hz 和 90 Hz 的两个正弦波的总和,以 1023 Hz 采样两秒。计算并绘制频谱图。在每个时间点都显示存在两个分量。

fs = 1023;
t = 0:1/fs:2-1/fs;
x = sin(2*pi*60*t)+sin(2*pi*90*t);pspectrum(x,fs,'spectrogram')
yticks([60 90])

如图所示:

计算分析信号并对其相位求微分。放大包含正弦波频率的区域。分析信号预测瞬时频率,即正弦波频率的平均值。

z = hilbert(x);
instfrq = fs/(2*pi)*diff(unwrap(angle(z)));plot(t(2:end),instfrq)
ylim([60 90])
xlabel('Time (s)')
ylabel('Frequency (Hz)')

如图所示:

instfreq 函数也估算平均值。

instfreq(x,fs,'Method','hilbert')

如图所示:

要采用时间的函数来估算这两个频率,请使用 spectrogram 求功率频谱密度,使用 tfridge 跟踪两个脊。在 tfridge 中,将更改频率的罚分指定为 0.1。

[s,f,tt] = pspectrum(x,fs,'spectrogram');numcomp = 2;
[fridge,~,lr] = tfridge(s,f,0.1,'NumRidges',numcomp);pspectrum(x,fs,'spectrogram')
hold on
plot3(tt,fridge,abs(s(lr)),'LineWidth',4)
hold off
yticks([60 90])

如图所示:

Hilbert 变换与瞬时频率相关推荐

  1. 瞬时频率函数matlab,Hilbert 变换与瞬时频率

    Hilbert 变换与瞬时频率 Hilbert 变换仅可估计单分量信号的瞬时频率.单分量信号在时频平面中用单一"脊"来描述.单分量信号包括单一正弦波信号和 chirp 等信号. 生 ...

  2. 离散信号的希尔伯特变换的计算公式_希尔伯特变换和瞬时频率问题--连载(二)...

    写在开始的一段话: PS:OK,上一期关于希尔伯特变换的文章发出后,有知友在评论区说"看到最后--居然这--",哈哈,其实我也挺愧疚大家的,明明一篇知识分享的文章,却写到结尾都没进 ...

  3. 希尔伯特变换求瞬时频率的matlab动态实现

    通过希尔伯特变换可以求得一个信号的包络曲线,瞬时频率,瞬时相位,瞬时谱等等. 计算方法在此不赘述,本文只演示希尔伯特变换求包络线和瞬时频率的效果. 代码: clc;close all;clear; x ...

  4. matlab求信号的瞬时相位,phrase MATLAB中关于信号瞬时相位和瞬时频率的提取的代码 - 下载 - 搜珍网...

    瞬时相位.频率参考/2ASK.txt 瞬时相位.频率参考/2psk_feature.m 瞬时相位.频率参考/moulation classification/classification rate s ...

  5. [HT/NHT/DQ]-三种基于EMD的瞬时频率计算方法的比较

    文章目录 0 前言 1 瞬时频率和经验模态分解 1.1 瞬时频率的定义 1.2 经验模态分解 2 瞬时频率的计算方法 2.1 HT方法 2.2 NHT方法 2.3 DQ方法 3 三种瞬时频率计算方法的 ...

  6. Hilbert变换求信号的包络线及MATLAB代码

    一.Hilbert变换表达式 Hilbert变换是信号与的卷积,表达式如下: 由于本质是卷积,因此可以从"线性系统","调幅-调频"等角度思考.进一步可参考如下 ...

  7. 希尔伯特-黄变换(HHT)的前世今生——一个从瞬时频率讲起的故事

    一.来自小X的疑问 从前有一个国家,叫做实国(一维国度),里边有个叫小X的小人儿. 小X是一根线段,他每天最爱做的事情就是跳舞. 因为小X的舞姿十分稳定,同伴们都说他的头部跳出了频率为1hz的正弦曲线 ...

  8. 希尔伯特谱、边际谱、包络谱、瞬时频率/幅值/相位——Hilbert分析衍生方法及MATLAB实现

    上一篇文章对希尔伯特-黄变换(HHT)的前世今生进行了介绍. 不过在研究中通常并不是到希尔伯特-黄变换就停止了. 而是要用到诸如希尔伯特谱.包络谱.边际谱.瞬时频率/幅值/相位等方法进一步分析. 这些 ...

  9. 信号处理——Hilbert变换及谱分析

    原文链接 Hilbert通常用来得到解析信号,基于此原理,Hilbert可以用来对窄带信号进行解包络,并求解信号的瞬时频率,但求解包括的时候会出现端点效应,本文对于这几点分别做了简单的理论探讨. 本文 ...

  10. c++ 包络谱分析代码_信号处理——Hilbert变换及谱分析

    作者:桂. 时间:2017-03-03  23:57:29 前言 Hilbert通常用来得到解析信号,基于此原理,Hilbert可以用来对窄带信号进行解包络,并求解信号的瞬时频率,但求解包括的时候会出 ...

最新文章

  1. 【MATLAB】数据类型 ( 矩阵 | 随机数函数 | 生成矩阵 )
  2. Python爬取房天下租房信息实战
  3. python 深度 视差 计算_OpenCV-Python教程:49.立体图像的深度图
  4. 敏捷开发般若敏捷系列之八:敏捷的未来会怎样?
  5. Centos5.5系统备份
  6. 关于msgpack序列化后的消息包是否再压缩
  7. 李雅普诺夫指数的计算
  8. 数据清理中,处理缺失值的方法
  9. local_listener参数(1)---elaine
  10. sdk 今日头条_今日头条大数据分析平台艰辛成长路
  11. lr各种问题以及解决办法
  12. 讲讲如何将图片格式转化成base64格式的
  13. [SUCCESS]Fedora install Nvidia-driver
  14. STM32F103步进电机驱动简单控制
  15. 基于Eclipse的毕业设计题目50例
  16. 贝灵机器人智能点读笔好吗_小怪兽AI智能点读笔笔值不值得买,看完你就不用纠结了...
  17. YOLO 对象检测 OpenCV 源代码
  18. 手写Spring DI依赖注入,嘿,你的益达!
  19. 2015 Xcode7 真机调试(开发者)以及P12配置
  20. Elastic-Job中Zookeeper的作用

热门文章

  1. 油烟浓度在线监测仪在浙江省某市餐饮油烟监测治理项目中的应用
  2. 索引优化数据库的8种方法
  3. FreeImage的学习资料汇总
  4. imageJ 如何下载plugin_尺寸统计软件Nano measurer详细使用教程(附下载链接)
  5. linux tex文件编译,用latexmk编译XeLaTeX tex文件
  6. 关于MAC解决jupyter中出现nbconvert failed/ xelatex not found on path报错
  7. Python 16进制、字符串转换
  8. java输出杨辉三角_使用Java输出杨辉三角
  9. ZedGraph例子
  10. Excel函数大全-12统计函数