[Speex-dev] FFT Resampler spectrograms
Thorvald Natvig
thorvald at natvig.com
Fri May 30 18:35:05 PDT 2008
Using the following MATLAB snippet:
fnames={'chirp','perfect','block','filter'}
for k=1:length(fnames)
fn=fnames{k};
myfile=fopen([fn, '.fl'], 'r', 'ieee-le');
x=fread(myfile, Inf, 'float32', 0, 'ieee-le');
fclose(myfile);
X=specgram(x,2048,1,kaiser(2048,14));
spectrogram_floor=-96;
pcolor(max(spectrogram_floor,20*log10(abs(X(end:-1:1,:)))));
shading flat
colorbar
print('-dpng','-r300', [fn, '.png'])
end
['Done']
I've posted the output for the filter-based and block-based resampler at
different qualities at http://www.mumble.info/resamp/
The resampling was 96khz => 44.1khz.
"chirp.png" is the original (unresampled)
"perfect.png" is the result of a FFT/chop/iFFT of the whole file as one.
"filter0.png" to "filter10.png" is the "normal" resampler at different
quality levels.
"block+X.png" is the block-based resampler with X samples overlap (and
960 samples (10ms) base block size). Note that block+0 and block+96 are
not legal values for the resampler, they're just there to see how bad it
can get. The first "legal" value is block+320, which has 3.3ms delay (on
top of the 10ms block).
More information about the Speex-dev
mailing list