使用hht变换_MATLAB R2018a中信号处理相关的新函数: 求瞬时频率 instfreq, emd, hht

本文介绍了MATLAB R2018a新增的信号处理函数instfreq、emd和hht。instfreq用于估算瞬时频率,emd实现经验模态分解,hht则是Hilbert-Huang变换,结合emd和hilbert对瞬时频率成分复杂的信号进行分析。通过示例,展示了如何使用这些函数进行信号分解和瞬时频率的提取。
摘要由CSDN通过智能技术生成

d27402380e86f56d5487bc8bec554ad0.png
知乎视频​www.zhihu.com

泪目, 以前自己写代码写emd函数, 现在官方有这个函数了!

instfreq: Estimate instantaneous frequency

适用于瞬时频率的成分只有一个的信号, 如果成分有多个, 可以先进行EMD分解.

两种算法:

1 基于STFT.

以功率为权重, 频率的加权平均的频率为瞬时频率.

9d4e398646d250786bd91892004f7be8.png

2 基于hilbert变换.

1274b09ebdd8793127809f4d9e4cd007.png

几个例子:

e5cbe390d3d7e81ea6dbab47c6b3f460.png

1362ccaacc7c21bf00b54c4fb84fd893.png

emd: Empirical mode decomposition

hht: Hilbert-Huang transform

hht本质是emd+hilbert, 具体分两步:

第一步, 对信号进行emd分解, 生产若干个imf

第二步, 对每个imf进行hilbert变换, hilbert变换的函数就是hilbert, R2006a之前就有了.

emd函数是R2018a的新函数, 第三方函数很早就有了.

hht相比hilbert的优势是:

hilbert只能对任意时刻的瞬时频率成分单一的信号求瞬时频率.

但是, 如果如果某个时刻的瞬时频率成分有多个怎么办呢?

emd就是将信号分成若干个imf, 每个imf的瞬时频率是单一的, 这样就满足了hilbert的适用范围了.

举个例子:

2542d6d4b5ca305ae1eb1e6162034f7d.png

进行emd分解:

2f749b29c717b1e6d6c6a4a7961ba195.png

可以看出1000 samples之前, 瞬时频率成分有2个, 1000 samples之后, 瞬时频率成分有3个.

使用hht:

78b749095d4b83c966a9e54c6b1e9f61.png

可以非常清晰看到: 1秒之前, 瞬时频率成分有2个, 1秒之后, 瞬时频率成分有3个(采样频率为1000Hz). 这个结论和emd一致, 进一步, 还可以看到这些瞬时频率分别是多少.

创作不易, 请大家"素质三连": 点赞, 收藏, 分享.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值