Комплексный кепстральный анализ
Кепстральный анализ является нелинейным методом обработки сигналов, который применяется обычно в речевой обработке и гомоморфной фильтрации [1]. cceps
реализация алгоритма 7.1 в [3]. Длинная программа Фортрана уменьшает до этих трех линий кода MATLAB®, которые составляют ядро cceps
:
h = fft(x); logh = log(abs(h)) + sqrt(-1)*rcunwrap(angle(h)); y = real(ifft(logh));
Примечание
rcunwrap
в вышеупомянутом сегменте кода специальная версия unwrap
это вычитает прямую линию из фазы. rcunwrap
локальная функция в cceps
и не доступно для использования из командной строки MATLAB.
В следующей таблице перечислены за и против алгоритмов факторизации и Фурье.
Алгоритм | Профессионалы | Недостатки |
---|---|---|
Фурье | Может использоваться для любого сигнала. | Требует разворачивания фазы. Выход искажается. |
Факторизация | Не требует разворачивания фазы. Никакое искажение | Может использоваться только для сигналов короткой продолжительности. Входной сигнал должен иметь все-нулевое Z-преобразование без нулей на модульном круге. |
В общем случае вы не можете использовать результаты этих двух алгоритмов проверить друг друга. Можно использовать их, чтобы проверить друг друга только, когда первый элемент входных данных положителен, Z-преобразование последовательности данных имеет только нули, все эти нули в модульном кругу, и последовательность входных данных длинна (или дополненный нулями).
[1] Оппенхейм, Алан V, Рональд В. Шафер и Джон Р. Бак. Обработка сигналов дискретного времени. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1999, стр 788–789.
[2] Steiglitz, K. и Б. Дикинсон. “Расчет Комплексного Кепстра Факторизацией Z-преобразования”. Продолжения Международной конференции 1977 IEEE® по вопросам Акустики, Речи и Обработки сигналов, стр 723–726.
[3] Комитет по Цифровой обработке сигналов Акустики IEEE, Речи, и Общества Обработки сигналов, программ редакторов для Цифровой обработки сигналов. Нью-Йорк: Нажатие IEEE, 1979.