В чем разница между преобразованием Фурье и косинусным преобразованием?

75

При распознавании речи внешний интерфейс обычно выполняет обработку сигналов, чтобы обеспечить извлечение признаков из аудиопотока. Дискретное преобразование Фурье (ДПФ) применяется дважды в этом процессе. Первый раз после окон; после этого применяется бин Мель, а затем другое преобразование Фурье.

Однако я заметил, что в распознавателях речи (например, во внешнем интерфейсе по умолчанию в CMU Sphinx ) обычно используется дискретное косинусное преобразование (DCT) вместо DFT для второй операции. В чем разница между этими двумя операциями? Зачем вам делать DFT в первый раз, а затем DCT во второй раз?

Нейт Гленн
источник
Таким образом, некоторые объяснили разницу между этими двумя процессами. Кто-нибудь знает, почему dft и dct используются в разное время для распознавания речи? Считается ли выход первого ДПФ симметричным? Или сжатие dct подходит для упаковки большего количества информации в первых 13 точках (обработка речи обычно использует только их)?
Нейт Гленн
Связан ли ваш вопрос с Мел-частотным кепстром , который был задан в другом вопросе ?
Rwong
Мой вопрос состоял из двух частей: разница между DCT и DFT и почему DCT часто используется для обработки сигналов после применения DFT и Mel Binning, а не другого DFT.
Нейт Гленн
почему при обработке изображений мы не используем дискретное синусоидальное преобразование вместо дискретного косинусного?
Привет, rimondo, это хороший вопрос, но ты отправил его как ответ. Вы должны создать новый вопрос, чтобы задать его.
Нейт Гленн

Ответы:

48

Дискретное преобразование Фурье (DFT) и Дискретное косинусное преобразование (DCT) выполняют сходные функции: они оба разлагают вектор с дискретным временем конечной длины в сумму масштабированных и сдвинутых базисных функций. Разница между ними заключается в типе базисной функции, используемой каждым преобразованием; DFT использует набор гармонически связанных комплексных экспоненциальных функций, в то время как DCT использует только (действительные) косинусные функции.

DFT широко используется для приложений общего спектрального анализа, которые находят свое применение в различных областях. Он также используется в качестве строительного блока для методов, использующих преимущества свойств представления в частотной области, таких как алгоритмы быстрой свертки с перекрытием-сохранением и сложением-наложением

DCT часто используется в приложениях сжатия данных с потерями, таких как формат изображения JPEG. Свойство DCT, которое делает его вполне пригодным для сжатия, заключается в его высокой степени «спектрального уплотнения»; на качественном уровне представление DCT сигнала имеет тенденцию концентрировать больше своей энергии в небольшом числе коэффициентов по сравнению с другими преобразованиями, такими как DFT. Это желательно для алгоритма сжатия; если вы можете приблизительно представить исходный (во временной или пространственной области) сигнал, используя сравнительно небольшой набор коэффициентов DCT, то вы можете уменьшить свои требования к хранению данных, только сохраняя выходные данные DCT, которые содержат значительные количества энергии.

Джейсон Р
источник
4
@JasonR "на качественном уровне представление DCT сигнала имеет тенденцию концентрировать больше энергии в небольшом числе коэффициентов по сравнению с другими преобразованиями, такими как DFT". Хммммм ... Я не уверен, что полностью согласен с вами в этом - хотя бы потому, что ДПФ уже содержит косинус, на который будет проецироваться сигнал, - как ДПФ может не показать столько силы этого проецирования? а может DCT? Благодарю.
Спейси
3
Это очень известная особенность DCT, которая объясняет его использование во многих алгоритмах сжатия. Я полагаю, что это связано с граничными условиями, принятыми DCT на краях сигнала, которые отличаются от DFT.
Джейсон Р
23

Я обнаружил, что некоторые подробности в вики DCT (также опубликованные Pearsonartphoto) указывают на то, что DCT хорошо подходит для приложений сжатия. Конец раздела Неофициальный обзор полезен (жирный шрифт мой).

В частности, хорошо известно, что любые разрывы в функции уменьшают скорость сходимости ряда Фурье ... чем плавнее функция, тем меньше членов в ее DFT или DCT требуется для ее точного представления, и чем больше ее может быть сжат ... Однако неявная периодичность DFT означает, что разрывы обычно возникают на границах ... В отличие от этого, DCT, где обе границы даже всегда, дает непрерывное расширение на границах. Вот почему DCT ... обычно работают лучше для сжатия сигналов, чем DFT и DST. На практике DCT типа II обычно предпочтительнее для таких приложений, отчасти по соображениям удобства вычислений.

Кроме того, вы можете обнаружить, что этот ответ тоже полезен (с сайта math.stackexchange.com). Говорится:

Косинусные преобразования - не более чем ярлыки для вычисления преобразования Фурье последовательности со специальной симметрией (например, если последовательность представляет выборки из четной функции).

какой-то робот
источник
19

Причина, по которой вы видите, что преобразование Фурье применяется два раза в процессе извлечения объектов, заключается в том, что функции основаны на концепции, называемой кепстр. Кепстр представляет собой игру в слове «спектр». По сути, идея состоит в том, чтобы преобразовать сигнал в частотную область с помощью преобразования Фурье, а затем выполнить другое преобразование, как если бы частотный спектр был сигналом.

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

Есть несколько немного разных определений. Первоначально преобразование кепстра было определено как преобразование Фурье -> комплексный логарифм -> преобразование Фурье [1]. Другое определение - преобразование Фурье -> комплексный логарифм -> обратное преобразование Фурье [2]. Мотивация последнего определения заключается в его способности разделять свернутые сигналы (человеческая речь часто моделируется как свертка возбуждения и голосового тракта).

Популярный выбор, который, как было установлено, хорошо работает в системах распознавания речи, состоит в том, чтобы применять банк нелинейных фильтров в частотной области (преобразование mel, на которое вы ссылаетесь) [3]. Конкретный алгоритм определяется как преобразование Фурье -> квадрат величины -> банк фильтров Мел -> реальный логарифм -> дискретное косинусное преобразование.

Здесь DCT может быть выбран в качестве второго преобразования, потому что для вещественного ввода действительная часть DFT является разновидностью DCT. Причина, по которой DCT является предпочтительным, заключается в том, что выходной сигнал приблизительно декоррелирован. Декоррелированные элементы могут быть эффективно смоделированы как гауссово распределение с диагональной ковариационной матрицей.

[1] Богерт Б., Хили М. и Тьюки Дж. (1963). Четверичный аланиз по временным рядам для эхо-сигналов: кепстр, псевдо-автоковариация, кросс-кепстр и крекинг по Сафе. В материалах симпозиума по анализу временных рядов, с. 209-243.

[2] Оппенгейм А. и Шафер Р. (1968). Гомоморфный анализ речи. В IEEE Труды по аудио и электроакустике 16, p. 221-226.

[3] Дэвис С. и Мермельштейн П. (1980). Сравнение параметрических представлений для односложного распознавания слов в высказываемых предложениях. В транзакциях IEEE по акустике, обработке речи и сигналов 28, p. 357-366.

Сеппо Энарви
источник
Число рейнольдса PCA в извлечении функций: настоящий PCA был бы здесь бессмысленным, потому что он зависел бы от данных! Если вы вычислите PCA для логарифмических коэффициентов плавления частоты из одного набора данных, а затем из другого, вы найдете другую основу - это будет означать, что, если PCA использовался в процессе извлечения признаков, объекты, извлеченные по одному сигналу, не 'означают то же самое', что и функции, извлеченные из другого сигнала. Теперь сделайте этот эксперимент: вычислите PCA на множестве log Mel coef. извлеченный из 10 часов самого разнообразного аудио. База, которую вы найдете, необычайно похожа на базу DCT.
Pichenettes
3
Другими словами: чтобы быть полезным в приложении распознавания, преобразование декорреляции в конце процесса извлечения признаков должно быть своего рода компромиссом, подходящим для «звука» в целом, а не для конкретных данных. Оказывается, что основа DCT очень близка к тому, что вы получаете, когда запускаете PCA на большом наборе аудио!
Pichenettes
Недавно я видел PCA, использованный в конце процесса извлечения признаков в экспериментальной речевой системе. Эта система рассчитала прогноз PCA на основе данных обучения и впоследствии использовала ту же основу.
Сеппо Энарви,
8

Разница между дискретным преобразованием Фурье и преобразованием дискретного косинуса заключается в том, что DCT использует только действительные числа, в то время как преобразование Фурье может использовать комплексные числа. Наиболее распространенным применением DCT является сжатие. Это эквивалентно БПФ двойной длины.

PearsonArtPhoto
источник
1
Однако возможно представить DCT / DST сложной последовательности, где отдельно взяты DCT / DST действительной и мнимой частей.
поэтому мы можем сказать, что если я вычисляю DFT, то получаю DCT бесплатно, все, что мне нужно сделать, это удалить мнимые части вектора. Пожалуйста, поправьте меня, если я ошибаюсь.
Марек
1
Это немного сложнее, но можно довольно легко конвертировать между FFT и DCT.
PearsonArtPhoto