MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

Обработка сигналов и изображений\Signal Processing Toolbox

Список функций Signal Processing Toolbox: Линейное предсказание

  В оглавление \ К следующему разделу \ К предыдущему разделу

POLY2RC

Преобразование коэффициентов предсказания в коэффициенты отражения

Синтаксис:

k = poly2rc(a)
[k,r0] = poly2rc(a,efinal)

Описание:

k = poly2rc(a)

Преобразует вектор коэффициентов предсказывающего фильтра a в коэффициенты отражения соответствующей решетчатой структуры. Вектор a может быть вещественным или комплексным, но его первый элемент a(1) не должен быть равен нулю. Если элемент a(1) не равен единице, функция poly2rc нормирует входной вектор, деля его на величину a(1). Выходной вектор-строка k имеет длину length(a)-1.

[k,r0] = poly2rc(a,efinal)

В данном варианте сервиса функция дополнительно возвращает среднюю мощность сигнала (значение корреляционной функции сигнала при нулевом сдвиге) r0, рассчитанную исходя из заданного среднего квадрата ошибки предсказания efinal.

Данная функция дает простой и надежный способ проверки того, лежат ли все корни полинома a внутри единичной окружности на комплексной плоскости - если данное условие выполняется, модули всех коэффициентов отражения не должны превышать единицы:

stable = all(abs(poly2rc(a))<1)

Примеры

a = [1.0000   0.6149   0.9899   0.0000   0.0031  -0.0082];
efinal = 0.2;
[k,r0] = poly2rc(a,efinal)
k =
    0.3090
    0.9801
    0.0031
    0.0081
   -0.0082
r0 =
    5.6032

Ограничения

Если вектор k содержит элементы, равные единице, задача нахождения коэффициентов отражения становится плохо обусловленной. В данном случае выдается соответствующее предупреждение, а результат работы функции poly2rc будет содержать некоторые элементы, равные NaN.

Алгоритм

Функция poly2rc реализует следующий рекурсивный алгоритм:

Данные формулы основаны на рекурсивном алгоритме Левинсона [1]. Для его реализации функция poly2rc перебирает в цикле элементы вектора a, начиная с последнего и заканчивая вторым. На i-й итерации цикла выполняются следующие действия:

  1. Элементу выходного вектора k(i) присваивается значение a(i).
  2. Вторая из приведенных выше формул применяется к элементам вектора a от 1-го до i-го включительно:

    a = (a-k(i)*fliplr(a))/(1-k(i)^2);

Сопутствующие функции: ac2rc, latc2tf, latcfilt, poly2ac, rc2poly, tf2latc

Литература

  1. Kay, S. M. Modern Spectral Estimation, Englewood Cliffs, NJ, Prentice-Hall, 1988.

  В оглавление\ К следующему разделу \ К предыдущему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика