繁体   English   中英

如何使用 FFT 分析 R、Rstudio 中的音频波

[英]How would I use FFT to analyse an audio wave in R, Rstudio

我正在尝试使用 R 在声音文件中查找谐波,我还想将 plot 这些发现作为频率(Hz)(x)强度(y)图来显示找到的谐波。 到目前为止,我发现很难找到在 R 中的音频文件上使用 FFT 的有用的工作示例,因为大多数教程都使用预制的余弦或正弦波。

我在社区代码下的https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/fft页面上找到了一个示例,但是当我尝试在音频文件。

#my addition (I've left the wave file space empty deliberately)
voice <- readWave("",from=0, to=Inf, units=c("seconds"), header=FALSE, toWaveMC=NULL) 

#the community code
x <- wavobj@left
fs <- wavobj@samp.rate
nbits <- wavobj@bit      

x <- x[1:(fs*5)]   

y <- fft(x)

y.tmp <- Mod(y)   

y.tmp <- Mod(y)
y.ampspec <- y.tmp[1:(length(y)/2+1)]
y.ampspec[2:(length(y)/2)] <- y.ampspec[2:(length(y)/2)] * 2

f <- seq(from=0, to=fs/2, length=length(y)/2+1)

plot(f, y.ampspec, type="h", xlab="Frequency (Hz)", ylab="Amplitude Spectrum", xlim=c(0, 350))

请发送一些帮助!

如果您可以使用seewave package,它有一些有用的功能,包括计算平均频谱的meanspec 这是一个例子。

library(tuneR)
library(seewave)

data('sheep')
ms <- meanspec(sheep)

ms object 是一个二维数组,其中第一列是频率,第二列是幅度。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM