Симулируйте систему производить-и-содержать

Этот пример показывает несколько способов симулировать выход системы производить-и-содержать путем повышающей дискретизации и фильтрации сигнала.

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

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

Сверхдискретизируйте сигнал на коэффициент четыре. Постройте результат вместе с исходным сигналом. 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

Отфильтруйте с КИХ-фильтром скользящего среднего значения, чтобы заполнить нули со значениями производить-и-содержать.

h = ones(ups,1);

z = filter(h,1,y);

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

Можно получить то же поведение с помощью функции 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

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

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

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

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

|