2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 Свойства оконного Фурье
Сообщение17.04.2025, 09:50 


23/02/23
182
Добрый день,

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

Пусть у нас есть дискретный сигнал $f_n, n=0, ..., N$ для больших $N$. Мы разбиваем его на одинаковые окна длины $K$: $[f_0,...,f_{K-1}], [f_K, ..., f_{2K-1}], ...$ в каждом окне к сигналу применяем БПФ, после этого выбрасываем $sK$ высокочастотных гармоник ($s<0.5$), к полученному результату применяем обратное БПФ и возвращаем результат оттуда, откуда взяли.

Пусть для простоты $K$ - степень двойки, и $s$ всегда выбрано так, что $sK$ - целое.

Очевидно, что такая процедура сглаживает исходный сигнал удаляя из него высокочастотные гармоники, причем пока $sK>>1$, такая процедура примерно одинаково не зависимо от значений $K$ удаляет верхний спектр сигнала.

Меня волнует следующий вопрос, который не могу сам быстро понять. Пусть у нас фиксировано $s$. Если в сигнале убираются верхние $sN$ гармоник для любого $K$, и на что влияет выбор $K$?

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 11:10 
Заслуженный участник
Аватара пользователя


11/03/08
10215
Москва
Фильтрацию через Фурье так не делают. Если у Вас реальный сигнал, а не искусственно сгенерированный, в котором представлены только частоты из "гребёнки", у Вас получится нечто пульсирующее по амплитуде. Посмотрите, например, у Шафера.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 11:27 
Аватара пользователя


26/05/12
1857
приходит весна?
zgemm в сообщении #1682555 писал(а):
после этого выбрасываем $sK$ высокочастотных гармоник ($s<0.5$), к полученному результату применяем обратное БПФ и возвращаем результат оттуда, откуда взяли.
Плохой подход. На стыках окон будут скачки. Если обрабатываемый сигнал — звук, то в результате будет слышен треск. Простейший подход к решению этой проблемы — использовать перекрывающиеся окна с некоторой функцией усреднения на перекрытии (типа того, как в программах редактирования и сведения звука при перекрытии фрагментов можно выбрать форму перехода одного в другой).

zgemm в сообщении #1682555 писал(а):
Если в сигнале убираются верхние $sN$ гармоник для любого $K$, и на что влияет выбор $K$?
Каждый раз, когда в обрабатываемом сигнале имеется локализованная по времени особенность, в спектре сигнала эта особенность занимает весь частотный промежуток. Вы удаляете верхние гармоники, временная особенность уменьшается по энергии (что очевидно), но в то же время растекается по времени (хотя бы потому, что представляется гармониками меньшей частоты). Практика показывает, что растекание в той или иной степени происходит на весь временной промежуток (длины K).

Далее, ваш подход с окнами не очень хорош, в том плане, что у вас всегда есть хотя бы одна особенность во временном представлении, а именно — скачок и/или излом сигнала на стыке границ отрезка. Дело в том, что преобразование Фурье — это не просто преобразование на отрезке. Это преобразование на отрезке с замкнутыми концами (топологически это будет эквивалентно кругу). Если вы сдвинете сигнал вдоль этого круга, то всё, что изменится в спектре — это добавится фиксированный сдвиг фаз ко всем гармоникам по определённому закону. Распределение энергии по частотам при этом никак не изменится. Произведя такой сдвиг, частотная особенность на стыке концов станет очевидной.

Оконная функция опять же является простейшим решением этой проблемы. Только вы теперь должны её применять два раза: первый раз до БФП и обработки спектра, для того, чтобы уничтожить особенность стыка обрезанных концов, второй раз — после обратного БФП, чтобы гладко сшить перекрывающиеся фрагменты. Поэтому придётся два раза умножать на квадратный корень из оконной функции. Ну, или придумать что-нибудь по-хитрее.

Величина K является компромиссом между частотным разрешением и размытием обработанного сигнала по времени.

Вообще, преобразование Фурье хоть и является очень быстрым, интуитивно понятным и простым инструментом для частотной манипуляции временных сигналов, оно не является наилучшим. Вот, допустим, вы учли все рекомендации и сделали НЧ-фильтр на его основе. Когда вы пропускаете через него тестовый синусоидальный сигнал с частотой из области прохождения, в результате вы получаете очень похожий сигнал, но походу он наберёт пачку перекрёстных гармоник (кроме случаев, когда частота синуса является в точности одной из частот гребёнки БФП). Да, их амплитуда будет мала, а если исходный сигнал уже имеет шум, они даже будут потоплены в этом шуме. Но факт остаётся фактом: такой фильтр будет нелинейным и будет добавлять левые гармоники в сигнал.

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

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 11:50 


23/02/23
182
Спасибо B@R5uk и Евгений Машеров за важные комментарии!
Согласен, что на стыках будет пульсация, но энергия такой пульсации обычно получается не большой, и, как я понимаю, не должна превысить то, сколько было в исходном сигнале.

У меня цель такая: исходный сигнал оцифрован скажем с 1MS/s, в нем есть мне важные сигналы на частотах 10-120 кГц, причем их фаза, амплитуда и частота могут довольно быстро меняться. Также есть множество гармоник на частотах до 10кГц, но они обычно не быстро изменяются, но их терять и искажать нельзя.

У меня 1MS/s не пролазит, пролазит только в 3-4 раза меньше, мне надо чем-то скомпремировать сигнал не потеряв то, что есть.

Я пока использовал именно такое оконное преобразование, выставляя окно до 256 точек. Так как доступа к исходному сигналу в чистом виде нет, и сохранить его куда-то тоже не получается, а компрессия идет на довольно слабом процессоре в реальном времени, хотелось бы понять что тут можно сделать. При окнах 64-256 я разницы практически не замечал, а при очень маленьких окнах 4-8 сигнал уже портился, то есть понятно, что гармоники до 10кГц не терялись, а вот сигналы порядка 120кГц, которые на самом деле у меня часто в виде моноимпульсов - сильно искажались.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 11:59 
Заслуженный участник
Аватара пользователя


11/03/08
10215
Москва
Фильтрацию через Фурье делают, например, так:
Разбивают сигнал на отрезки. Дополняют их нулями, не менее чем исходно точек в отрезке.
Делают БПФ удвоенного отрезка, умножают на коэффициенты для данной частоты (в частности, на ноль для удаления данной частоты), затем обратное БПФ.
При этом там, где были нули - уже не нули. И этот "хвост" запоминают, и после обработки следующего отрезка прибавляют к первой его половине.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 12:05 


23/02/23
182
Евгений Машеров в сообщении #1682609 писал(а):
Разбивают сигнал на отрезки. Дополняют их нулями, не менее чем исходно точек в отрезке.

я так пробовал, получается хуже. А именно возьмем 128 точек, дополним их нулями до 256. Сделаем Фурье, сохраним первые 16 комплексных амплитуд, передадим, раскроем.
Если сравнивать с тем, что не дополнять нулями, то восстановленный сигнал лучше вписывается в то, что я ожидаю.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 12:12 
Аватара пользователя


26/05/12
1857
приходит весна?
zgemm, если у вас сигналы на фиксированных частотах и их частотная локализация небольшая и заранее известна, то исходный сигнал можно прогнать через пачку оконных фильтров для каждой частоты в отдельности. Затем полученные потоки просэмлировать с частотой немного превышающей частоту из теоремы Найквиста-Шеннона (Котельникова) для заданной ширины частотного окна. Это приведёт к алиасингу сигнала, но, поскольку частота достаточно высока, никакой потери информации не происходит (главное, чтобы граничные частоты не попали в частотную область с полезной нагрузкой) и исходный отфильтрованный сигнал восстанавливается полностью в соответствии с теоремой (только надо найти её модифицированный для произвольного окна вариант, ходовой вариант с синками работает только когда нижняя граница спектрального окна находится в нуле).

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

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

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

-- 17.04.2025, 12:36 --

zgemm в сообщении #1682613 писал(а):
Евгений Машеров в сообщении #1682609 писал(а):
Разбивают сигнал на отрезки. Дополняют их нулями, не менее чем исходно точек в отрезке.

я так пробовал, получается хуже. А именно возьмем 128 точек, дополним их нулями до 256. Сделаем Фурье, сохраним первые 16 комплексных амплитуд, передадим, раскроем.
Если сравнивать с тем, что не дополнять нулями, то восстановленный сигнал лучше вписывается в то, что я ожидаю.
Разумеется это плохой совет. Добавление нулей эквивалентно умножению сигнала на всё более узкую оконную функцию, причём прямоугольную. Это превратит сигнал в импульс. Даже синус с частотой с точностью попадающей на гребёнку от этого "растечётся" по всему спектру, а после фильтрации (неважно какими средствами) изменится до неузнаваемости.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 12:44 


20/01/12
210
zgemm в сообщении #1682603 писал(а):
У меня цель такая: исходный сигнал оцифрован скажем с 1MS/s, в нем есть мне важные сигналы на частотах 10-120 кГц, причем их фаза, амплитуда и частота могут довольно быстро меняться. Также есть множество гармоник на частотах до 10кГц, но они обычно не быстро изменяются, но их терять и искажать нельзя.

У меня 1MS/s не пролазит, пролазит только в 3-4 раза меньше, мне надо чем-то скомпремировать сигнал не потеряв то, что есть.
Vaidyanathan, P. P.: Multirate digital filters, filter banks, polyphase networks, and applications: a tutorial

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 13:24 
Заслуженный участник
Аватара пользователя


11/03/08
10215
Москва
zgemm в сообщении #1682613 писал(а):
я так пробовал, получается хуже. А именно возьмем 128 точек, дополним их нулями до 256. Сделаем Фурье, сохраним первые 16 комплексных амплитуд, передадим, раскроем.
Если сравнивать с тем, что не дополнять нулями, то восстановленный сигнал лучше вписывается в то, что я ожидаю.


А хвост от преобразования используете? Надо его прибавлять к следующему фрагменту. В нём последействие фильтра.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 13:34 


18/05/15
781
zgemm в сообщении #1682555 писал(а):
Очевидно, что такая процедура сглаживает исходный сигнал удаляя из него высокочастотные гармоники

Не только. Чисто интуитивно убиваются также и низкие частоты: самая низкая частота "окна" $\sim 1/K$.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 13:42 
Аватара пользователя


26/05/12
1857
приходит весна?
ihq.pl в сообщении #1682639 писал(а):
Чисто интуитивно убиваются также и низкие частоты: самая низкая частота "окна" $\sim 1/K$.
Не, эти частоты зашиты в нулевой элемент спектра окна — константную добавку, — ну, и в несколько первых гармоник в значительно меньшей степени (по энергии). Так что без удаления константы эти частоты вполне себе сохраняются. Можете трактовать это как фильтрующую функцию (не помню как она точно называется) для вейвлета Хаара: на отрезках длиной K сигнал аппроксимируется средним, а высшие компоненты убиваются. Это сохраняет низкие частоты. Фактически это и есть наивный подход к редескритизации сигнала с уменьшением частоты в K раз.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 14:28 


18/05/15
781
B@R5uk, если правильно понял, ТС делит исходный сигнал на части, преобразует каждую часть по отдельности и склеивает результаты преобразований обратно. А Вы, возможно, говорите о свертке сигнала с индикатором.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 15:30 


14/11/21
219
А фильтровой вариант решения проблемы вами не рассматривался?

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 15:34 


18/05/15
781
Видимо, сигнал очень большой и отсюда идея разделить его на части.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 15:47 


14/11/21
219
С той же fdatool в Matlab можно поиграться, посмотреть на порядок фильтров в зависимости от...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу 1, 2, 3  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group