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

 
 
> Целочисленные алгоритмы ЦОС, надо сформулировать правила
Zelepuk
сообщение Mar 6 2011, 07:22
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Существует рабочий алгоритм(несколько фильтров и БПФ). Код работает на плавучке на обычном десктопе.
Стоит задача портировать алгоритм на процессор с фиксированой точкой.
Отсчёты, над которыми производятся преобразования, поступают в формате 1.15.
Понимаю что тупое преобразование float в int ни к чему хорошему не приведёт.
Тогда стоит вопрос: какие требования к оперрациям нужно предъявить?

Коэффиценты фильтров и БПФ должны быть тоже в 1.15?
Как производить умножение, деление, суммирование и вычитание, чтобы избегать переполнений?

(лучше если примеры коротенькие на С будут)

Используется 32-битный процессор на ARM9E ядре

Заранее спасибо.



Сообщение отредактировал Zelepuk - Mar 6 2011, 07:48
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Zelepuk
сообщение Mar 7 2011, 06:30
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Познавательное видео.

Но хотелось бы писать всё самуму руками. А тут получается вставил блок, нажал кнопочку и всё....
Причём код получается не очень читаемый...

Интересуют принципы.

Иными словами нужно перевести все float в программе в int (в крайнем случае long).
Какие могут быть общие рекомендации для таких задач? Как обезопасить код от переполнений при переходе на "фиксированую точку"?

Данные, над которыми осущесвляются операции поступают в дополнительном коде формата 1.15. Значит ли это что коэффиценты всех преобразований должны быть в таком же формате?

Микроконтроллер 32 битный.
Go to the top of the page
 
+Quote Post
diwil
сообщение Mar 7 2011, 11:58
Сообщение #3


Местный
***

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



Цитата(Zelepuk @ Mar 7 2011, 09:30) *
Иными словами нужно перевести все float в программе в int (в крайнем случае long).
Какие могут быть общие рекомендации для таких задач? Как обезопасить код от переполнений при переходе на "фиксированую точку"?

Данные, над которыми осущесвляются операции поступают в дополнительном коде формата 1.15. Значит ли это что коэффиценты всех преобразований должны быть в таком же формате?

Микроконтроллер 32 битный.


1. float->int:
q_1_15 = (int)(flt * 32767);
код не обезопасить - или насыщение делать, или увеличивать разрядность.

2. и да и нет. Зависит от реализации умножения и формата всего остального.

я где-то постил здесь реализацию БПФ. кстати, написанную специально оптимально для АРМа (на Це. ассемблерная - за пиво sm.gif) и, кстати, данные с коэффициентами в формате 1.15 sm.gif Все целочисленное. Поиск должен помочь.
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Mar 7 2011, 21:12
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Цитата(diwil @ Mar 7 2011, 14:58) *
1. float->int:
q_1_15 = (int)(flt * 32767);
код не обезопасить - или насыщение делать, или увеличивать разрядность.

2. и да и нет. Зависит от реализации умножения и формата всего остального.

я где-то постил здесь реализацию БПФ. кстати, написанную специально оптимально для АРМа (на Це. ассемблерная - за пиво sm.gif) и, кстати, данные с коэффициентами в формате 1.15 sm.gif Все целочисленное. Поиск должен помочь.


Никак не могу найти вашу реализацию. Может дадите ссылку... интересует именно реализация на Си. Посмотреть принципы хочу... rolleyes.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Zelepuk   Целочисленные алгоритмы ЦОС   Mar 6 2011, 07:22
- - _Anatoliy   Цитата(Zelepuk @ Mar 6 2011, 09:22) Это...   Mar 6 2011, 08:35
|- - alexPec   Цитата(Zelepuk @ Mar 7 2011, 09:30) Позна...   Mar 7 2011, 10:07
||- - Zelepuk   Цитата(alexPec @ Mar 7 2011, 13:07) Переп...   Mar 7 2011, 13:38
||- - alexPec   Цитата(Zelepuk @ Mar 7 2011, 16:38) когда...   Mar 7 2011, 14:47
|- - diwil   Цитата(Zelepuk @ Mar 8 2011, 00:12) Никак...   Mar 9 2011, 08:05
- - PetrovichKR   ЦитатаХлчется вкуритсь "трюки" на С чтоб...   Mar 8 2011, 04:31
- - Ruslan1   еще может интересно будет, насчет целочисленной ре...   Mar 18 2011, 16:48
|- - Zelepuk   Цитата(Ruslan1 @ Mar 18 2011, 19:48) еще ...   Mar 18 2011, 17:36
|- - MSP430F   Цитата(Ruslan1 @ Mar 18 2011, 20:48) еще ...   Aug 22 2013, 14:14
|- - Zelepuk   Цитата(MSP430F @ Aug 22 2013, 18:14) Скаж...   Aug 23 2013, 07:55
|- - MSP430F   Цитата(Zelepuk @ Aug 23 2013, 11:55) коне...   Aug 23 2013, 08:52
|- - Zelepuk   Цитата(MSP430F @ Aug 23 2013, 12:52) Вопр...   Aug 23 2013, 09:02
|- - MSP430F   Цитата(Zelepuk @ Aug 23 2013, 13:02) поче...   Aug 23 2013, 09:16
|- - Maverick   Цитата(MSP430F @ Aug 23 2013, 12:16) по...   Aug 23 2013, 09:35
|- - Corner   Цитата(MSP430F @ Aug 23 2013, 13:16) Вот ...   Aug 23 2013, 18:04
||- - MSP430F   Цитата(Corner @ Aug 23 2013, 22:04) С уче...   Aug 26 2013, 12:44
||- - Corner   Цитата(MSP430F @ Aug 26 2013, 16:44) Как ...   Aug 29 2013, 15:02
|- - alex_os   Цитата(MSP430F @ Aug 23 2013, 13:16) Вот ...   Sep 18 2013, 19:26
|- - Corner   Цитата(alex_os @ Sep 18 2013, 23:26) можн...   Sep 19 2013, 15:02
|- - DASM   Цитата(alex_os @ Sep 18 2013, 23:26) Ужас...   Sep 19 2013, 15:21
|- - Corner   Цитата(DASM @ Sep 19 2013, 19:21) UMULL 3...   Sep 19 2013, 15:28
- - Corner   На ПЛИС БПФ 8192 точки 18 бит знаковое сносно дает...   Aug 22 2013, 14:35
- - Zelepuk   Вообще проще взять и проверить. Код есть. За полча...   Aug 23 2013, 09:17
- - DASM   Странно, дока говорит иное.Вы уверены, что это не ...   Sep 19 2013, 15:34
|- - Corner   Цитата(DASM @ Sep 19 2013, 19:34) Странно...   Sep 19 2013, 15:36
|- - AndrewN   QUOTE (Corner @ Sep 19 2013, 18:36) Тольк...   Sep 19 2013, 17:41
|- - Corner   Цитата(AndrewN @ Sep 19 2013, 21:41) Для ...   Sep 24 2013, 16:30
|- - AndrewN   QUOTE (Corner @ Sep 24 2013, 19:30) 16+16...   Sep 24 2013, 20:57
|- - Corner   Цитата(AndrewN @ Sep 25 2013, 00:57) А та...   Sep 29 2013, 09:15
- - DASM   Посмотрю завтра, с телефона неудобно. И что, в экс...   Sep 19 2013, 15:44


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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 09:08
Рейтинг@Mail.ru


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