DFT - устранение эффекта окна в спектральной области с помощью свертки


11

Я думал о предмете окон DFT, и мне в голову пришла мысль. ДПФ даст спектр сигнала, свернутый со спектром используемого окна, следовательно, имеющий главные лепестки и боковые лепестки.

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

введите описание изображения здесь

Слева - исходный спектр, созданный с помощью окна Ханнинга. Справа - спектр, извилистый ДПФ окна Хэннинга. Сверху - сам спектрум, снизу - findpeaksрезультат MATLAB .

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

Из того, что я вижу, это может помочь обнаружению пиков, как мы видим на предыдущем изображении. Кроме того, похоже, что спектр немного искажен, как мы видим на 2 следующих изображениях. :

введите описание изображения здесь введите описание изображения здесь

Где синий график - спектр, а красный - постконволюционный спектр.

  • Есть мысли об этом?
  • Есть ли проблема, которая может возникнуть из-за этой свертки после FFT?
  • Любая бумага, которая касается предмета?

РЕДАКТИРОВАТЬ

Вы можете найти скрипт здесь , который будет генерировать следующий график:

введите описание изображения здесь


1
Не могли бы вы предоставить код, который вы использовали для построения рисунков? Я предполагаю, что гладкость свернутой функции - это просто вопрос разрешения. Вы не можете отменить окно, свернув еще раз с тем же окном (вам действительно нужно де- свернуть, к чему относится ответ rbj). Кроме того, реальным улучшением было бы увеличение разрешения по частоте и / или увеличение подавления боковых лепестков, ни одно из которых здесь не достигается. Найти «правильные» пики относительно легко для обеих функций.
Мэтт Л.

Я только что отредактировал свой пост, чтобы добавить пример кода.
Пьер-Ив Лессар

Ответы:


1

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

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

На ваших графиках видно, что сглаживание спектров амплитуды с помощью окна делает противоположное: главные лепестки становятся шире и меньше, а продукты утечки в результате преобразования сигнала за конечное время увеличивают мощность. Применительно к шумным сигналам это приведет к значительному недостатку.

Ваше предложение, однако, все еще довольно полезно для пиковой идентификации!


1

Оставаясь верным теме «удаление эффекта окна в домене freq посредством свертки» (несмотря на то, что ОП, возможно, хотел достичь чего-то другого или чего-то подобного), я чувствую, что хочу добавить свой комментарий, имея личный опыт работы с этой конкретной темой.

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

Одним словом, да, вы можете. Несмотря на то, что математическое удаление окна (во временной или частотной области) подразумевает восстановление данных, которые будут потеряны навсегда, на практике вы можете сделать это с минимальной возможной потерей.

Давайте возьмем окно Ханна (с повышенным косинусом). Его формула во временной области имеет вид y = (1-cos (pi * x)) / 2, где x находится в диапазоне от нуля до одного кадра и исключается из него. Соответствующее представление в частотной области: bin0 = (0.5,0i), bin1 = (- 0.5,0i). Чтобы удалить его влияние во временной области, вы можете просто разделить сигнал на вышеуказанную оконную функцию. Чтобы сделать то же самое в частотной области, вы можете просто свернуть спектр, чтобы он не был окошком, со спектром обратной функции. Поскольку эта функция равна нулю на обоих концах (фактически она математически равна нулю только в первой точке, за исключением ошибок округления), чтобы избежать бесконечности, вы можете просто заменить бесконечность большим значением, например, 10000 или около того. Результатом такой свертки является неоконный спектр. Преобразовав его обратно во временную область,

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


0

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

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

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


6
В принципе я согласен с вашими заявлениями. Хотя ОП не говорит о деконволюции, а объединяет полученный спектр со спектром окна Хеннинга. (то есть, по сути, окно с окном в квадрат Хеннинга)
Максимилиан Мате

1
нет, ОП говорит об устранении эффекта, а не об удвоении эффекта. деление такое же, как умножение на обратное. это умножение на такое число, которое дает вам результат, который мы называем частным . то, что свертка в одной области - это то же самое, что и умножение в другой области, то деконволюция - это то же самое, что и свертка с чем-то специально определенным.
Роберт Бристоу-Джонсон

2
ОП говорит об удалении ряби, выполняя свертывание полученного спектра со спектром окна. Это дает умножение сигнала на окно в квадрате (одно окно от начального умножения во времени, второе - от свертки по частоте)
Максимилиан Мате

1
Ну, не совсем так. Я делаю свертку величин спектра, которые дают другие результаты умножения квадрата окна. Я не уверен, что это представляет математически ... Я вижу это как взаимную корреляцию между обеими величинами спектра (так как спектры окон симметричны).
Пьер-Ив

0

Техника сглаживания спектра, которую вы использовали, часто используется при анализе самого спектра, и вам не нужны эффекты во временной области (например, определение частоты на основе сигнала или измерение ширины полосы). Нет даже требования, чтобы окно, используемое для сглаживания, было таким же, как окно, используемое во временной области. Одна из основных причин использования окна во временной области перед DFT состоит в том, чтобы минимизировать прерывистость в циклическом цикле, который DFT принимает на концах сигнала (DFT по своей природе является круглым). Целью сглаживания в частотной области является облегчение анализа, такого как обнаружение пиков или измерение ширины полосы. «Лучшее» окно для одного может не быть «лучшим» окном для другого. На самом деле, я никогда не видел ДПФ окна, используемого для сглаживания спектра.


Насколько я понимаю, я делаю взаимную корреляцию со спектром, поэтому получаю пики в центре основных лепестков. Использование окон временной области кажется очевидным выбором, и я не понимаю, почему я использовал бы взаимную корреляцию окон вагона, чтобы найти, где расположен спектр окна Хеннинга. Почему мы хотим что-то еще, кроме того же окна?
Пьер-Ив

Да, результат, который вы описываете - это свертка с автокорреляцией окна, но это просто свертка с другим окном. Автокорреляция приведет к ОЧЕНЬ жесткому пику при постоянном токе. Таким образом, вы эффективно свернули спектр сигнала с очень узким фильтром нижних частот. Именно частотная характеристика этого фильтра дает вам результат, который вы видите, а не тот факт, что это автокорреляция. Тот факт, что это автокорреляция, является совпадением.
Кассман
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.