У меня есть какой-то код в Джулии, который я только что написал:
using FFTW
using Plots
using WAV, PlotlyJS
snd, sampFreq = wavread("input.wav")
N, _ = size(snd)
t = 0:1/(N-1):1;
s = snd[:,1]
y = fft(s)
y1 = copy(y)
for i = 1:N
if abs(y1[i]) > 800
y1[i] = 0
end
end
s_new = real(ifft(y1))
wavwrite(s_new, "output1.wav", Fs = sampFreq)
y2 = copy(y)
for i = 1:N
if abs(y2[i]) < 800
y2[i] = 0
end
end
s_new = real(ifft(y2))
wavwrite(s_new, "output2.wav", Fs = sampFreq)
sticks((abs.(y1)))
sticks!((abs.(y2)))
s1,k1 = wavread("output1.wav")
s2,k2 = wavread("output2.wav")
for i = 1:N
s1[i] += s2[i]
end
wavwrite(s1, "output3.wav", Fs = sampFreq)
это код, который читает файл input.wav, затем выполните fft по звуку, разделив его на два файла output1 с только частотами> 800 и output2 с частотами <800. </p>
В следующей части я объединю два файла в output3.Я ожидал чего-то похожего на ввод, но то, что я получаю, звучит ужасно (я имею в виду, что это звучит как ввод, но он тише и с гулом больше, чем ожидалось).
У меня вопрос, на какой части кода я теряюбольшая часть информации о входных данных и способ ее улучшить, получить в качестве выходных данных3 что-то почти похожее на входные данные?