Фильтрация после увеличения дискретизации - интерполяция

Этот пример показывает, как усилить сигнал и применить 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. The axes 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. The axes contains 2 objects of type line. These objects represent Original, Upsampled.

См. также

| |