【发布时间】:2019-05-10 17:59:00
【问题描述】:
我刚刚在 Julia 中有一些代码:
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,频率
在下一部分中,我将两个文件合并到 output3 中。我期待类似于输入的东西,但我得到的声音听起来很糟糕(我的意思是它听起来像输入,但比预期的更安静,嗡嗡声更大)。
我的问题是我在代码的哪一部分丢失了有关输入的最多信息,这是一种改进它的方法,以得到与输入几乎相似的输出3?
【问题讨论】: