Hilbert 变换与瞬时频率
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 变换与瞬时频率相关推荐
- 瞬时频率函数matlab,Hilbert 变换与瞬时频率
Hilbert 变换与瞬时频率 Hilbert 变换仅可估计单分量信号的瞬时频率.单分量信号在时频平面中用单一"脊"来描述.单分量信号包括单一正弦波信号和 chirp 等信号. 生 ...
- 离散信号的希尔伯特变换的计算公式_希尔伯特变换和瞬时频率问题--连载(二)...
写在开始的一段话: PS:OK,上一期关于希尔伯特变换的文章发出后,有知友在评论区说"看到最后--居然这--",哈哈,其实我也挺愧疚大家的,明明一篇知识分享的文章,却写到结尾都没进 ...
- 希尔伯特变换求瞬时频率的matlab动态实现
通过希尔伯特变换可以求得一个信号的包络曲线,瞬时频率,瞬时相位,瞬时谱等等. 计算方法在此不赘述,本文只演示希尔伯特变换求包络线和瞬时频率的效果. 代码: clc;close all;clear; x ...
- matlab求信号的瞬时相位,phrase MATLAB中关于信号瞬时相位和瞬时频率的提取的代码 - 下载 - 搜珍网...
瞬时相位.频率参考/2ASK.txt 瞬时相位.频率参考/2psk_feature.m 瞬时相位.频率参考/moulation classification/classification rate s ...
- [HT/NHT/DQ]-三种基于EMD的瞬时频率计算方法的比较
文章目录 0 前言 1 瞬时频率和经验模态分解 1.1 瞬时频率的定义 1.2 经验模态分解 2 瞬时频率的计算方法 2.1 HT方法 2.2 NHT方法 2.3 DQ方法 3 三种瞬时频率计算方法的 ...
- Hilbert变换求信号的包络线及MATLAB代码
一.Hilbert变换表达式 Hilbert变换是信号与的卷积,表达式如下: 由于本质是卷积,因此可以从"线性系统","调幅-调频"等角度思考.进一步可参考如下 ...
- 希尔伯特-黄变换(HHT)的前世今生——一个从瞬时频率讲起的故事
一.来自小X的疑问 从前有一个国家,叫做实国(一维国度),里边有个叫小X的小人儿. 小X是一根线段,他每天最爱做的事情就是跳舞. 因为小X的舞姿十分稳定,同伴们都说他的头部跳出了频率为1hz的正弦曲线 ...
- 希尔伯特谱、边际谱、包络谱、瞬时频率/幅值/相位——Hilbert分析衍生方法及MATLAB实现
上一篇文章对希尔伯特-黄变换(HHT)的前世今生进行了介绍. 不过在研究中通常并不是到希尔伯特-黄变换就停止了. 而是要用到诸如希尔伯特谱.包络谱.边际谱.瞬时频率/幅值/相位等方法进一步分析. 这些 ...
- 信号处理——Hilbert变换及谱分析
原文链接 Hilbert通常用来得到解析信号,基于此原理,Hilbert可以用来对窄带信号进行解包络,并求解信号的瞬时频率,但求解包括的时候会出现端点效应,本文对于这几点分别做了简单的理论探讨. 本文 ...
- c++ 包络谱分析代码_信号处理——Hilbert变换及谱分析
作者:桂. 时间:2017-03-03 23:57:29 前言 Hilbert通常用来得到解析信号,基于此原理,Hilbert可以用来对窄带信号进行解包络,并求解信号的瞬时频率,但求解包括的时候会出 ...
最新文章
- 【MATLAB】数据类型 ( 矩阵 | 随机数函数 | 生成矩阵 )
- Python爬取房天下租房信息实战
- python 深度 视差 计算_OpenCV-Python教程:49.立体图像的深度图
- 敏捷开发般若敏捷系列之八:敏捷的未来会怎样?
- Centos5.5系统备份
- 关于msgpack序列化后的消息包是否再压缩
- 李雅普诺夫指数的计算
- 数据清理中,处理缺失值的方法
- local_listener参数(1)---elaine
- sdk 今日头条_今日头条大数据分析平台艰辛成长路
- lr各种问题以及解决办法
- 讲讲如何将图片格式转化成base64格式的
- [SUCCESS]Fedora install Nvidia-driver
- STM32F103步进电机驱动简单控制
- 基于Eclipse的毕业设计题目50例
- 贝灵机器人智能点读笔好吗_小怪兽AI智能点读笔笔值不值得买,看完你就不用纠结了...
- YOLO 对象检测 OpenCV 源代码
- 手写Spring DI依赖注入,嘿,你的益达!
- 2015 Xcode7 真机调试(开发者)以及P12配置
- Elastic-Job中Zookeeper的作用
热门文章
- 油烟浓度在线监测仪在浙江省某市餐饮油烟监测治理项目中的应用
- 索引优化数据库的8种方法
- FreeImage的学习资料汇总
- imageJ 如何下载plugin_尺寸统计软件Nano measurer详细使用教程(附下载链接)
- linux tex文件编译,用latexmk编译XeLaTeX tex文件
- 关于MAC解决jupyter中出现nbconvert failed/ xelatex not found on path报错
- Python 16进制、字符串转换
- java输出杨辉三角_使用Java输出杨辉三角
- ZedGraph例子
- Excel函数大全-12统计函数