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

 
 
> "Все точки над фиксированной.точкой"
Artunique
сообщение Jul 22 2015, 12:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820




Всем привет. Решил добиться полного понимания Fixed Point арифметики. Для меня, да и для многих это очень актуально, я уверен. Больше всего, с этой арифметикой намудрено в матлабе. Например отрицательное значение fractional bitwidth и тп. И все говорят, что значение fractional очень важно указать верным, но никто не говорит как. Для конкретики и понимания возьмем обычный fir фильтр в матлабе. В его параметрах можно указать разрядность на входе + fractional часть и разрядность на выходе + fractional часть. То же самое можно указать для коэффициентов фильтра. Я точно знаю, сколько бит у меня на входе, знаю разрядность коэффициентов, знаю разрядность на выходе. Но ОТКУДА брать значение этой fractional части? И почему на выходе CIC фильтра матлаб мне выдает отрицательное значение этой fractional части? help.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Грендайзер
сообщение Aug 24 2015, 11:44
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Здравствуйте. Надеюсь, что не помешаю если влезу. Разбираюсь с контроллером ATSAM4SD32C на базе ядра cortex m4. Ядро имеет набор так называемых DSP инструкций, мощь которых (как заявляет ARM) реализована набором ф-ций находящихся в библиотеке CMSIS-DSP. Так среди них есть несколько ф-ций для генерации синуса (для работы с фиксированной и плавающей запятой). Т.к. мой контроллер не имеет на борту FPU, то я выбрал ф-цию работающую с фиксированной запятой. Вот её описание -> http://www.keil.com/pack/doc/CMSIS/DSP/html/group__sin.html. В нём написано, что в качестве аргумента функция принимает значение угла выраженное в радианах. Т.е. допустим я захочу найти синус 180 градусов (да, знаю что он равен 0) т.е. в радианах это запишется так x = sin(3.14159265358979). Но как я понял, тип q31_t может принимать значения [-1; 1 - 2^-(n-1)] или примерно [-1;1]. Если же я засуну в эту ф-цию константу PI, то процессор начнёт обрабатывать плавающую запятую. т.к. #define PI 3.14159265358979f. Что делать то?
Go to the top of the page
 
+Quote Post



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

 


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


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