[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对象。您可以使用TuneR
Wave()
函数将数值向量转换为Wave对象。
v <- runif(5000, -2^15, 2^15-1)
v.wav <- Wave(v, samp.rate=8000, bit=16)
spectro(v.wav)
我没到我目前的计算机上安装seewave
,所以我用软件测试了这个旧电脑上的一对夫妇岁。我不能保证这个例子会起作用。
谢谢。我昨天发现它的想法和你一样,只是因为数字集存在限制长度而被卡住了。 s_1应该有超过1000个条目。所以我添加了0来完成它,然后它工作。 –