Анализ цепстра представляет собой нелинейную технологию обработки сигнала с множеством применений в таких областях, как обработка речи и изображения.
Комплексный кепстр последовательности x вычисляется путём нахождения комплексного натурального логарифма преобразования Фурье x, затем обратного преобразования Фурье результирующей последовательности:
ej,
Функция панели инструментов cceps выполняет эту операцию, оценивая комплексный кепстр для входной последовательности. Возвращает действительную последовательность того же размера, что и входная.
Попробуйте использовать cceps в приложении эхо-обнаружения. Сначала создайте синусоидальную волну 45 Гц, дискретизированную на частоте 100 Гц. Добавьте эхо-сигнал с половиной амплитуды через 0,2 секунды после начала сигнала.
t = 0:0.01:1.27; s1 = sin(2*pi*45*t); s2 = s1 + 0.5*[zeros(1,20) s1(1:108)];
Вычислите и постройте график сложного кепстра нового сигнала.
c = cceps(s2); plot(t,c)

Сложный кепстр показывает пик в 0,2 секунды, указывая на эхо.
Действительный кепстр сигнала x, иногда называемый просто кепстром, вычисляется определением натурального логарифма величины преобразования Фурье x, затем получением обратного преобразования Фурье результирующей последовательности:
ejü ndü.
Функция панели инструментов rceps выполняет эту операцию, возвращая действительный кепстр для последовательности. Возвращаемая последовательность представляет собой действительный вектор того же размера, что и входной вектор.
rceps функция также возвращает уникальную минимально-фазовую последовательность, которая имеет тот же действительный кепстр, что и вход. Чтобы получить как реальный кепстр, так и минимально-фазовую реконструкцию для последовательности, используйте [y,ym] = rceps(x), где y является настоящим кепструмом и ym - минимальная фазовая реконструкция x. Следующий пример показывает, что один выход rceps является уникальной минимально-фазовой последовательностью с тем же действительным кепструмом, что и x.
y = [4 1 5]; % Non-minimum phase sequence
[xhat,yhat] = rceps(y);
xhat2 = rceps(yhat);
[xhat' xhat2']ans = 3×2
1.6225 1.6225
0.3400 0.3400
0.3400 0.3400
Для инвертирования сложного кепстра используйте icceps функция. Инверсия осложняется тем, что cceps функция выполняет зависящую от данных модификацию фазы так, чтобы развернутая фаза ее входа была непрерывной на нулевой частоте. Изменение фазы эквивалентно целочисленной задержке. Этот элемент задержки возвращается cceps при запросе второго вывода:
x = 1:10; [xhat,delay] = cceps(x)
xhat = 1×10
2.2428 -0.0420 -0.0210 0.0045 0.0366 0.0788 0.1386 0.2327 0.4114 0.9249
delay = 1
Для инвертирования сложного кепстра используйте icceps с исходным параметром задержки:
icc = icceps(xhat,2)
icc = 1×10
2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 1.0000
Как показано в приведенном выше примере, при любой модификации комплексного кепстра исходный термин задержки может быть более недействительным. Невозможно точно инвертировать сложный кепстр.