Многоскоростная обработка с EngeeDSP
Автор
function fftspectrum(sig, fs; nfft = nothing, onesided = nothing)
if nfft != nothing
nsamples = nfft;
sig = sig[1:nfft];
else
nsamples = length(sig);
end
A = EngeeDSP.Functions.fft(sig);
B = EngeeDSP.Functions.fftshift(A);
S = (2*B)/nsamples;
out = 10log10.(abs.(S.^2));
df = fs/nsamples;
if onesided == true
f = 0:df:fs/2;
out = out[Int(ceil(nsamples/2)):end]
else
f = -fs/2:df:fs/2-df;
end
return out, f
end
import Pkg
neededLibs = ["WAV", "Base64"]
for lib in neededLibs
try
eval(Meta.parse("using $lib"))
catch ex
Pkg.add(lib)
eval(Meta.parse("using $lib"))
end
end
function audioplayer(s, fs);
buf = IOBuffer();
wavwrite(s, buf; Fs=fs);
data = base64encode(unsafe_string(pointer(buf.data), buf.size));
markup = """<audio controls="controls" {autoplay}>
<source src="data:audio/wav;base64,$data" type="audio/wav" />
Your browser does not support the audio element.
</audio>"""
display("text/html", markup);
end