Интерполяция

Интерполируйте значения действительных входных выборок

Библиотека

Операции сигнала

dspsigops

Описание

Блок Interpolation интерполирует дискретный, действительный, входные параметры, использующие линейный или КИХ-интерполяция. Блок принимает вектор, матрицу или массив N-D. Блок выводит скаляр, вектор, матрицу или массив N-D интерполированных значений.

Необходимо задать точки интерполяции (времена, в которые можно интерполировать значения) в массиве интерполяции на основе одном, I Pts. Запись 1 в I, который Pts отсылает к первой выборке входных данных, записи 2,5, относится к выборке на полпути между второй и третьей входной выборкой и так далее. В зависимости от размерностей входных данных I Pts может быть скаляром, строкой длины-P или вектор-столбцом, P-by-N матрица или массив N-D, где P является размером первой размерности массива N-D. В большинстве случаев P может быть любым положительным целым числом. Для получения дополнительной информации о допустимых массивах интерполяции, обратитесь к таблицам в том, Как Блок Применяет Массивы Интерполяции к Входным параметрам.

В большинстве случаев блок применяет I Pts через первую размерность входного массива N-D, или к каждому входному вектору. Можно установить блок применять тот же массив интерполяции для всех входных данных (статические точки интерполяции ввели в маску блока) или использовать различный массив интерполяции для каждого массива N-D, матрицы или векторного входа (изменяющиеся во времени точки интерполяции, полученные через входной порт Pts).

Определение статических точек интерполяции

Чтобы предоставить блок статический массив интерполяции (массив интерполяции применился к каждому вектору или массиву N-D входных данных), выполните следующие шаги:

Определение изменяющихся во времени точек интерполяции

Чтобы предоставить блок изменяющиеся во времени массивы интерполяции (где блок использует различный массив интерполяции для каждого вектора или входа массивов N-D), выполните следующие шаги:

  1. Установите параметр Source of interpolation points на Input port, порт Pts появляется на блоке.

  2. Сгенерируйте сигнал массивов интерполяции и предоставьте его к порту Pts. Блок использует вход для этого порта как точки интерполяции. Чтобы узнать о массивах интерполяции, смотрите, Как Блок Применяет Массивы Интерполяции к Входным параметрам.

Как блок применяет массивы интерполяции к входным параметрам

Pts I интерполяции массивов представляет моменты времени, в которых можно интерполировать значения входного сигнала. Запись 1 в I, который Pts отсылает к первой выборке входа, записи 2,5, относится к выборке на полпути между второй и третьей входной выборкой и так далее. В большинстве случаев, когда I, Pts является вектором, это может иметь любую длину.

Допустимые значения в массиве интерполяции, I Pts, колеблются от 1 до количества выборок в каждом канале входа. Чтобы учиться как указатели блока из значений интерполяции области значений, смотрите Обработку Точки интерполяции Из области значений.

В зависимости от размерности входа и размерности I Pts, блок обычно применяет I Pts к входу одним из следующих способов:

  • Применяет массив pts I через первую размерность массива N-D, приводящего к массиву N-D вывод.

  • Применяет векторный I Pts к каждому входному вектору (как будто входной вектор был одним каналом), приводя к векторному выводу с той же ориентацией как вход (строка или столбец).

Следующие таблицы подводят итог, как блок применяет массив интерполяции I Pts ко всем возможным типам входных параметров, и покажите получившиеся выходные размерности.

Первая таблица описывает поведение блока, когда Source of interpolation points является Specify via dialog.

Введите размерностиДопустимые размерности массива интерполяции I PtsКак блок применяет I Pts, чтобы ввестиВыведите размерности (основанный кадр)

M-by-N-by-K матрица

P-by-1 столбец

Применяет I Pts к первой размерности входа.

P-by-N-by-K массив

P-by-N-by-K матрица

Применяет каждый столбец I Pts (каждый элемент I Pts) к соответствующему столбцу входной матрицы

P-by-N-by-K массив

M-by-N матрица

1 N строкой

Применяет каждый столбец I Pts (каждый элемент I Pts) к соответствующему столбцу входной матрицы

1 N строкой

P-by-1 столбец

Применяет I Pts к каждому входному столбцу

P-by-N матрица

P-by-N матрица

Применяет столбцы I Pts к соответствующим столбцам входной матрицы

M-by-1 столбец

1 P строкой

(алгоритм обрабатывает I Pts как столбец),

Применяет I Pts к входному столбцу

P-by-1 столбец

P-by-1 столбец

1 N строкой

(не рекомендуемый)

1 N строкой

Не применяется. Блокируйте входной вектор копий

1 N строкой, копией входного вектора

P-by-1 столбец

P-by-N матрица, где каждая строка является копией входного вектора

P-by-N матрица

Следующая таблица описывает поведение блока, когда Source of interpolation points является Input port.

Введите размерностиДопустимые размерности массива интерполяции I PtsКак блок применяет I Pts, чтобы ввестиВыведите размерности (основанный кадр)

M-by-N-by-K матрица

Неориентированный вектор или вектор-столбец длины P

Применяет I Pts к первой размерности входа.

P-by-N-by-K массив

P-by-N-by-K матрица

Применяет каждый столбец I Pts (каждый элемент I Pts) к соответствующему столбцу входной матрицы

P-by-N-by-K массив

M-by-N матрица

1 N строкой

Применяет каждый столбец I Pts (каждый элемент I Pts) к соответствующему столбцу входной матрицы

1 N строкой

P-by-1 столбец

Применяет I Pts к каждому входному столбцу

P-by-N матрица

P-by-N матрица

Применяет столбцы I Pts к соответствующим столбцам входной матрицы

M-by-1 столбец

1 P строкой

Применяет I Pts к входному столбцу

P-by-1 столбец

P-by-1 столбец

1 N строкой

(не рекомендуемый)

1 N строкой

Не применяется. Блокируйте входной вектор копий

1 N строкой, копией входного вектора

P-by-1 столбец

P-by-N матрица, где каждая строка является копией входного вектора

P-by-N матрица

Обработка точек интерполяции из области значений

Допустимые значения в массиве интерполяции I Pts колеблются от 1 до количества выборок в каждом канале входа. Например, учитывая длину 5 входных векторов D, все записи I Pts должен колебаться от 1 до 5. I Pts не может содержать записи такой как 7 или-9, с тех пор нет никакой 7-й или-9-й записи в D.

Параметр Out of range interpolation points устанавливает, как блок обрабатывает точки интерполяции, которые являются, выходят за пределы допустимой области значений, и имеет следующие настройки:

  • Clip — Блок заменяет любые значения из области значений в I Pts с самым близким значением в допустимой области значений (от 1 до количества входных выборок), и затем возобновляет вычисления с помощью отсеченной версии I Pts.

  • Clip and warn — В дополнение к Clip блок выдает предупреждение в командной строке MATLAB®, каждый раз, отсекая происходит.

  • Ошибка Когда блок сталкивается со значением из области значений в I Pts, остановки симуляции, и блок выдает ошибку в командной строке MATLAB.

Пример усечения

Предположим, что блок собирается отсечь точки интерполяции из области значений и получает следующий входной вектор и точки интерполяции:

  • D = [11 22 33 44]'

  • IPts = [10 2.6 -3]'

Поскольку D имеет четыре выборки, допустимый диапазон точек интерполяции от 1 до 4. Блок отсекает точку интерполяции от 10 до 4 и точка-3 к 1, приводя к отсеченному вектору интерполяции IPtsClipped = [4 2.6 1]'.

Режим линейной интерполяции

Когда Interpolation Mode установлен в Linear, блок интерполирует значения данных путем предположения, что данные отличаются линейно между выборками, взятыми в смежных шагах расчета.

Например, если входной сигнал D = [1 2 1.5 3 0.25]', следующий график слева показывает выборки в D и график справа, показывает линейно интерполированные значения между выборками в D.

Следующая фигура иллюстрирует случай блока в режиме линейной интерполяции, который собирается отсечь точки интерполяции из области значений. Векторный D предоставляет входные данные и векторный I, Pts предоставляет точки интерполяции:

  • D = [1 2 1.5 3 0.25]'

  • IPts = [-4 2.7 4.3 10]'

Блок отсекает недопустимые точки интерполяции и выводит линейно интерполированные значения в векторе, [1 1.65 2.175 0.25]'.

КИХ-режим интерполяции

Когда Interpolation Mode установлен в FIR, блок интерполирует значения данных с помощью КИХ-фильтра интерполяции, заданного различными параметрами блоков. Смотрите КИХ-Режим Интерполяции в ссылке блока Variable Fractional Delay для получения дополнительной информации.

Параметры

Source of interpolation points

Выберите, как вы хотите задать точки интерполяции. Если вы выбираете Specify via dialog, параметр Interpolation points становятся доступными. Используйте эту опцию для статических точек интерполяции. Если вы выбираете Input port, порт Pts появляется на блоке. Блок использует вход для этого порта как точки интерполяции. Используйте эту опцию для изменяющихся во времени точек интерполяции. Для получения дополнительной информации смотрите Задающие Статические Точки интерполяции и Определение Изменяющихся во времени Точек интерполяции.

Interpolation points

Массив моментов времени, в которых можно интерполировать входной сигнал (I Pts). Запись 1 в I, который Pts отсылает к первой выборке входа, записи 2,5, относится к выборке на полпути между второй и третьей входной выборкой и так далее. Смотрите, Как Блок Применяет Массивы Интерполяции к Входным параметрам. Настраиваемый (Simulink).

Interpolation mode

Устанавливает блок интерполировать или линейной интерполяцией или КИХ-интерполяцией. Для получения дополнительной информации смотрите Режим Линейной интерполяции и КИХ-Режим Интерполяции.

Interpolation filter half-length

Задайте поясной из КИХ-фильтра интерполяции (P). Чтобы выполнить интерполяцию в режиме FIR, блок использует самое близкое 2*P выборки с низкой ставкой. В большинстве случаев P выборки с низкой ставкой должен появиться ниже и выше каждой точки интерполяции. Однако, если вы интерполируете в точке выборки с низкой ставкой, блок включает ту выборку с низкой ставкой в необходимое 2*P выборки и требует только 2*P–1 соседних выборок с низкой ставкой. Если точка интерполяции не имеет необходимого количества соседних выборок с низкой ставкой, блок интерполирует ту точку с помощью линейной интерполяции.

Этот параметр становится доступным только, когда Interpolation mode установлен в FIR. Для получения дополнительной информации смотрите КИХ-Режим Интерполяции.

Interpolation points per input sample

Также известный the upsampling factor, этот параметр задает число точек на входную выборку (L), в котором блок вычисляет уникальный КИХ-фильтр интерполяции. Чтобы выполнить КИХ-Интерполяцию, блок использует многофазную структуру руками фильтра L длины 2*P.

Например, если L =4, блок создает многофазный фильтр четырьмя руками. Блок затем интерполирует в точках, соответствующих 1 +i/L, 2 +i/L, 3 +i/L..., где целые числа 1, 2, и 3 представляют выборки с низкой ставкой и i =0,1,2,3. Интерполировать в точке, которая непосредственно не соответствует руке многофазного фильтра, требует дополнительного вычисления. Первые раунды блока, которые указывают вниз на самое близкое значение, которое действительно соответствует руке многофазного фильтра. Таким образом, чтобы интерполировать в точке 2.2, блок округляет в меньшую сторону 2.2 до 2 и вычисляет КИХ-интерполяцию с помощью первой руки многофазной структуры фильтра. Точно так же, чтобы интерполировать точку 2.65, блок округляет значение в меньшую сторону до 2,5 и использует третью руку многофазной структуры фильтра.

Этот параметр становится доступным только, когда Interpolation mode установлен в FIR. Для получения дополнительной информации смотрите КИХ-Режим Интерполяции.

Normalized input bandwidth

Пропускная способность входа разделена на Фс/2 (половина входной демонстрационной частоты).

Этот параметр только доступен, когда Interpolation mode установлен в FIR. Для получения дополнительной информации смотрите КИХ-Режим Интерполяции.

Out of range interpolation points

Когда точка интерполяции вне области значений, этот параметр устанавливает блок или отсекать точку интерполяции, отсекать значение и выдавать предупреждение в командной строке MATLAB, или останавливать симуляцию и выдавать ошибку в командной строке MATLAB. Для получения дополнительной информации смотрите Обработку Точки интерполяции Из области значений.

Поддерживаемые типы данных

ПортПоддерживаемые типы данных

\in

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

Pts

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Представлено до R2006a