Симулируйте систему Sample-and-Hold

Этот пример показывает несколько способов симулировать выход системы дискретизации и удержания путем увеличения дискретизации и фильтрации сигнала.

Создайте синусоидальный сигнал. Задайте частоту дискретизации так, чтобы 16 выборки соответствовали в точности одному периоду сигнала. Нарисуйте диаграмму лист-ствол сигнала. Наложите ступенчатый график для визуализации sample-and-hold.

fs = 16;
t = 0:1/fs:1-1/fs;

x = .9*sin(2*pi*t);

stem(t,x)
hold on
stairs(t,x)
hold off

Figure contains an axes. The axes contains 2 objects of type stem, stair.

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

ups = 4;

fu = fs*ups;
tu = 0:1/fu:1-1/fu;

y = upsample(x,ups);

stem(tu,y,'--x')

hold on
stairs(t,x)
hold off

Figure contains an axes. The axes contains 2 objects of type stem, stair.

Фильтр с конечной импульсной характеристикой фильтром скользящего среднего, чтобы заполнить нули значениями sample-and-hold.

h = ones(ups,1);

z = filter(h,1,y);

stem(tu,z,'--.')
hold on
stairs(t,x)
hold off

Figure contains an axes. The axes contains 2 objects of type stem, stair.

Такое же поведение можно получить с помощью функции MATLAB ® interp1 с интерполяцией по ближайшему соседу. В этом случае необходимо переместить источник, чтобы выстроить последовательность.

zi = interp1(t,x,tu,'nearest');

dl = floor(ups/2);

stem(tu(1+dl:end),zi(1:end-dl),'--.')
hold on
stairs(t,x)
hold off

Figure contains an axes. The axes contains 2 objects of type stem, stair.

Функция resample приводит к тому же результату, когда задается нуль последнего входного параметра.

q = resample(x,ups,1,0);

stem(tu(1+dl:end),q(1:end-dl),'--.')
hold on
stairs(t,x)
hold off

Figure contains an axes. The axes contains 2 objects of type stem, stair.

См. также

|