Цитата(Nukers @ Mar 7 2010, 23:00)

Тут я постарался графически отобразить мое понятие временного наложения кольцевого буфера (Оно конечно абстрактно)
Нет... не так...
Цитата(Nukers @ Mar 7 2010, 23:00)

Себе я выстроил такой алгоритм (поправьте, если заблуждаюсь):
[i]1) Принимаем порцию из 1024 отсчетов.
...да...
Цитата(Nukers @ Mar 7 2010, 23:00)

2) Накладываем окно (т.е. копируем эту порцию 4 раза).
...нет-нет-нет! Какой ужас

... Мы ничего никуда не копируем - его принцип неприкосновенен... кольцевой буфер живет своей жизнью - самый новый сэмпл затирает самый старый. Данные все поступают и поступают... И так без конца... После каждых новых 1024-х сэмплов мы его полностью переписываем в отдельный массив(4096 слов) - накладываем функцию окна(уже на этот массив) и делаем FFT(прям на месте этого массива обычно и получим результат - так работает большинство алгоритмов).
И храним до получения еще 3-х подобных...
Цитата(Nukers @ Mar 7 2010, 23:00)

3) Делаем 4096 точечное БПФ.
над массивом...
...да...
Цитата(Nukers @ Mar 7 2010, 23:00)

4) Удаляем порцию из 1024 отсчетов №4.
ну они сами "затрутся"... на то буфер и кольцевой...
Цитата(Nukers @ Mar 7 2010, 23:00)

5) Принимаем новую порцию из 1024 отсчетов.
ну да... даже правильнее говорить "дождемся поступления еще 1024-х отсчетов"... Они могут как блочно приходить так и по-одному... зависит от ситуации "на местах"...

... Вообще за этим должна следить переменная а-ля семафор(unsigned int). Тем или иным способом в памяти появилось 1024 новых сэмпла(DMA, через процессор, другой процессор, как угодно...) - она меняет свое состояние заставляя систему работать. Пусть она считает по-блочно. Тогда это должно выглядеть как 3-2-1-0-3-2-1-0-... С каждым ее изменением мы производим перерасчет FFT, а с каждым "обнулением" происходит "дополнительное действие" - сложение 4-х предыдущих результатов FFT в одно...
Цитата(Nukers @ Mar 7 2010, 23:00)

6) Идем на шаг 3.
Нет... на шаг "1"...
Цитата(Nukers @ Mar 7 2010, 23:00)

(Выходит пока буфер "протолкнет" последний отсчет, принятый в самом начале пройдет 4 цикла БПФ - усвоил).
и так пока солнце не сгорит.... Верно?
Верно-то оно верно - но... так как нарисовано у меня

...
Цитата(Nukers @ Mar 7 2010, 23:00)

В MatLab можно с помощью утилиты Filter Design & Analysis Tool можно рассчитать функцию окна. Там же можно узнать АЧХ этой функции и кучу разных параметров, вообщем вы знаете. Если эту оконную функцию экспортировать в Simulink, то будет построен стандартный прямой КИХ фильтр (вот почему я упоминал слово фильтр).
Ммм...
Цитата(Nukers @ Mar 7 2010, 23:00)

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

Вы опять где-то что-то недочитали... Нет там никакого сдвига... Это не FIR алгоритм... Вот подумайте откуда берется прямоугольная функция окна по-умолчанию для FFT?... Да это же просто интервал рассмотрения - блок... Можно сказать, что все сэмплы на входе FFT умножены на "1"-цу. А вот при определенной оконной функции - не все на "1"-у

...
Цитата(Nukers @ Mar 7 2010, 23:00)

Не пытаюсь спорить с вами, просто хотелось бы знать: Реализованный КИХ фильтр на основе весовой функции в MatLab и весовая функция на основе кольцевых буферов дадут одинаковые результаты?
Каждый бин FFT по природе соей фильтр - поскольку это значение корреляции с синусоидой на определенном промежутке. По-умолчанию фйильтр этот с sinc(w)-подобной АЧХ. Наложив гладкую функцию окна на интервал рассмотрения Вы домножите АЧХ функции рассмотрения на АЧХ каждого бина в отдельности. Вот так они связаны. Не на прямую...

И они не то что результаты разные дадут - они вообще разные вещи в данном контексте...
Цитата(Nukers @ Mar 7 2010, 23:00)

Да, использовать буду RealFFT.
Это гут... Но их на сайте нет

...
Цитата(Nukers @ Mar 7 2010, 23:00)

P.S. Спасибо за переживания. Никто меня не эксплуатирует. Тема интересная, потому и взял. Времени мало, так что, скорее всего, прийдется ограничиться микропроцессорной системой, кусками кода и алгоритмом. Все же знают, что у студентов на бумаге все работает.

Так что после университета будем развивать тему дальше
