Alexander_92 0 2 августа, 2015 Опубликовано 2 августа, 2015 · Жалоба Здравствуйте, подскажите, пожалуйста. Что означает запись ниже ? Там адреса записаны или как это понять, какие значения имеют эти коэффициенты ? Спасибо /* Данные */ .section/data data1; .var sin_coeff[5] = /* Коэффициенты аппроксимирующего полинома */ 0x3240, 0x0053, 0xAACC, 0x08B7, 0x1CCE; Вот в нижней строчке ? Адреса, по которым находятся значения ? Та же музыка и с КИХ-фильтром, когда загружаешь файл с коэффициентами фильтра, то непонятно, список адресов или формат такой. Подскажите, плиз ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artem_Petrik 0 2 августа, 2015 Опубликовано 2 августа, 2015 · Жалоба вероятнее всего это формат с фиксированной точкой 1.15. Т.е. дробное значение умноженное на 32768. значения 0,392578125 0,002532958984375 -0,6656494140625 0,068084716796875 0,22503662109375 похожи на правду? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexander_92 0 2 августа, 2015 Опубликовано 2 августа, 2015 · Жалоба вероятнее всего это формат с фиксированной точкой 1.15. Т.е. дробное значение умноженное на 32768. значения 0,392578125 0,002532958984375 -0,6656494140625 0,068084716796875 0,22503662109375 похожи на правду? А почему именно 32768 ? Кстати, как вы получили отрицательный коэффициент ?) Вы взяли число в шестнадцатиричной системе и перевели его в десятичную, затем разделили на 32768 ? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artem_Petrik 0 2 августа, 2015 Опубликовано 2 августа, 2015 · Жалоба А почему именно 32768 ? Кстати, как вы получили отрицательный коэффициент ?) Старший бит - знаковый, необязательно конечно, но зачастую так. На собственно значение остается 15 бит. потому и 32768 - 2 в 15-ой степени. Это все исходя из предположения, что коэффициенты могут быть в диапазоне от -1 до 1. В других случаях могут быть другие форматы чисел с фиксированной точкой. Вы взяли число в шестнадцатиричной системе и перевели его в десятичную, затем разделили на 32768 ? Спасибо. именно так. Для значений больших чем 32768 (0x8000) нужно еще вычесть 65536 (0x10000). 0xAACC это -21812 P.S. Объяснение fixed point чисел без страшных математических значков есть на хабре: http://habrahabr.ru/post/131171/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 8 2 августа, 2015 Опубликовано 2 августа, 2015 · Жалоба Последняя строчка кода в первом посте - значения коэффициентов, а не адреса. Адреса назначает линкер, в явном виде они указываются чрезвычайно редко. Формат коэффициентов может быть как знаковым с фиксированной точкой 1.15, так и беззнаковым или знаковым целым: со всеми этими форматами работает семейство ADSP21XX. Конкретный вариант формата по приведенным строчкам не понять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shf_05 0 4 августа, 2015 Опубликовано 4 августа, 2015 · Жалоба книга по теме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться