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