Используете ли вы wavplay, аудиоплеер или что-то еще для воспроизведения прореженных сигналов? Вы явно указываете частоты дискретизации?
Функции принимают частоту дискретизации в качестве одного из параметров (второй параметр). Вы уменьшаете частоту дискретизации по мере того, как вы ее используете, поэтому вам нужно соответствующим образом обновить этот параметр.
Кроме того, при построении графика вы должны:
- построите в N раз больше точек на исходных данных (при расчете на N)
- предоставьте соответствующий ввод по оси x - я рекомендую t = (1 / Fs: 1 / Fs: maxT), где maxT - это максимальное время, которое вы хотите построить, что будет соответствовать # 1, если вы используете обновленные F, что будет привести к большим временным шагам (и убедитесь, что транспонировал t, если он не соответствует вашему сигналу)
Я добавил пример, который воспроизводит чирп и децимированный чирп (этот чирп является частью стандартной установки MATLAB). Я усилил прореженную версию. Tic и toc показывают, что истекшее время эквивалентно (в пределах изменений загрузки процессора и т. Д.) - обратите внимание, что это также работает для decim = 3 и т. Д .:
load chirp
inWav = y;
inFs = Fs;
decim = 2;
outWav = decimate(inWav,decim);
outFs = inFs/decim;
tic, wavplay(inWav,inFs),toc
pause(0.2)
tic,wavplay(outWav*decim^2,outFs),toc
Функция 'decimate' действительно портит звук чириканья (частота дискретизации которого не очень высокая частота для начала), но, возможно, вы пытаетесь показать что-то вроде этого ...