Фильтрация перед субдискретизацией

В этом примере показано, как отфильтровать прежде, чем проредить, чтобы смягчить искажение, вызванное путем искажения. Можно использовать 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')

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

Отфильтруйте сигнал с типом I 10-го порядка Чебышев фильтр lowpass и проредите 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 object. The axes object contains 2 objects of type line. These objects represent Original, Downsampled.

Смотрите также

| |