信号分析:MATLAB中的幅度估计 [英] Signal analysis: amplitude estimation in MATLAB

查看:431
本文介绍了信号分析:MATLAB中的幅度估计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在MATLAB中估算信号的幅度:

I am trying to estimate the amplitude of a signal in MATLAB:

可以看出,我不能简单地使用max()和min()来获取振幅.信号不断波动,并且在任何情况下都不是恒定的.但是,我要寻找的只是一个平均值-一个单一的数字,可以估算上图中的主要成分的平均幅度(重复八次).在视觉上,很明显我正在尝试找出.但是,以编程方式...

As can be seen, I can't simply take the max() and min() to get the amplitude. The signal continually wanders, and in any case isn't constant. However, all that I'm looking for is an average - one single figure that estimates the average amplitude of the dominant component in the figure above (which repeats eight times). Visually, it's fairly obvious what I'm trying to find out. Programatically however...

我听说过有关希尔伯特变换"-hilbert()-和快速傅立叶变换"-fft()的事,但对信号分析的了解却很少-我想知道是否有人能够引导我正确使用方向,或说明如何利用这些功能中的任何一个.我的数据只是存储在1000Hz一维数组中的浮点数.

I have heard tell of 'Hilbert transform' - hilbert() - and 'fast fourier transform' - fft() - but have very little knowledge of signal analysis - and wonder if anyone might be able to steer me in the right direction, or explain how to utilise either of these functions. My data is simply a float stored in a one-dimensional array at 1000Hz.

感谢您的任何帮助!

推荐答案

您有几种选择,最简单的选择是:

You have several options, the easiest of which would be:

  1. 使用峰值检测器查找局部极值.您可以在MathWorks File Exchange上找到几个.
  2. 应用高通滤波器以消除基线漂移,然后找到绝对的最小值和最大值

这篇关于信号分析:MATLAB中的幅度估计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆