Обработка сигнала: ресурсы обработки с перекрытием FFT - PullRequest
2 голосов
/ 22 февраля 2011

Имеются ли какие-либо хорошие (если возможно, научные) ресурсы (веб или книги) об обработке наложения. Меня не очень интересуют последствия использования обработки перекрытия и окон при анализе сигнала, поскольку требования разные. Это больше о следующей ситуации в реальном времени: (я сейчас занимаюсь звуковыми сигналами)

  • Деление сигнала на более мелкие части.
  • Создание окон перекрытия.
  • FFTing оконные куски.
  • Выполнять обработку в частотной области.
  • IFFT результаты.
  • соедините куски в непрерывный поток.

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

Edit:

После некоторых обсуждений, если использование оконной функции подходит, я нашел приличный раздаточный материал, объясняющий метод перекрытия и добавления / сохранения. http://www.ece.tamu.edu/~deepa/ecen448/handouts/08c/10_Overlap_Save_Add_handouts.pdf

Однако, после выполнения некоторых тестов, я заметил, что оконная версия будет работать более точно в большинстве случаев, чем метод наложения и добавления / сохранения. Кто-нибудь может это подтвердить? Я не хочу делать какие-либо выводы относительно времени вычислений ....

Edit2:

Вот несколько графиков из моих тестов:

Я создал сигнал, который состоит из трех косинусных волн enter image description here

Я использовал эту функцию фильтра во временной области для фильтрации. (Это симметрично, поскольку применяется ко всему выходу БПФ, который также симметричен для реальных входных сигналов) enter image description here

Выходной сигнал IFFT выглядит следующим образом: видно, что низкие частоты ослабляются больше, чем частоты в среднем диапазоне. enter image description here

Для добавления / сохранения перекрытия и оконной обработки я разделил входной сигнал на 8 фрагментов по 256 выборок. После их сборки они выглядят так. (образец 490 - 540) enter image description here enter image description here enter image description here

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

Однако я понятия не имею, почему они там или их вообще не должно быть.

Ответы [ 3 ]

2 голосов
/ 22 февраля 2011

Это довольно хорошо известная область обработки сигналов, и, вообще говоря, если вы выполняете обработку по направлениям FFT -> спектральная обработка -> IFFT, вам нужно использовать подход «перекрытия и добавления». Кросс-корреляция двух входов является классическим примером, выполненным гораздо легче в спектральной области, чем во временной области.

Вот короткая статья, которую я нашел сразу через Google (я просто искал "fft overlap and add"): http://www.coe.montana.edu/ee/rmaher/ee477/ee477_fftlab_sp07.pdf

Я бы порекомендовал вам инвестировать в хорошую книгу по обработке сигналов, такую ​​как классическая книга Рабинера и Голда «Теория и применение цифровой обработки сигналов» (Prentice-Hall ISBN 0-13-914101-4). Это должно охватывать концепцию обработки с наложением и добавлением.

1 голос
/ 23 декабря 2011

Я играл с этим, пытаясь ответить на вопрос для себя, почему нужно использовать окно.Мои единственные ссылки на окно синтеза таковы: https://ccrma.stanford.edu/~jos/sasp/Inverse_FFT_Synthesis.html

http://recherche.ircam.fr/anasyn/roebel/amt_audiosignale/VL2.pdf

http://www.dspdimension.com/tutorials/

Стефан Бернзее имеет хорошую обзорную информацию.Его код smbpitchshift использует окно синтеза - он использует поднятый косинус на входном блоке, затем снова применяет его к выходному блоку, но я считаю, что это необходимо, поскольку алгоритм смещения высоты тона не является операцией линейной фильтрации, поэтому он уверенна границах окна могут быть прерывистые артефакты, поэтому окно синтеза используется для создания плавного перехода между кадрами.

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

Я построил графики выходных сигналов отфильтрованного сигнала, используя как окно с приподнятым косинусом, так и метод наложения-сложения, и конечный результат - идентичный ИК и идентичные сигналы.Это неудивительно, поскольку те же самые операции, выполняемые во временной области, дают те же результаты.

С другой стороны, если я реализую сломанное ядро ​​фильтра, функция плавного оконного перемещения может помочь маскировать артефакты.В каком-то смысле это нарушает ИК, так что между кадрами происходит более сплоченный переход.Было бы все еще лучше иметь IR, который ограничен длиной nfft / 2 во временной области.Если вам нужно получить отклик фильтра с IR более длинным, чем nfft / 2, то вам следует рассмотреть либо использование большего размера FFT (если задержка не является проблемой), либо использование схемы секционированной свертки:

http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CB4QFjAA&url=http%3A%2F%2Fpcfarina.eng.unipr.it%2FPublic%2FPapers%2F164-Mohonk2001.PDF&ei=qtH0TorDEoKziQKAloHEDg&usg=AFQjCNGDmz79DiuG1kmPXifbWJ7M-gr9rQ&sig2=CMopEcGc1VArZ3gipWTr_w

или

http://www.music.miami.edu/programs/mue/Research/jvandekieft/jvchapter2.htm

Я надеюсь, что это полезно для тех, кто читает это

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

1 голос
/ 22 февраля 2011

При использовании БПФ для быстрой наложения-добавления или наложения-сохранения быстрой сверточной фильтрации, как правило, вы не хотите использовать оконную функцию.Артефакты циклического оконного механизма отменяются при объединении последовательных кадров FFT в каноническую фильтрацию с добавлением / сохранением с перекрытием.

ADDED:

Если вы используете непрямоугольное окно, вы можете убедиться, чтовсе перекрывающиеся кадры окон суммируются с постоянным током, иначе ваш результирующий отфильтрованный сигнал будет иметь амплитудный наклон.Прямоугольные окна и окна с приподнятым косинусом (фон Ганна) будут суммироваться с постоянным током, если величина перекрытия точно кратна ширине окна (за исключением, конечно, самого начала и конца последовательности перекрытия).

...