Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Вопрос по FFT сделал я на делфи FFT , теперь хочу перенести это на МК

Отправлено smartleds 21 февраля 2008 г. 15:20


В делфи у меня вычисляются значения COS и SIN и все переменные описаны как real. Для МК это долгие вычисления я их заменил на таблицу значений косинуса и синуса при разных аргументах
Поскольку MK долго работает с real все переменные умножил на 2^15 =32767 , И значения COS и SIN у меня лежат теперь в пределах от 0 до 32767. И чтоб cos и sin не вычислять каждй раз сделал таблицу для разных аргументов.
Типа такой
const W:array[0..N-1] of integer =
(-32767,0,0,32767,23170,23170,30273,12539....);
первый элемент cos(pi), второй sin(pi) , дальше cos(pi/2), sin(pi/2) и т.д.
И в программе заменил вычисления cos и sin на значения из этой таблицы
вот так
было:
u_re:=1;
u_im:=0;
tm:=pi / halfstep;
w_re:=cos(tm);
w_im:=sin(tm);
стало:
u_re:=1;
u_im:=0; мнимая часть равна "0"
w_re:=W[indexW];
w_im:=W[indexW+1];
indexW:=indexW+2;
Потом я перемножаю комплексные числа U и W и сохраняю результат в U и это все в цикле.
ac:=w_re*u_re;
bd:=w_im*u_im;
iad:=w_re*u_im;
ibc:=w_im*u_re;
результат
u_re:=ac-bd;
u_im:=iad+ibc; //здесь уже мнимая часть равна ">0"

При вычислении комплексных чисел у меня sinусы и сosинусы перемножаются т.е 2^15 * 2^15 =2^30 на следующем этаме уже 2^30*2^30 получаются громадные числа.
Вот я не пойму как с ними быть, или во время перемножения их делить на 32767, тогда опять real получается.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
умножьте 3 на единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru