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

В этом примере показано, как сверхдискретизировать сигнал и применить фильтр интерполяции lowpass с interp. Повышающая дискретизация L вставляет L – 1 нуль между каждым элементом исходного сигнала. Повышающая дискретизация может создать артефакты обработки изображений. Фильтрация lowpass после повышающей дискретизации может удалить эти артефакты обработки изображений. Во временном интервале фильтрация lowpass интерполирует нули, вставленные путем повышающей дискретизации.

Создайте сигнал дискретного времени, основополосная спектральная поддержка которого [-π/2,π/2]. Постройте спектр величины.

f = [0 0.250 0.500 0.7500 1];
a = [1.0000 0.5000 0 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.

Сверхдискретизируйте сигнал и примените фильтр lowpass, чтобы удалить артефакты обработки изображений. Постройте спектр величины. Повышающая дискретизация все еще сокращает спектр, но артефакты обработки изображений удалены фильтром lowpass.

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

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

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

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

| |