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

В этом примере показано, как отфильтровать прежде, чем проредить, чтобы смягчить искажение, вызванное путем искажения. Можно использовать 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];
Order = 511;
B = fir2(Order,F,A);
[Hx,W] = freqz(B,1,8192,'whole');
Hx = [Hx(4098:end) ; Hx(1:4097)];
omega = -pi+(2*pi/8192):(2*pi)/8192:pi;

plot(omega,abs(Hx))
xlim([-pi pi])
grid
title('Magnitude Spectrum')
xlabel('Radians/Sample')
ylabel('Magnitude')

Отфильтруйте сигнал с типом I 10-го порядка Чебышев фильтр lowpass и проредите 2. Постройте спектры величины исходного сигнала наряду с отфильтрованным и прореженным сигналом.

y = decimate(B,2,10);
[Hy,W] = freqz(y,1,8192,'whole');
Hy = [Hy(4098:end) ; Hy(1:4097)];

hold on
plot(omega,abs(Hy),'r','linewidth',2)
legend('Original Signal','Downsampled Signal')

Фильтр lowpass уменьшает объем искажения искажения вне интервала [-π/2,π/2].

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

| |

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