[R情节频谱基地

问题描述:

在R,如果我想从一个波绘制谱图,它是如下:[R情节频谱基地

>library(sound) 
>library(tuneR) 
>library(seewave) 
>s1<-readWave('sample1.wav') 
>spectro(s1,main='s1') 
>str(s1) 
Formal class 'Wave' [package "tuneR"] with 6 slots 
    [email protected] left  : int [1:312000] 2293 2196 1964 1640 1461 1285 996 600 138 -195 ... 
    [email protected] right : num(0) 
    [email protected] stereo : logi FALSE 
    [email protected] samp.rate: int 8000 
    [email protected] bit  : int 16 
    [email protected] pcm  : logi TRUE 

但如果我只是有data.txt中as

2293 2196 1964 1640 1461 1285 996 600 138 -195 ... 

我应该在spectro函数中放什么? spectro(wave, f, ...),wave据说是an R object。或者我应该用别人来获得情节?我试过

>s_1<-read.table("s_1.txt", sep=" ") 
>spectro(s_1,f=8000) 
Error in filled.contour.modif2(x = X, y = Y, z = Z, levels = collevels, : 
no proper 'z' matrix specified 

并以错误结束。谢谢。

我同意这个文档有点朦胧。

我相信它试图说的是第一个参数必须是Wave对象。您可以使用TuneRWave()函数将数值向量转换为Wave对象。

v <- runif(5000, -2^15, 2^15-1) 
v.wav <- Wave(v, samp.rate=8000, bit=16) 

spectro(v.wav) 

我没到我目前的计算机上安装seewave,所以我用软件测试了这个旧电脑上的一对夫妇岁。我不能保证这个例子会起作用。

+0

谢谢。我昨天发现它的想法和你一样,只是因为数字集存在限制长度而被卡住了。 s_1应该有超过1000个条目。所以我添加了0来完成它,然后它工作。 –