Решите линейную систему уравнений, используя рекурсию Левинсона-Дурбина
Математические функции/матрицы и линейная алгебра/линейные системные решатели
dspsolvers
Блок Левинсона-Дурбина решает систему линейных уравнений n-го порядка
Ra = b
в случаях, когда:
R - эрмитова, положительно-определенная, матрица Теплица.
b идентично первому столбцу R со сдвигом на один элемент и с противоположным знаком.
Вход в блок, r =
[r(1) r(2) ... r(n+1)]
, может быть вектором или матрицей. Если вход является матрицей, блок обрабатывает каждый столбец как независимый канал и решает его отдельно. Каждый канал входа содержит лаги, 0 через n автокорреляционной последовательности, которые появляются в матричном R.
Блок может выводить полиномиальные коэффициенты, A, коэффициенты отражения, K и степень ошибки предсказания, P, в различных комбинациях. Параметр Output(s) позволяет включать A и K выходов путем выбора одной из следующих настроек:
A
- Для каждого канала порт А выводит A =
[1 a(2) a(3) ... a(n+1)]
, решение уравнения Левинсона-Дурбина. A имеет ту же размерность, что и вход. Можно также просмотреть элементы каждого выходного канала как коэффициенты процесса авторегрессии n-го порядка (AR).
K
- Для каждого канала порт K выводит K =
[k(1) k(2) ... k(n)]
, который содержит n коэффициентов отражения и имеет ту же размерность, что и вход, меньше одного элемента. Скалярный входной канал вызывает ошибку, когда вы выбираете K
. Можно использовать коэффициенты отражения, чтобы реализовать представление решетки процесса AR, описанного ниже на этой странице.
A and K
- Блок выводит оба представления в соответствующих портах. Скалярный входной канал вызывает ошибку, когда вы выбираете A and K
.
Установите флажок Output prediction error power (P), чтобы вывести степень ошибки предсказания для каждого канала, P. Для каждого канала P представляет степень выхода конечной импульсной характеристики с отводами A и входной автокорреляцией, описанной r, где A представляет фильтр ошибки предсказания, и r является входом в блок. В этом случае A является отбеливающим фильтром. P имеет по одному элементу на входной канал.
Когда вы устанавливаете флажок If the value of lag 0 is zero, A=[1 zeros], K=[zeros], P=0 (по умолчанию), канал входа, r которого (1)
элемент с нулем генерирует нулевой выход. Когда вы снимаете этот флажок, вход с r (1)
= 0
производит NaN
s в выходах. В целом вход с r (1)
= 0
недопустим, поскольку он не создает положительно-определенную матричную R. Часто, однако, блоки получают нулевые входы в начале симуляции. Флажок позволяет избегать распространения NaN
s в течение этого периода.
Одно из применений композиции Левинсона-Дурбина, реализованное этим блоком, находится в задаче AR Юла-Уокера, которая касается моделирования неизвестной системы как авторегрессивного процесса. Вы бы смоделировали такой процесс, как выход полнополюсного БИХ с белым Гауссовым шумом. В задаче Юле-Уокера использование автокорреляционной последовательности сигнала для получения оптимальной оценки приводит к уравнению R a = b типа, показанного выше, которое наиболее эффективно решается рекурсией Левинсона-Дурбина. В этом случае вход в блок представляет автокорреляционную последовательность с r(1)
являющийся значением нулевой задержки. Затем выход порта A блока содержит коэффициенты авторегрессивного процесса, которые оптимально моделируют систему. Коэффициенты упорядочены в нисходящих степенях z, и процесс AR является минимальной фазой. Ошибка предсказания, G, задает коэффициент усиления для неизвестной системы, где :
Выход в порту K блока содержит соответствующие коэффициенты отражения, [
<reservedrangesplaceholder1> <reservedrangesplaceholder0>
<reservedrangesplaceholder1> <reservedrangesplaceholder0>
<reservedrangesplaceholder1> <reservedrangesplaceholder0>, для решетки реализации этого БИХ. Блок Yule-Walker AR Estimator реализует этот основанный на автокорреляции метод для оценки AR- модели, в то время как блок Метода Юла-Уокера расширяет способ до спектральной оценки.
Другое распространенное применение алгоритма Левинсона-Дурбина - в линейном прогнозирующем кодировании, которое касается нахождения коэффициентов процесса скользящего среднего значения (MA) (или конечная импульсная характеристика), который предсказывает следующее значение сигнала из текущей выборки сигнала и конечное число прошлых выборок. В этом случае вход в блок представляет автокорреляционную последовательность сигнала с r (1)
будучи значением нулевой задержки, и выход порта A блока содержит коэффициенты прогнозирующего процесса MA (в нисходящих степенях z).
Эти коэффициенты решают следующую задачу оптимизации:
Снова, выход в порту K блока содержит соответствующие коэффициенты отражения, [k(1) k(2) ... k(n)]
, для решетки реализации этой конечной импульсной характеристики. Блок Autocorrelation LPC в библиотеке Linear Prediction реализует этот метод предсказания на основе автокорреляции.
Схемы в этом разделе показывают типы данных, используемые в блоке Левинсона-Дурбина для сигналов с фиксированной точкой.
После инициализации блок выполняет n обновления. При обновлении (j + 1),
Следующая схема отображает типы данных с фиксированной точкой, используемые в этом вычислении:
Затем блок обновляет коэффициенты отражения K согласно
Блок затем обновляет степень ошибки предсказания P согласно
Следующая схема отображает типы данных с фиксированной точкой, используемые в этом вычислении:
Полиномиальные коэффициенты A затем обновляются согласно
Эта схема отображает типы данных с фиксированной точкой, используемые в этом вычислении:
Алгоритм требует O (n2) операции для каждого входного канала. Поэтому эта реализация намного более эффективна для больших n, чем стандартное Гауссовское устранение, которое требует O (n3) операции по каналу.
Main Tab
Задайте представление решения R a = b для вывода: коэффициенты модели (A
), коэффициенты отражения (K
), или и то и другое (A and K
). Когда вход является скаляром или вектором-строкой, вы должны задать этот параметр A
.
Выберите для вывода ошибки предсказания на порт P.
Когда вы устанавливаете этот флажок и первый элемент входа, r(1)
, равен нулю, блок выводит, при необходимости, следующие векторы:
A = [1 zeros(1,n)]
K = [zeros(1,n)]
P = 0
Когда вы снимаете этот флажок, блок выводит вектор NaN
s для каждого канала, чья r(1)
элемент равен нулю.
Data Types Tab
Примечание
Наследование с плавающей точкой имеет приоритет над параметрами типа данных, заданными на этой панели. Когда входы являются плавающими точками, блок игнорирует эти настройки, и все внутренние типы данных являются плавающими точками.
Задайте режим округления для операций с фиксированной точкой как один из следующих:
Floor
Ceiling
Convergent
Nearest
Round
Simplest
Zero
Для получения дополнительной информации смотрите режим округления.
Когда вы выбираете этот параметр, блок насыщает результат своей операции с фиксированной точкой. Когда вы очищаете этот параметр, блок переносит результат своей операции с фиксированной точкой. Для получения дополнительной информации о saturate
и wrap
, см. Режим переполнения для операций с фиксированной точкой.
Укажите тип выходных данных продукта. Смотрите Типы данных с фиксированной точкой и Типы данных умножения для рисунков, описывающих использование типа выходных данных продукта в этом блоке. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Same as input
Выражение, которое вычисляет допустимый тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Product output.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте тип данных аккумулятора. См. типы данных с фиксированной точкой для рисунков, описывающих использование типа данных аккумулятора в этом блоке. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Same as input
Правило, которое наследует тип данных, например Inherit: Same as product output
Выражение, которое вычисляет допустимый тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Accumulator.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте тип данных полиномиальных коэффициентов (A). См. типы данных с фиксированной точкой для рисунков, описывающих использование типа данных A в этом блоке. Можно задать для него выражение, которое вычисляет допустимый тип данных, например fixdt(1,16,15)
.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр A.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте тип данных полиномиальных коэффициентов (A). См. типы данных с фиксированной точкой для рисунков, описывающих использование типа данных K в этом блоке. Можно задать для него выражение, которое вычисляет допустимый тип данных, например fixdt(1,16,15)
.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр K.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте тип данных степени (P) ошибки предсказания. См. типы данных с фиксированной точкой для рисунков, описывающих использование типа данных P в этом блоке. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Same as input
Выражение, которое вычисляет допустимый тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр P.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте минимальные значения, которые должны иметь полиномиальные коэффициенты, коэффициенты отражения или степень ошибки предсказания. Значение по умолчанию []
(не определено). Simulink® использует это значение для выполнения:
Проверка области значений параметров (см. «Задание минимальных и максимальных значений для параметров блоков (Simulink)»)
Автоматическое масштабирование типов данных с фиксированной точкой
Задайте максимальные значения, которые должны иметь полиномиальные коэффициенты, коэффициенты отражения или степень ошибки предсказания. Значение по умолчанию []
(не определено). Simulink использует это значение для выполнения:
Проверка области значений параметров (см. «Задание минимальных и максимальных значений для параметров блоков (Simulink)»)
Автоматическое масштабирование типов данных с фиксированной точкой
Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в маске блока.
Голубь, Г. Х. и К. Ф. Ван Лоун. Секта. 4.7 в матричных расчетах. 3-й эд. Балтимор, доктор медицинских наук: Johns Hopkins University Press, 1996.
Ljung, L. Система идентификации: Теория для пользователя. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1987. PGS. 278–280.
Кей, Стивен М. Современная спектральная оценка: теория и применение. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1988.
Плавающая точка двойной точности
Плавающая точка с одной точностью
Фиксированная точка (только со знаком)
8-, 16- и 32-битные целые числа со знаком