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