Изменение оси на спектрограмме в R - PullRequest
0 голосов
/ 01 марта 2019

Используя пример, который я нашел в сети из смеси пакетов tuneR, signal и oce, я создал спектрограмму из своего файла wav.

тестовая спектрограмма: [https://drive.google.com/drive/folders/1G0aLcx3-_STLIABWwz0e7y-fzB9pfMFh?usp=sharing]

Однако, когда я пытаюсь изменить тики оси x с 0,200, 400, 600, 800 на любой набор или случайные числа (например, 0,200, 400,600. 800, 1000), спектрограмма искажается (как я полагаю, все это связано с временами в спектрограмме).Я использовал некоторые основы графиков, чтобы попытаться изменить их, например, xlim = c (0, 1000, 200).Мне интересно, может ли кто-нибудь оказать помощь в изменении значений оси X от того, что пакеты определяют их для любого набора чисел.

Код:

   library(tuneR, warn.conflicts = F, quietly = T)
    library(signal, warn.conflicts = F, quietly = T) 
    library(oce, warn.conflicts = F, quietly = T)

    fin <- "F:/noise/old/origional_combined.wav"
    data = readWave(fin)
snd = data@left
dur = length(snd)/data@samp.rate
fs = data@samp.rate/1000
snd = snd - mean(snd)
nfft=1124
window=256
overlap=128
spec = specgram(x = snd,
                n = nfft,
                Fs = fs,
                window = window,
                overlap = overlap
)
P = abs(spec$S)
P = P/max(P)
P = 10*log10(P)
t = spec$t
imagep(x = t,
       y = spec$f,
       z = t(P),
       col = oce.colorsViridis,
       ylab = 'Frequency [kHz]',
       xlab = 'Time [s]',
       drawPalette = T,
       decimate = F
)
...