[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ВН 07 марта 2003 г. 15:24
В ответ на: БПФ-ОБПФ. отправлено Vit2003 07 марта 2003 г. 14:28

Наверное в n-ый раз напишу. Способ, который Вы собираетесь применить, эквивалентен фильтрации КИХ фильтром во временной области.
Т.е. спектр сигнала умножается на частотную характеристику КИХ фильтра.
Из этого автоматически следует, что размер БПФ, ОБПФ должен быть не меньше длины этого фильтра. Использование меньшего размера эквивалентно использованию фильтра меньшей длины. Со всеми последствиями. Т.е. длина КИХ фильтра это ограничение снизу на размер БПФ. Ограничения сверху в принципе нет. Т.е. оно есть, как правило, но является следствием недостатка памяти или чего-то подобного.
От размера Фурье зависит число правильных выходных отсчетов на выходе за один цикл БПФ, умножение,ОБПФ. В конечном счете быстродействие.
Чем больше размер, тем больше правильных отсчетов за один раз.
Использование большего размера, опять же в принципе, не влияет на точность. На практике влияет, как правило. Но зависит от реализации Фурье. Чем больше размер, тем больше ошибки округления-усечения при выполнении Фурье. Тем больше проблем с представлением sin,cos для Фурье.
Но ошибки округления-усечения есть и при временной реализации фильтра.
Редко возможно точное представление коэффициентов.
А на практике - я, например, использовал этот метод при длине фильтра 4096 и размере Фурье 8192. Фурье целочисленное, 16 разрядов, но с блочной плав. запятой. Для целых чиселэто довольно напряженные размеры.
Получаемый обработочный выигрыш почти соответствовал теоретическому. Ухудшение было, но, если не изменяет память, доли децибела.
А сам метод, точнее один из методов, таков.
Есть импульсная характеристика фильтра, длиной L.
Работать нужно с кусками сигнала длиной N, большей (в крайнем случае равной) L.
Импульсная характеристика дополняется 0 до длины N. Берется от дополненной Фурье, получается ЧХ фильтра, запоминается.
Берутся первые N отсчетов сигнала, Фурье от них, умножение на ЧХ фильтра, обратное Фурье. В результате получается N отсчетов циклической свертки. Из них ПЕРВЫЕ N-L+1 отсчет совпадают с отсчетами линейной свертки. Т.е. являются "правильными".
Далее сдвигаетесь по входному сигналу на N-L+1 отсчет, берете с этой точки следующие N отсчетов. Проделываете то же самое. Получаете еще
N-L+1 отсчетов. Вот эти N-L+1 отсчетов являются продолжением первых N-L+1. Т.е. они начинаются с той точки, где закончились предыдущие. Т.е. автоматом сшиты. И так далее.
А практически для входного сигнала организуется циклический буфер. Удобно его длину делать равной либо 2*N, либо 2*N-L. Но не обязательно, зависит от частоты поступления вх. данных. Этот буфер при вычислениях не должен портиться. Данные в буфер поступают параллельно с вычислениями. По прерываниям, например.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru