Этот пример показывает несколько способов симулировать выход системы производить-и-содержать путем повышающей дискретизации и фильтрации сигнала.
Создайте синусоидальный сигнал. Задайте частоту дискретизации, таким образом, что 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