В этом примере показано, как отфильтровать прежде, чем проредить, чтобы смягчить искажение, вызванное путем искажения. Можно использовать decimate
или resample
отфильтровать и проредить с одной функцией. В качестве альтернативы вы можете lowpass фильтровать ваши данные и затем использовать downsample
. Создайте сигнал с основополосной спектральной поддержкой, больше, чем радианы. Используйте decimate
отфильтровать сигнал с 10-м порядком тип I Чебышева фильтр lowpass до субдискретизации.
Создайте сигнал и постройте спектр величины.
f = [0 0.2500 0.5000 0.7500 1.0000]; a = [1.00 0.6667 0.3333 0 0]; nf = 512; b = fir2(nf-1,f,a); Hx = fftshift(freqz(b,1,nf,'whole')); omega = -pi:2*pi/nf:pi-2*pi/nf; plot(omega/pi,abs(Hx)) grid xlabel('\times\pi rad/sample') ylabel('Magnitude')
Отфильтруйте сигнал с типом I 10-го порядка Чебышев фильтр lowpass и проредите 2. Постройте спектры величины исходного сигнала наряду с отфильтрованным и прореженным сигналом. Фильтр lowpass уменьшает объем искажения искажения вне интервала .
y = decimate(b,2,10); Hy = fftshift(freqz(y,1,nf,'whole')); hold on plot(omega/pi,abs(Hy)) legend('Original','Downsampled')