Преобразуйте коэффициенты линейного предсказания, чтобы выровнять спектральные пары или линейные спектральные частоты
Оценка / Линейное предсказание
dsplp
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 не прибывает из передаточной функции следующей формы, блок выходные параметры недопустимы.
Значение параметров Root finding coarse grid points должно быть достаточно большим так, чтобы блок мог найти весь LSP или значения LSF. (Выход LSFs и LSPs является корнями полиномов, связанных с полиномом входа LPC; блок ищет эти корни, чтобы произвести выход. Для получения дополнительной информации см. LSF и Метод Расчета LSP: Метод Полинома Чебышева для Корневого Открытия.), Когда вы не устанавливаете Root finding coarse grid points на достаточно высокое значение относительно количества LPCs, блок не может найти весь LSPs или LSFs и дать к недопустимым выходным параметрам как описано в Корневых Ограничениях Метода Открытия: Отказ Найти Корни.
Чтобы узнать о распознавании недопустимых вводов и выводов и параметров для контакта с ними, смотрите Обработку и Распознавание Недопустимых Вводов и выводов.
Установите параметр 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 уменьшает выходное время вычисления, но также и уменьшает выходную точность:
Верхняя граница времени вычисления блока пропорциональна .
Каждый LSP выход в из фактического значения LSP.
Каждый LSF выход в ΔLSF фактического значения LSF, LSF act, где
Примечание
Когда значение параметра Root finding coarse grid points слишком мало относительно количества LPCs, блок может вывести недопустимые данные как описано в Требованиях для Допустимых Выходных параметров. Также смотрите Обработку и Распознавание Недопустимых Вводов и выводов.
Чтобы получить допустимые выходные параметры, ваш вход LPCs и значение параметра Root finding coarse grid points должны удовлетворить требования, описанные в Требованиях для Допустимых Выходных параметров.
Вход Length-L+1 образовывает канал длина-L выражений выходной канал
Параметр Output определяет выходной тип (см. Установку Выходные параметры к LSFs или LSPs):
LSFs — частоты, w k, где 0 <w k <π и w k <w k + 1
Нормированный LSFs — w k / 2π
LSPs — because(w k)
Недопустимые данные выходных параметров блока, когда ваш вход LPCs и значение параметра Root finding coarse grid points не удовлетворяют требования, описанные в Требованиях для Допустимых Выходных параметров. Следующие темы описывают то, на что недопустимые выходные параметры похожи, и как установить параметры блоков, предусмотренные, обработав недопустимые вводы и выводы:
Каналы недопустимого выхода имеют те же размерности, размеры, и структурируют статуи как каналы допустимого выхода. Однако недопустимые выходные каналы не содержат весь LSP или значения LSF. Вместо этого они не содержат ни один или часть LSP и значений LSF, и остальная часть выхода заполнена значениями заполнителя (-1, 0.5, или π) в зависимости от установки параметра Output).
Короче говоря, все недопустимые выходные параметры в канале заканчиваются в одном из значений заполнителя (-1, 0.5, или π), как проиллюстрировано в следующей таблице. Чтобы изучить, как использовать параметры блока для обработки недопустимых вводов и выводов, смотрите следующий раздел.
Установка выходного параметра | Заполнитель | Демонстрационные недопустимые Выходные параметры |
---|---|---|
| π | |
| 0.5 | |
| -1 |
Необходимо установить, как блок обрабатывает недопустимые вводы и выводы путем установки этих параметров:
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.
Задает, преобразовать ли входные коэффициенты полинома линейного предсказания (LPCs) в LSP in range
(-1 1)
,
LSF in radians (0 pi)
, или LSF normalized in range (0 0.5)
. Смотрите Установку Выходные параметры к LSFs или LSPs для описаний этих трех настроек.
n значения, где блок делит интервал (-1, 1) на подынтервалы n равной длины, и ищет корни (значения LSP) в каждом подынтервале. Необходимо выбрать n, достаточно большой, или блок выход может быть недопустимым как описано в Требованиях для Допустимых Выходных параметров. Чтобы изучить, как блок использует этот параметр, чтобы вычислить выход, см. LSF и Метод Расчета LSP: Метод Полинома Чебышева для Корневого Открытия. Также смотрите Корректировку Выходное Время вычисления и Точность с Корневым Нахождением параметров. Настраиваемый (Simulink).
k значения, где каждый LSP выход в из фактического значения LSP, где n является значением параметра Root finding coarse grid points. Чтобы изучить, как блок использует этот параметр, чтобы вычислить выход, см. LSF и Метод Расчета LSP: Метод Полинома Чебышева для Корневого Открытия. Также смотрите Корректировку Выходное Время вычисления и Точность с Корневым Нахождением параметров. Настраиваемый (Simulink).
Установите этот параметр, чтобы активировать второй выходной порт, который выводит вектор с одним булевым элементом на канал; 1
когда выход соответствующего канала допустим, и 0
когда выход недопустим. LSF и LSP выходные параметры недопустимы, когда блоку не удается найти весь LSF или значения LSP или когда вход LPCs нестабильны (для получения дополнительной информации смотрите Требования для Допустимых Выходных параметров).
Выбор этого флажка заставляет блок перезаписывать недопустимые выходные параметры с предыдущим выходом. Установка этого параметра активирует другие параметры для заботы о начальных значениях перезаписи (когда самый первый выход блока недопустим). Для получения дополнительной информации смотрите Параметры для Обработки Недопустимых Вводов и выводов.
Когда первый вход нестабилен, можно перезаписать недопустимый первый выход с также
Значения по умолчанию, путем снятия этого флажка
Значения вы задаете путем установки этого флажка
Начальные значения перезаписи по умолчанию являются LSF или представлениями LSP фильтра все-передачи. Вектор, который используется, чтобы перезаписать недопустимый выход, хранится как внутреннее состояние. Для получения дополнительной информации смотрите Параметры для Обработки Недопустимых Вводов и выводов.
Задайте вектор из значений для перезаписи недопустимого первого выхода, если вы выбрали параметр When first output is invalid, overwrite with user-defined values. Для многоканальных входных параметров предоставьте матрице то же количество каналов как вход или один вектор, который будет применен к каждому каналу. Вектор или матрица значений LSP/LSF, которые вы задаете, должен иметь ту же размерность, размер и состояние системы координат как другие выходные параметры.
Определяет то, что делает блок, когда первым коэффициентом входа не является 1
. Блок может или возобновить расчеты как тогда, когда первый коэффициент равняется 1 (Ignore
); разделите вход LPCs на значение первого коэффициента прежде, чем вычислить выход (Normalize
); в дополнение к Normalize
, отобразите предупреждающее сообщение в командной строке MATLAB (Normalize and warn
); остановите симуляцию и отобразите сообщение об ошибке в командной строке MATLAB (Error
). Для получения дополнительной информации смотрите Параметры для Обработки Недопустимых Вводов и выводов.
Примечание
Чтобы изучить принципы, на которых базируются 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.
Метод блока для выбора, который указывает на проверку, состоит из выполняющего двух шагов:
Coarse Root Finding — - блок делит интервал [-1, 1] на интервалы n, каждую длину 2/n, и проверяет знаки значений обоих полиномов в конечных точках интервалов. Блок начинает проверять знаки в 1 и продолжает проверять знаки в 1 – 4/n, 1 – 6/n, и так далее на шагах длины 2/n, выводя любую точку, если это - корень. Блок прекращает искать в этих ситуациях:
Блок находит изменение знака значений полинома между двумя смежными точками. Интервал, содержащий изменение знака, как гарантируют, будет содержать корень, таким образом, блок дальнейшие поисковые запросы интервал как описано в Шаге 2, Корневом Улучшении Нахождения.
Блок находит и выходные параметры все корни M (данный length-M+1 вход LPC).
Блоку не удается найти, что весь M базируется и дает к недопустимым выходным параметрам как описано в Обработке и Распознавании Недопустимых Вводов и выводов.
Root Finding Refinement — То, когда блок находит изменение знака в интервале, [a, b], это ищет корень, гарантировало, что легло в интервале путем выполнения этих шагов:
Check if Midpoint Is a Root — проверки блока знак средней точки интервала [a, b]. Блок выводит среднюю точку, если это - корень и продолжает Шаг 1, Крупное Корневое Открытие, на следующем этапе, a – 2/n. В противном случае блок выбирает полуинтервал с конечными точками противоположного знака (любой [a, (a + b)/2] или [(a + b)/2, b]) и выполняет Шаг 2b, Остановку, или Продолжите Корневое Улучшение Нахождения.
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, чтобы гарантировать, что блок находит все корни и производит допустимые выходные параметры.
Фиксация не пройдено корневого открытия
Плавающая точка двойной точности
Плавающая точка с одинарной точностью
Boolean — Поддерживаемый только дополнительным выходным портом, который появляется, когда вы устанавливаете параметр, Show output validity status (1=valid, 0=invalid)
Kabal, P. и Ramachandran, R. “Расчет Линейных спектральных частот Используя Полиномы Чебышева. “Транзакции IEEE на Акустике, Речи и Обработке сигналов, Издание ASSP-34 № 6, декабрь 1986. стр 1419-1426.
LSF/LSP to LPC Conversion | DSP System Toolbox |
LPC to/from RC | DSP System Toolbox |
LPC/RC to Autocorrelation | DSP System Toolbox |
poly2lsf | Signal Processing Toolbox |