Изменение оси на спектрограмме в R

Используя пример, который я нашел в Интернете из смеси пакетов 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
)

0 ответов

Другие вопросы по тегам