GNU Octave中极短信号的频率分析

时间:2015-12-29 09:10:22

标签: signal-processing fft octave wavelet

我有一些非常短的信号来自示波器(50k-200k样本),在大约2ms的时间长度内注册。这些是具有ESD(静电放电)火花的记录信号的声学信号。 我希望在接近声频范围(最高约30kHz)内获得该信号的一些频率数据,并尽可能提高时间分辨率。

我已经尝试绘制谱图(Octave中的specgram)来查看信号,但输出并不是真的有用。使用specgram( x, N, fs );,其中xfs采样率的信号,我接收的图表从大约500MHz的非常高的频率开始,对于N的低值,我得到更好的大N的频率分辨率值(如2 ^ 12-13)但窗口太宽,我在整个信号长度上只收到2个频谱值。

据我所知,可能是specier函数可能使用的傅里叶变换的限制(实际上,我对信号分析并不了解)。

有没有其他方法可以获得某种频率(作为时间函数)的信息?我已经阅读了有关wavelet的内容,但是当我尝试使用信号包的dwt函数时,我收到了这个错误:

error: 'wfilters' undefined near line 51 column 14
error: called from
    dwt at line 51 column 12

即使这样可行,我也不确定我是否知道如何实际使用这些小波函数的输出...

1 个答案:

答案 0 :(得分:0)

要从如此高的采样率中获取音频信息,您需要获得足够长的采样向量,以便在音频频率上包含至少几个完整周期,例如:许多10毫秒的连续样本,可能会或可能不会超出您的范围。为了合理地处理这些数据量,您可以对样本数据进行低通滤波以仅包含音频频率,然后将其重新采样到较低的采样率,但是高于滤波器截止频率的两倍。然后,您将得到一个更短的采样矢量,为您的音频频谱分析提供FFT。