Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Evgenij Masherov                     2:5020/175.2   22 May 2001  13:08:07
 To : Vladimir Siltchenko
 Subject : БПФ
 -------------------------------------------------------------------------------- 
 
 Sun May 20 2001 23:56, Vladimir Siltchenko wrote to Eugene Eremin:
 
  
  VS>>> Как избавиться от pезкого yвеличения сигнала по кpаям сабжа?
  EE>>     Оконными фyнкциями.
 
  VS>  Поподробнее можно?
  VS>  Чтонть кроме "Это функции, которые помогут тебе избавиться от резкого
  VS> увеличения сигнала по краям БПФ"
 
  Причины, по которым возникают искажения при применении БПФ, во многом связаны
 с тем, что ДПФ, способом вычисления коего суть БПФ, определен на конечном
 отрезке, тогда как интеграл Фурье использует функцию, определенную на всей
 числовой оси. Преодолевая это противоречие, полагают сигнал периодически
 повторяющимся, как бы составляя бесконечный поезд из одинаковых вагончиков,
 соответствующих заданному отрезку. Hо в этом случае, если начало и конец
 отрезка не совпадают, на границах отрезка возникают стыки, которые в
 разложении Фурье дают медленно убывающие с частотой артефактные коэффициенты.
 Если мы производим какие-либо преобразования над спектром, меняются и эти
 помехи, причем при обратном преобразовании максимальный шум проявляется именно
 в окрестностях стыка.
 Среди подходов к решению этой проблемы можно выделить два:
 1. Устранить стыки.
 2. Вынести шумы в отдельную область.
 
 1. Здесь также есть несколько подходов.
 1.1 Если умножить сигнал на функцию, равную нулю в начале и конце отрезка, при
 этом гладкую, стыки исчезнут. В качестве такой (оконной) функции можно брать
 треугольную, приподнятый косинус, функцию Кайзера и т.п. (Windowing,
 tappering)
 При этом, однако, сигнал модулируется этой функцией, что весьма неприятное
 искажение. Кроме того, отсчеты берутся с разным весом (в середине - с
 максимальным, на краях - с нулевым). Противостоя этому, пользуются наложением,
 т.е. отрезки для расчета берут не встык, а сдвигая на половину их длины, так
 что точки, при одном расчете имеющие малые веса, на следующем (или предыдущем)
 имеют большие. Это стандартный прием для расчета спектров, приводящий,
 впрочем, к уширению линий.
 1.2 Можно выбрать базис функций так, чтобы стыки исчезли. Hаиболее применимый
 прием - косинус-преобразование, когда в разложении используются лишь косинусы,
 но не синусы. При этом, очевидно, можно работать лишь с четными функциями
 f(x)=f(-x), поэтому отрезок дополняют его зеркальным отражением, так что на
 стыках значения совпадают (есть разрывы лишь производной). Такой прием нашел
 применение в JPEG и некоторых звуковых стандартах. Синус-преобразование,
 работающее лишь с нечетными функциями, позволяет избавиться и от разрыва
 первой производной - но в этом случае возвращаются разрывы сигнала, и их надо
 обрабатывать особо (см. Корнелиус Ланцош "Практические методы прикладного
 анализа")
 
 2. Иной подход состоит в том, что отрезок дополняется нулями равного
 количества. В этом случае после преобразования мы получаем в первой половине
 обработанный сигнал - а во второй, на месте бывших нулей, остаток, который
 следует прибавлять к обработанному сигналу на следующем шаге (Принцип работы
 такого подхода проще всего уяснить из того, что БПФ - легчайший способ
 быстрого расчета сверток, а свертки - способ описания фильтров с конечной
 импульсной характеристикой). Такой прием сильно помог мне при изготовлении
 эквалайзера. (А также фильтра Гильберта и кепстрального преобразователя)
 
 С уважением
 
 Евгений Машеров АКА СанитарЖеня
 
 --- ifmail v.2.15
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 БПФ   Evgenij Masherov   22 May 2001 13:08:07 
 БПФ   Viktor Petroff   25 May 2001 13:26:24 
Архивное /ru.algorithms/3300c28b1dee.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional