exponenta event banner

lowpassResample

Преобразование сигнала из одного времени выборки в другое

Описание

пример

[vq,vdq] = lowpassResample(t,v,tq,config) возвращает интерполированный вектор выборок vq и их производные vdq от времени входной выборки t, входные значения выборки vи время вывода выборки tq. Процесс интерполяции определяется параметрами в config.

Примеры

свернуть все

Выборка синусоидальной волны при pi выборок за цикл.

t = (0:20)*2;
v = sin(t);

Определите время выборки интерполяции.

tq = (0:400)*0.1;

Определите конфигурацию интерполяции.

config.OutputRiseFall = 2; %Fixed step sample interval
config.NDelay = 5;
config.SampleMode = 'fixed';
config.CausalMode = 'off';

Выполните интерполяцию.

[vq,vdq]=lowpassResample(t,v,tq,config);

Постройте график отсчетов, график интерполированных данных и график исходной синусоидальной волны.

scatter(t,v);
hold on;
plot(tq,vq);
plot(tq,sin(tq));
hold off;
title('Interpolated Data');
legend('samples','interpolated data','original sine wave');

Figure contains an axes. The axes with title Interpolated Data contains 3 objects of type scatter, line. These objects represent samples, interpolated data, original sine wave.

Постройте график интерполированной производной и исходной производной.

plot(tq,vdq);
hold on;
plot(tq,cos(tq));
hold off;
title('Interpolated Derivative');
legend('interpolated derivative','original derivative');

Figure contains an axes. The axes with title Interpolated Derivative contains 2 objects of type line. These objects represent interpolated derivative, original derivative.

Входные аргументы

свернуть все

Время ввода выборки, определяемое как вектор с фиксированным или переменным шагом.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Значения входных выборок, соответствующие временам входных выборок, определенным в t, указан как вектор.

Типы данных: single | double

Время вывода выборки, указанное как вектор с фиксированным или переменным шагом.

Типы данных: single | double

Параметры интерполяции, заданные как структура с полями.

ОбластьОписаниеСтоимостьДефолт
OutputRiseFallВремя подъема/падения интерполированного выходного сигнала 0% -100%.Положительный действительный скаляр1e-10
NDelayКоличество раз нарастания/падения, на которое интерполированный выходной сигнал задерживается относительно входного сигнала.Положительное вещественное целое число1
SampleModeВходной режим выборки, либо дискретное время с фиксированным шагом, либо дискретное время с переменным шагом.fixed, variablevariable
CausalModeОпределите, должен ли процесс интерполяции вводить задержку. Выбрать CausalMode для введения достаточной задержки между входными и выходными выборками в процессе интерполяции, чтобы процесс был строго причинным.off, onoff

Типы данных: struct

Выходные аргументы

свернуть все

Интерполированные выборки, возвращенные в виде вектора.

Типы данных: single | double

Производная интерполированных выборок, соответствующая vq, возвращено как вектор.

Типы данных: single | double

Подробнее

свернуть все

Задержка в интерполированном выводе

Можно определить количество раз подъема/падения, на которое интерполированный выход будет задерживаться по отношению к входу, используя config.NDelay параметр.

Значение по умолчанию config.NDelay 1 производит интерполяцию, которая не имеет звонка из-за явления Гиббса, а также имеет скромные отклоненные вне полосы числовые артефакты.

Настройка config.NDelay 5 вводит достаточно сглаживающей фильтрации, чтобы удовлетворить большинство приложений, но вводит звон из-за явления Гиббса.

Настройка config.NDelay 10 вводит достаточно сглаживающей фильтрации для удовлетворения требований приложений, но за счет дополнительной задержки и вычислений.

Настройка config.NDelay до более чем 10 поддерживается, но обычно не требуется.

Входной режим выборки

Режим входной выборки можно определить с помощью config.SampleModeпараметр.

Значение по умолчанию config.SampleMode из variable предполагает, что входные значения являются результатом процесса удержания нулевого порядка. В этом случае значение сигнала всегда равно значению последней выборки. Этот выбор подходит для насыщенных сигналов, для которых время перехода является наиболее важным соображением.

Установка 'config.SampleMode кому fixed предполагает, что входные значения являются мгновенными выборками математически непрерывного сигнала в равномерно разнесенные моменты времени выборки. Используйте эту опцию для сигналов, которые подвергаются значительной степени аналоговой фильтрации.

Причинность процесса интерполяции

Можно определить процесс интерполяции как причинный или не использовать config.SampleMode параметр.

Значение по умолчанию config.CausalMode из off выравнивает временную шкалу интерполяции с временной шкалой входного сигнала. Это целесообразно, когда все необходимые входные значения доступны в одном векторе.

Настройка config.CausalMode кому on вводит достаточную задержку, чтобы значения выборки были доступны перед выполнением интерполяции. Поэтому интерполированное время выборки всегда задерживается на постоянное значение относительно времени входной выборки. Требуемая дополнительная задержка в этом режиме config.OutputRiseFall времена config.NDelay. Это поведение имитирует поведение блока Lowpass Resampler.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2021a