cceps

Комплексный кепстральный анализ

Описание

пример

xhat = cceps(x) возвращает комплексный cepstrum xhat действительной последовательности данных x использование преобразования Фурье.

Примечание

cceps работает только на реальных данных.

[xhat,nd] = cceps(x) возвращает количество выборок nd (круговой) задержки, добавленной к x до нахождения комплекса cepstrum.

[xhat,nd,xhat1] = cceps(x) возвращает второй комплексный cepstrum, xhat1.

[___] = cceps(x,n) нулевые колодки x по длине n и возвращает длину n.

Примеры

свернуть все

Этот пример использует cceps чтобы показать эхо. Сгенерируйте синус частоты 45 Гц, дискретизированный при 100 Гц. Добавьте эхо с половиной амплитуды и 0,2 с позже. Вычислите комплексный cepstrum сигнала. Заметьте эхо в 0,2 с.

Fs = 100;
t = 0:1/Fs:1.27;

s1 = sin(2*pi*45*t);		
s2 = s1 + 0.5*[zeros(1,20) s1(1:108)];

c = cceps(s2);

plot(t,c)
xlabel('Time (s)')
title('Complex cepstrum')

Figure contains an axes. The axes with title Complex cepstrum contains an object of type line.

Входные параметры

свернуть все

Входной сигнал, заданный как вектор действительных чисел. При применении линейного члена фазы вход изменяется, чтобы не иметь разрывной фазы в ± π радианах. То есть она круто сдвинута (после нулевого заполнения) некоторыми выборками, при необходимости, чтобы иметь нулевую фазу в π радианах.

Длина заполненного нулями сигнала, заданная как положительное действительное целое число.

Выходные аргументы

свернуть все

Комплексный cepstrum, возвращается как вектор.

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

Второй комплексный cepstrum, возвращенный как вектор. xhat1 вычисляется с использованием альтернативного алгоритма факторизации, заданного в ссылках [1] и [2]. Этот метод может применяться только к сигналам с конечной длительностью. См. Раздел Алгоритма ниже для сравнения методов Фурье и факторизации вычисления комплексного cepstrum.

Алгоритмы

Кепстральный анализ является нелинейным методом обработки сигналов, который чаще всего применяется в обработке речи и гомоморфной фильтрации [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] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Обработка сигнала в дискретном времени. Верхняя Седл-Ривер, Нью-Джерси: Prentice Hall, 1999, pp . 788-789.

[2] Штейглиц, К. и Б. Дикинсон. «Расчет Комплексного Cepstrum путем факторизации Z-преобразования». Материалы IEEE 1977 года® Международная конференция по акустике, речи и обработке сигналов, стр. 723-726.

[3] Комитет по цифровой обработке сигналов Общества акустики, речи и обработки сигналов IEEE, eds. Программы для цифровой обработки сигналов. Нью-Йорк: IEEE Press, 1979.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

| | |

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