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++ с помощью Coder™ MATLAB ®

.
Введенный в R2021a