瞬时频率函数matlab,Hilbert 变换与瞬时频率
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])
另请参阅
相关主题
瞬时频率函数matlab,Hilbert 变换与瞬时频率相关推荐
- 瞬时频率函数matlab,瞬时频率估计的相位建模法及Matlab的实现
第 3 期 2003 年 5 月 CHINA MEASUREMENT TECHNOLOGY 中国测试技术 No. 3 May ,2003 瞬时频率估计的相位建模法及 Matlab 的实现 冯松立 陈高 ...
- matlab输入频率函数,matlab的czt()函数实现频率细化的实例
fs=256;%采样频率 N=512;%采样点数 nfft=512; n=0:1:N-1;%时间序列号 %n/fs:采样频率下对应的时间序列值 n1=fs*(0:nfft/2-1)/nfft;%F F ...
- 离散信号的希尔伯特变换的计算公式_希尔伯特变换和瞬时频率问题--连载(二)...
写在开始的一段话: PS:OK,上一期关于希尔伯特变换的文章发出后,有知友在评论区说"看到最后--居然这--",哈哈,其实我也挺愧疚大家的,明明一篇知识分享的文章,却写到结尾都没进 ...
- matlab求信号的瞬时相位,phrase MATLAB中关于信号瞬时相位 频率的提取的代码,值得学习,很实用 267万源代码下载- www.pudn.com...
文件名称: phrase下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 2403 KB 上传时间: 2014-05-06 下载次数: 94 提 供 者: 杨 ...
- matlab求信号的瞬时相位,phrase MATLAB中关于信号瞬时相位和瞬时频率的提取的代码 - 下载 - 搜珍网...
瞬时相位.频率参考/2ASK.txt 瞬时相位.频率参考/2psk_feature.m 瞬时相位.频率参考/moulation classification/classification rate s ...
- MATLAB hilbert谱 纵坐标由归一化频率改为正常频率的方法
调用disp_hhs函数绘制hht谱时,这样调用: disp_hhs(E,tt1/fs,[],fs);即把时间除以采样频率,这样时间轴就是真实时间. 把disp_hhs函数里的这一行代码 : imag ...
- Hilbert变换求信号的包络线及MATLAB代码
一.Hilbert变换表达式 Hilbert变换是信号与的卷积,表达式如下: 由于本质是卷积,因此可以从"线性系统","调幅-调频"等角度思考.进一步可参考如下 ...
- 解析信号与Matlab hilbert函数
先摘抄一段: 通常我们用到的信号都是实值信号,但是我们可以根据这个实信号构造出一个复信号,使得这个复信号只包含正频率部分,而且这个复信号的实部正好就是我们原来的实值信号.简单的推导可知,复信号的虚部是 ...
- 信号处理——Hilbert变换及谱分析
原文链接 Hilbert通常用来得到解析信号,基于此原理,Hilbert可以用来对窄带信号进行解包络,并求解信号的瞬时频率,但求解包括的时候会出现端点效应,本文对于这几点分别做了简单的理论探讨. 本文 ...
最新文章
- jmeter聚个报告怎么看qps_Jmeter查看QPS和响应时间随着时间的变化曲线
- Facebook创建新机器学习系统,用于对视频中的人脸进行“去识别化”
- dw网页设计作品_10个富有特色的网页设计精选作品
- Python(Windows)下安装各种库的多种方法总结--灵活使用pip
- 【填坑】初识钛极小龟NB-IoT物联网开发套件TiKit
- 系统监理师备考经验分享
- Html.ActionLink
- firebug的一个有趣现象
- vSphere 6.5 Upgrade Considerations Part-2 (vSphere 6.5升级注意事项第2部分)
- 实战matlab之文件与数据接口技术,实战MATLAB之文件与数据接口技术
- LVM基础详细说明及动态扩容lvm逻辑卷的操作记录
- html怎么写java代码_html中怎么写java代码
- InisghtFace 制作自定义数据集和模型训练评估
- solidworks二次开发 学习日记--1 开发方式
- STM32中GPIO工作原理详解
- 即时通讯-Netty篇
- 百度地图-创建标注 画线
- Google AppSheet: 无需编程构建零代码应用
- 通过设置路由器DMZ主机ip,却还是没法通过外网访问
- python学习之体验01