Преобразуйте сигнал из одного шага расчета в другой
Дискретизируйте синусоиду со скоростью 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');
Постройте график интерполированной производной и исходной производной.
plot(tq,vdq); hold on; plot(tq,cos(tq)); hold off; title('Interpolated Derivative'); legend('interpolated derivative','original derivative');
t
- Вводите шаги расчетаВведите шаги расчета, заданное как вектор с фиксированным шагом или с переменной.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| logical
v
- Входные значения выборкиВходные значения выборки, соответствующие входным шагам расчета, заданным в t
, заданный как вектор.
Типы данных: single
| double
tq
- Время вывода выборкиВыходные шаги расчета, заданный как вектор с фиксированным шагом или с переменной.
Типы данных: single
| double
config
- Параметры интерполяцииПараметры интерполяции, заданные как структура с полями.
Область | Описание | Значение | Дефолт |
---|---|---|---|
OutputRiseFall | Время нарастания/падения 0% -100% интерполированного выхода. | Положительный действительный скаляр | 1e-10 |
NDelay | Количество шагов подъема/падения, на которые интерполированный выход будет отложен относительно входа. | Положительное действительное целое число | 1 |
SampleMode | Вход дискретизации, либо дискретное время с фиксированным шагом, либо дискретное время с переменным шагом. | fixed , variable | variable |
CausalMode | Определите, должен ли процесс интерполяции вводить задержку. Выберите CausalMode ввести достаточную задержку между входной и выходной выборками в процессе интерполяции, чтобы процесс был строго причинным. | off , on | off |
Типы данных: struct
vq
- Интерполированные выборкиИнтерполированные выборки, возвращенные как вектор.
Типы данных: single
| double
vdq
- Производная интерполированных выборокПроизводная интерполированных выборок, соответствующих 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.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.