Анализ Cepstrum

Что такое Cepstrum?

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

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

xˆ=12π-ππlog[X(ejω)]ejωndω.

Функция тулбокса cceps выполняет эту операцию, оценивая комплексный cepstrum для последовательности входа. Он возвращает действительную последовательность того же размера, что и входная последовательность.

Попробуйте использовать 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)];

Вычислите и постройте график комплексного cepstrum нового сигнала.

c = cceps(s2);
plot(t,c)

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

Комплексный cepstrum показывает пик в 0,2 секунды, указывая на эхо.

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

cx=12π-ππlog|X(ejω)|ejωndω.

Функция тулбокса rceps выполняет эту операцию, возвращая действительный cepstrum для последовательности. Возвращенная последовательность является действительным вектором того же размера, что и входной вектор.

The rceps функция также возвращает уникальную минимально-фазовую последовательность, которая имеет тот же действительный cepstrum, что и вход. Чтобы получить как действительный cepstrum, так и минимально-фазовую реконструкцию для последовательности, используйте [y,ym] = rceps(x), где y является реальным cepstrum и ym - минимальная фазовая реконструкция x. Следующий пример показывает, что один выход rceps является уникальной минимально-фазовой последовательностью с таким же действительным cepstrum, как 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

Обратный комплексный Cepstrum

Чтобы инвертировать комплексный cepstrum, используйте 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

Чтобы инвертировать комплексный cepstrum, используйте 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

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

См. также

| |

Для просмотра документации необходимо авторизоваться на сайте