В этом примере показано, как фильтровать перед понижающей дискретизацией, чтобы уменьшить искажение, вызванное наложением псевдонимов. Вы можете использовать decimate или resample фильтрация и понижение выборки с помощью одной функции. Кроме того, можно фильтровать данные в нижних полосах, а затем использовать downsample. Создайте сигнал со спектральной поддержкой основной полосы, превышающей радиан. Использовать decimate фильтрация сигнала с помощью фильтра нижних частот Чебышева типа I 10-го порядка перед понижающей дискретизацией.
Создайте сигнал и постройте график амплитудного спектра.
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-го порядка и понижение частоты на 2. Постройте график амплитудных спектров исходного сигнала вместе с отфильтрованным и пониженно дискретизированным сигналом. Фильтр нижних частот уменьшает величину искажения наложения вне интервала ].
y = decimate(b,2,10); Hy = fftshift(freqz(y,1,nf,'whole')); hold on plot(omega/pi,abs(Hy)) legend('Original','Downsampled')
