Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Усреднение БПФ
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
ivan219
В одной программе можно като усреднить БПФ и зделать из этого:

Вот это:


Как реализовать такоеже???
TSerg
Цитата(ivan219 @ Nov 23 2008, 20:21) *
В одной программе можно като усреднить БПФ и зделать из этого:
..
Как реализовать такоеже???


Если уже есть посчитанные отсчеты БПФ, то можно скользящим усреднением.
ivan219
Это как???
Fat Robot
Посмотрите, как это сделано в спектроанализаторах. Agilent, Advantech и т.п. В руководствах по эксплуатации режим Averaging. Идейно - в предположении постоянства СПМ вычисляется среднее арифметическое для каждого значения частоты.

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

Успехов.
ivan219
Я пробовал брать число выборок в 4 раза больше чем БПФ потом в цикле делал сложение этих 4 БПФ и делил на 4 но в итоге практически ничего не изменилось sad.gif
Код
FFT(Ar1, 1024);
FFT(Ar2, 1024);
FFT(Ar3, 1024);
FFT(Ar4, 1024);

for I := 0 to 1023 do
begin
  PAr1[I] := Sqrt(Sqr(Ar1[I * 2]) + Sqr(Ar1[I * 2 + 1]));
  PAr2[I] := Sqrt(Sqr(Ar2[I * 2]) + Sqr(Ar2[I * 2 + 1]));
  PAr3[I] := Sqrt(Sqr(Ar3[I * 2]) + Sqr(Ar3[I * 2 + 1]));
  PAr4[I] := Sqrt(Sqr(Ar4[I * 2]) + Sqr(Ar4[I * 2 + 1]));
end;

for I := 0 to 1023 do
PAr1[I] := (PAr1[I] + PAr2[I] + PAr3[I] + PAr4[I]) / 4;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.