如何使用小波检测信号中的基频?

时间:2014-06-27 12:10:54

标签: wavelet

我有一个嘈杂的正弦信号,我想从中提取正弦的基频。我该怎么用?

信号处于离散时域,具有已知的采样频率。实际上我试图证实我通过FFT分析得到的答案,所以我不能使用FFT。

1 个答案:

答案 0 :(得分:0)

这是一段R代码,它对某些信号实现连续小波变换(使用biwavelet包)。

信号由频率为40 Hz的正弦波和随机噪声组成。 结果显示频率40 Hz在整个信号中占主导地位。

signal.len <- 1024  # input param.
sin.freq   <- 40    # input param.

# noise + 40 Hz sine wave
signal <- rnorm(signal.len) + sin(sin.freq*2*pi/signal.len * 1:signal.len)

library(biwavelet) 
w <- wt(cbind(index(signal), signal))  # continuous wavelet transform

# rendering the results
par(mfrow=c(2,1))
plot.default(signal, type = "l", xaxs = "i")  # the signal
plot.biwavelet(w, useRaster = TRUE)           # spectrum of the signal

enter image description here