LPC to LSF/LSP Conversion

Преобразуйте коэффициенты линейного предсказания, чтобы выровнять спектральные пары или линейные спектральные частоты

Библиотека

Оценка / Линейное предсказание

dsplp

  • LPC to LSF/LSP Conversion block

Описание

LPC с блоком LSF/LSP Conversion берет вектор или матрицу коэффициентов линейного предсказания (LPCs) и преобразует его в вектор или матрицу линии спектральные пары (LSPs) или линейные спектральные частоты (LSFs). При преобразовании LPCs в LSFs блок выходные параметры совпадает с теми poly2lsf функция.

Вход блока должен быть или матрицей, вектор-столбцом или неориентированным вектором. Каждый канал входа должен иметь по крайней мере две выборки.

Вход LPCs для каждого канала, 1, a1, a 2..., a m, должен быть знаменателем передаточной функции устойчивого фильтра все-полюса с формой, данной в первом уравнении Требований для Допустимых Выходных параметров. length-M+1 входной канал дает к длине-M выходной канал.

Смотрите другие разделы этой страницы с описанием, чтобы узнать о том, как гарантировать, что вы получаете допустимые выходные параметры, как обнаружить недопустимые выходные параметры, как блок вычисляет значения LSF/LSP и т.д.

Требования для допустимых Выходных параметров

Чтобы получить допустимые выходные параметры, ваши входные параметры и значение параметров Root finding coarse grid points должны удовлетворить эти требования:

  • Вход LPCs для каждого канала, 1, a1, a 2..., a m, должен прибыть из знаменателя следующей передаточной функции, H(z), устойчивого фильтра все-полюса (все корни H(z) должны быть в модульном кругу). Обратите внимание на то, что первый срок в знаменателе H(z) должен быть 1. Когда вход LPCs не прибывает из передаточной функции следующей формы, блок выходные параметры недопустимы.

    H(z)=11+a1z1+a2z2+ ... +amzm

  • Значение параметров Root finding coarse grid points должно быть достаточно большим так, чтобы блок мог найти весь LSP или значения LSF. (Выход LSFs и LSPs является корнями полиномов, связанных с полиномом входа LPC; блок ищет эти корни, чтобы произвести выход. Для получения дополнительной информации см. LSF и Метод Расчета LSP: Метод Полинома Чебышева для Корневого Открытия.), Когда вы не устанавливаете Root finding coarse grid points на достаточно высокое значение относительно количества LPCs, блок не может найти весь LSPs или LSFs и дать к недопустимым выходным параметрам как описано в Корневых Ограничениях Метода Открытия: Отказ Найти Корни.

Чтобы узнать о распознавании недопустимых вводов и выводов и параметров для контакта с ними, смотрите Обработку и Распознавание Недопустимых Вводов и выводов.

Установка Выходных параметров к LSFs или LSPs

Установите параметр Output на одну из следующих настроек, чтобы определить ли блок выходные параметры LSFs или LSPs:

  • LSF in radians (0 pi) — Блок выводит значения LSF между 0 и радианы π в увеличивающемся порядке. Блок не выводит гарантируемые значения LSF, 0 и π.

  • LSF normalized in range (0 0.5) — Блокируйтесь выходные параметры нормировали значения LSF в увеличивающемся порядке, вычисленном путем деления значений LSF между 0 и радианы π 2π. Блок не выводит гарантируемые нормированные значения LSF, 0 и 0.5.

  • LSP in range (-1 1) — Блокируйте значения выходных параметров LSP в порядке убывания, равный косинусу значений LSF между 0 и радианы π. Блок не выводит гарантируемые значения LSP,-1 и 1.

Корректировка Выходного времени вычисления и точности с корневым нахождением параметров

Значения n и k определяют выходное время вычисления и точность блока, где

  • n является значением параметра Root finding coarse grid points (выберите это значение с осторожностью; см. примечание ниже).

  • k является значением параметра Root finding bisection refinement.

  • Уменьшение значений n и k уменьшает выходное время вычисления, но также и уменьшает выходную точность:

    • Верхняя граница времени вычисления блока пропорциональна k(n1).

    • Каждый LSP выход в 1/(n2k) из фактического значения LSP.

    • Каждый LSF выход в ΔLSF фактического значения LSF, LSF act, где

      ΔLSF=|acos(LSFact)acos(LSFact+1/(n2k))|

Примечание

Когда значение параметра Root finding coarse grid points слишком мало относительно количества LPCs, блок может вывести недопустимые данные как описано в Требованиях для Допустимых Выходных параметров. Также смотрите Обработку и Распознавание Недопустимых Вводов и выводов.

Известные свойства ввода и вывода

Обработка и распознавание недопустимых вводов и выводов

Недопустимые данные выходных параметров блока, когда ваш вход LPCs и значение параметра Root finding coarse grid points не удовлетворяют требования, описанные в Требованиях для Допустимых Выходных параметров. Следующие темы описывают то, на что недопустимые выходные параметры похожи, и как установить параметры блоков, предусмотренные, обработав недопустимые вводы и выводы:

На что похожи недопустимые Выходные параметры

Каналы недопустимого выхода имеют те же размерности, размеры, и структурируют статуи как каналы допустимого выхода. Однако недопустимые выходные каналы не содержат весь LSP или значения LSF. Вместо этого они не содержат ни один или часть LSP и значений LSF, и остальная часть выхода заполнена значениями заполнителя (-1, 0.5, или π) в зависимости от установки параметра Output).

Короче говоря, все недопустимые выходные параметры в канале заканчиваются в одном из значений заполнителя (-1, 0.5, или π), как проиллюстрировано в следующей таблице. Чтобы изучить, как использовать параметры блока для обработки недопустимых вводов и выводов, смотрите следующий раздел.

Установка выходного параметраЗаполнительДемонстрационные недопустимые Выходные параметры

LSF in radians (0 pi)

π

[w1w2w3πππππ]

LSF normalized in range (0 0.5)

0.5

[w1w20.5]

LSP in range (-1 1)

-1

[cos(w13)cos(w23)111]

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

Необходимо установить, как блок обрабатывает недопустимые вводы и выводы путем установки этих параметров:

  • Show output validity status (1=valid, 0=invalid) — Установите этот параметр, чтобы активировать второй выходной порт, который выводит вектор с одним булевым элементом на канал; 1 когда выход соответствующего канала допустим, и 0 когда выход недопустим. LSF и LSP выходные параметры недопустимы, когда блоку не удается найти весь LSF или значения LSP или когда вход LPCs нестабильны (для получения дополнительной информации смотрите Требования для Допустимых Выходных параметров). Смотрите предыдущий раздел, чтобы изучить, как распознать недопустимые выходные параметры.

  • If current output is invalid, overwrite with previous output — Установите этот флажок, чтобы заставить блок перезаписывать недопустимые выходные параметры с предыдущим выходом. Когда вы устанавливаете этот параметр, также необходимо рассмотреть эти параметры:

    • When first output is invalid, overwrite with user-defined values — Когда первый вход нестабилен, можно перезаписать недопустимый первый выход с также

      • Значения по умолчанию, путем снятия этого флажка

      • Значения вы задаете путем установки этого флажка

      Начальные значения перезаписи по умолчанию являются LSF или представлениями LSP фильтра все-передачи. Вектор, который используется, чтобы перезаписать недопустимый выход, хранится как внутреннее состояние.

    • User-defined LSP/LSF values for overwriting invalid first output — Задайте вектор из значений для перезаписи недопустимого первого выхода, если вы выбрали параметр When first output is invalid, overwrite with user-defined values. Для многоканальных входных параметров предоставьте матрице то же количество каналов как вход или один вектор, который будет применен к каждому каналу. Вектор или матрица значений LSP/LSF, которые вы задаете, должны иметь ту же размерность, размер и состояние системы координат как другие выходные параметры.

  • If first input value is not 1 — Блок выход в любом канале недопустим, когда первый коэффициент в векторе LPC не 1; этот параметр определяет то, что блок делает, когда дали такие входные параметры:

    • Ignore — Возобновите расчеты, как будто первый коэффициент равняется 1.

    • Normalize — Разделите вход LPCs на значение первого коэффициента прежде, чем вычислить выход.

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

    • Error — Остановите симуляцию и отобразите сообщение об ошибке в командной строке MATLAB.

Параметры

Output

Задает, преобразовать ли входные коэффициенты полинома линейного предсказания (LPCs) в LSP in range(-1 1) , LSF in radians (0 pi), или LSF normalized in range (0 0.5). Смотрите Установку Выходные параметры к LSFs или LSPs для описаний этих трех настроек.

Root finding coarse grid points

n значения, где блок делит интервал (-1, 1) на подынтервалы n равной длины, и ищет корни (значения LSP) в каждом подынтервале. Необходимо выбрать n, достаточно большой, или блок выход может быть недопустимым как описано в Требованиях для Допустимых Выходных параметров. Чтобы изучить, как блок использует этот параметр, чтобы вычислить выход, см. LSF и Метод Расчета LSP: Метод Полинома Чебышева для Корневого Открытия. Также смотрите Корректировку Выходное Время вычисления и Точность с Корневым Нахождением параметров. Настраиваемый (Simulink).

Root finding bisection refinement

k значения, где каждый LSP выход в 1/(n2k) из фактического значения LSP, где n является значением параметра Root finding coarse grid points. Чтобы изучить, как блок использует этот параметр, чтобы вычислить выход, см. LSF и Метод Расчета LSP: Метод Полинома Чебышева для Корневого Открытия. Также смотрите Корректировку Выходное Время вычисления и Точность с Корневым Нахождением параметров. Настраиваемый (Simulink).

Show output validity status

Установите этот параметр, чтобы активировать второй выходной порт, который выводит вектор с одним булевым элементом на канал; 1 когда выход соответствующего канала допустим, и 0 когда выход недопустим. LSF и LSP выходные параметры недопустимы, когда блоку не удается найти весь LSF или значения LSP или когда вход LPCs нестабильны (для получения дополнительной информации смотрите Требования для Допустимых Выходных параметров).

If current output is invalid, overwrite with previous output

Выбор этого флажка заставляет блок перезаписывать недопустимые выходные параметры с предыдущим выходом. Установка этого параметра активирует другие параметры для заботы о начальных значениях перезаписи (когда самый первый выход блока недопустим). Для получения дополнительной информации смотрите Параметры для Обработки Недопустимых Вводов и выводов.

When first output is invalid, overwrite with user-defined values

Когда первый вход нестабилен, можно перезаписать недопустимый первый выход с также

  • Значения по умолчанию, путем снятия этого флажка

  • Значения вы задаете путем установки этого флажка

Начальные значения перезаписи по умолчанию являются LSF или представлениями LSP фильтра все-передачи. Вектор, который используется, чтобы перезаписать недопустимый выход, хранится как внутреннее состояние. Для получения дополнительной информации смотрите Параметры для Обработки Недопустимых Вводов и выводов.

User-defined LSP/LSF values for overwriting invalid first output

Задайте вектор из значений для перезаписи недопустимого первого выхода, если вы выбрали параметр When first output is invalid, overwrite with user-defined values. Для многоканальных входных параметров предоставьте матрице то же количество каналов как вход или один вектор, который будет применен к каждому каналу. Вектор или матрица значений LSP/LSF, которые вы задаете, должны иметь ту же размерность, размер и состояние системы координат как другие выходные параметры.

If first input value is not 1

Определяет то, что делает блок, когда первым коэффициентом входа не является 1. Блок может или возобновить расчеты как тогда, когда первый коэффициент равняется 1 (Ignore); разделите вход LPCs на значение первого коэффициента прежде, чем вычислить выход (Normalize); в дополнение к Normalize, отобразите предупреждающее сообщение в командной строке MATLAB (Normalize and warn); остановите симуляцию и отобразите сообщение об ошибке в командной строке MATLAB (Error). Для получения дополнительной информации смотрите Параметры для Обработки Недопустимых Вводов и выводов.

Теория

LSF и метод расчета LSP: метод полинома Чебышева для корневого открытия

Примечание

Чтобы изучить принципы, на которых базируются LSP блока и метод расчета LSF, смотрите ссылку, перечисленную в Ссылках.

Чтобы вычислить LSP выходные параметры для каждого канала, блок использует то, что значения LSP являются корнями двух конкретных полиномов, связанных с полиномом входа LPC; блок находит эти корни с помощью корня Полинома Чебышева нахождение метода, описанного затем. Чтобы вычислить LSF выходные параметры, блок вычисляет арккосинус LSPs, выводя значения в пределах от 0 к радианам π.

Корневой метод нахождения

LSPs, которые являются корнями двух конкретных полиномов, всегда находятся в диапазоне (-1, 1). (Гарантируемые корни в 1 и-1 факторизуются.) Блок находит LSPs путем поиска изменения знака значений этих двух полиномов между точками в области значений (-1, 1). Поиски блока максимум k (n – 1) точки, где

  • n является значением параметра Root finding coarse grid points.

  • k является значением параметра Root finding bisection refinement.

Метод блока для выбора, который указывает на проверку, состоит из выполняющего двух шагов:

  1. Coarse Root Finding — - блок делит интервал [-1, 1] на интервалы n, каждую длину 2/n, и проверяет знаки значений обоих полиномов в конечных точках интервалов. Блок начинает проверять знаки в 1 и продолжает проверять знаки в 1 – 4/n, 1 – 6/n, и так далее на шагах длины 2/n, выводя любую точку, если это - корень. Блок прекращает искать в этих ситуациях:

    1. Блок находит изменение знака значений полинома между двумя смежными точками. Интервал, содержащий изменение знака, как гарантируют, будет содержать корень, таким образом, блок дальнейшие поисковые запросы интервал как описано в Шаге 2, Корневом Улучшении Нахождения.

    2. Блок находит и выходные параметры все корни M (данный length-M+1 вход LPC).

    3. Блоку не удается найти, что весь M базируется и дает к недопустимым выходным параметрам как описано в Обработке и Распознавании Недопустимых Вводов и выводов.

  2. Root Finding Refinement — То, когда блок находит изменение знака в интервале, [a, b], это ищет корень, гарантировало, что легло в интервале путем выполнения этих шагов:

    1. Check if Midpoint Is a Root — проверки блока знак средней точки интервала [a, b]. Блок выводит среднюю точку, если это - корень и продолжает Шаг 1, Крупное Корневое Открытие, на следующем этапе, a – 2/n. В противном случае блок выбирает полуинтервал с конечными точками противоположного знака (любой [a, (a + b)/2] или [(a + b)/2, b]) и выполняет Шаг 2b, Остановку, или Продолжите Корневое Улучшение Нахождения.

    2. Stop or Continue Root Finding Refinement — Когда блок повторил Шаг 2a времена k (k является значением параметра Root finding bisection refinement), блок линейно интерполирует корень при помощи конечных точек полуинтервала, выводит результат как значение LSP и возвращается к Шагу 1, Крупному Корневому Открытию. В противном случае блок повторяет Шаг 2a с помощью полуинтервала.

Крупное корневое улучшение нахождения открытия и корня

Корневые ограничения метода открытия: отказ найти корни

Корень блока, который нахождение метода, описанного выше, может привести к сбою, заставив блок произвести недопустимые выходные параметры (для получения дополнительной информации о недопустимых выходных параметрах, видят Обработку и Распознавание Недопустимых Вводов и выводов).

В частности, блок может не найти некоторые корни, если значение параметра Root finding coarse grid points, n, слишком мало. Если полиномы колеблются быстро и имеют корни, которые являются очень близко друг к другу, корневое открытие может быть слишком крупным, чтобы идентифицировать корни, которые являются очень друг близко к другу, как проиллюстрировано в Фиксации Не пройдено Корневого Открытия.

Для полиномов входа LPC высшего порядка необходимо увеличить значение Root finding coarse grid points, чтобы гарантировать, что блок находит все корни и производит допустимые выходные параметры.

Фиксация не пройдено корневого открытия

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

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

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

  • Булевская переменная — Поддерживаемый только дополнительным выходным портом, который появляется, когда вы устанавливаете параметр, Show output validity status (1=valid, 0=invalid)

Ссылки

Kabal, P. и Ramachandran, R. “Расчет Линейных спектральных частот Используя Полиномы Чебышева. “Транзакции IEEE на Акустике, Речи и Обработке сигналов, Издание ASSP-34 № 6, декабрь 1986. стр 1419-1426.

Смотрите также

LSF/LSP to LPC ConversionDSP System Toolbox
LPC to/from RCDSP System Toolbox
LPC/RC to AutocorrelationDSP System Toolbox
poly2lsfSignal Processing Toolbox

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

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