Фильтрация перед понижающей дискретизацией

Этот пример показывает, как фильтровать перед понижающей дискретизацией, чтобы уменьшить искажение, вызванное сглаживанием. Можно использовать decimate или resample для фильтрации и downsample с одной функцией. Также можно lowpass фильтровать данные и затем использовать downsample. Создайте сигнал с спектральной поддержкой основной полосы частот, большей, чем π радианы. Использование decimate для фильтрации сигнала фильтром I типа Чебышева 10-го порядка 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')

Figure contains an axes. The axes contains an object of type line.

Фильтрация сигнала с помощью lowpass Чебышева I типа 10-го порядка и downsample на 2. Постройте график спектров величины исходного сигнала вместе с фильтрованным и понижающим сигналом. Lowpass уменьшает количество искажений сглаживания за пределами интервала [-π/2,π/2].

y = decimate(b,2,10);
Hy = fftshift(freqz(y,1,nf,'whole'));

hold on
plot(omega/pi,abs(Hy))
legend('Original','Downsampled')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original, Downsampled.

См. также

| |

Для просмотра документации необходимо авторизоваться на сайте