реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Два вещественных сигнала за один проход БПФ, в чём выгода?
TigerSHARC
сообщение Jan 16 2010, 21:40
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



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

Сообщение отредактировал TigerSHARC - Jan 16 2010, 21:40
Go to the top of the page
 
+Quote Post
SPACUM
сообщение Jan 17 2010, 11:44
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531



Цитата(TigerSHARC @ Jan 17 2010, 00:40) *
Как известно, за один проход БПФ можно преобразовать два вещественных сигнала. В чём получается выигрышь при таком подходе и насколко увеличивается кол-во операций умножения?

Для этого могут быть использованы алгоритмы Кули-Тьюки или Винограда(если число отсчетов не является степенью двойки).
Методы используются в обычном виде, сдедовательно число умножений сохраняется.
Выигрыш во времени получается в случае если у Вас, например, двухканальная система и вычмсления можно проводить параллельно.
В о многих современных микроконтроллерах операция умножения производится весьма быстро. Поэтому алгоритм Винограда с
малым количеством умножений и увеличенным количеством сложений-вычитаний выполняется медленнее алгоритма Кули-Тьюки.
PS: Если Вы предполагаете быть опытным специалистом по ЦОС, у Вас должны быть подготовлены все три широко используемых алгоритма: Кули-Тьюки, Винограда и Реальный. И Вы как опытный кулинар, попробовав, выбираете нужное из этих трех маленьких програмок. Ведь результаты практически совпадают с точностью до нескольких младших бит.
Например Вы получили результат Кули-Тьюки - 15мс(для 1024 сэмплов), Реал-12.5мс(для 1024 сэмплов), Виноград-22мс (для 1000 сэмплов). Легко выбрать для одноканального прибора - Реальный, для двухканального - Кули-Тьюки, а если требуется в днсятичных единицах и частота и время - Виноград.


--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
Go to the top of the page
 
+Quote Post
diwil
сообщение Jan 18 2010, 09:03
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 366
Регистрация: 5-09-06
Из: Санкт-Петербург
Пользователь №: 20 107



Цитата(TigerSHARC @ Jan 17 2010, 00:40) *
Как известно, за один проход БПФ можно преобразовать два вещественных сигнала. В чём получается выигрышь при таком подходе и насколко увеличивается кол-во операций умножения?


перед ффт - вещественной части присваиваем один сигнал, мнимой - другой. Умножений нет.
после ффт - разбор результата на 2:
- Вещественная часть результата для выделения требует 2 умножения и одно сложение,
- Мнимая - 4 умножения и 3 сложения.
Разбор делается за 1 проход.
Еще немножко можно скроить (в некотороых, частных, случаях), если знать характеры сигналов ...
Go to the top of the page
 
+Quote Post
thermit
сообщение Jan 18 2010, 09:23
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Код
M=1024;

x=randn(1,M);
y=randn(1,M);

in = complex(x,y);
S = fft(in);


Xr = [real(S(1)) 0.5.*(real(S(2:M/2)) + real(S(M:-1:M/2+2))) real(S(M/2+1))];
Xi = [0 0.5.*(imag(S(2:M/2)) - imag(S(M:-1:M/2+2))) 0];

Yr =  [imag(S(1)) 0.5.*(imag(S(2:M/2)) + imag(S(M:-1:M/2+2))) imag(S(M/2+1))];
Yi = [0 -0.5.*(real(S(2:M/2)) - real(S(M:-1:M/2+2))) 0];
X = complex(Xr,Xi);
X=[X conj(X(M/2:-1:2))];
Y = complex(Yr,Yi);
Y=[Y conj(Y(M/2:-1:2))];


Дополнительно требуется 2*M-4 вещественных сложений и умножений на степень двойки.

Сообщение отредактировал thermit - Jan 18 2010, 09:24
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th June 2025 - 18:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01401 секунд с 7
ELECTRONIX ©2004-2016