exponenta event banner

Анализ цепстра

Что такое цепструм?

Анализ цепстра представляет собой нелинейную технологию обработки сигнала с множеством применений в таких областях, как обработка речи и изображения.

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

xˆ=12π∫-ππlog[X (ejü)] 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)

Figure contains an axes. The axes contains an object of type line.

Сложный кепстр показывает пик в 0,2 секунды, указывая на эхо.

Действительный кепстр сигнала x, иногда называемый просто кепстром, вычисляется определением натурального логарифма величины преобразования Фурье x, затем получением обратного преобразования Фурье результирующей последовательности:

cx=12π∫-ππlog'X (ejü) | 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

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

См. также

| |