Микроконтроллер, который я должен реализовать, цифровой фильтр не поддерживает операции с плавающей запятой.Как мы можем кодировать в представлении с фиксированной точкой для входа с плавающей запятой?
Учитывая аналоговый входной сигнал (который может принимать значения от -1,65 В до 1,65 В), отобранные с заданной скоростью 100 Гц, я могу выполнять операции с фиксированной точкой. Поэтому я предполагаю, что мне сначала нужно преобразовать свой вход в фиксированную точку. Также указано, что выход АЦП квантован в десятичные значения без знака.
Моя проблема есть.
Я знаю, что существует формат Qm.n для фиксированных точек, который содержит бит знака. И ни одна из ссылок на сайте не включают в себя преобразование из подписанного ввода с плавающей точкой беззнаковой фиксированной точкой
И я нашел этот код:
int fixedValue = (int)Math.Round(floatValue*Scale);
double floatValue = (double)fixedValue/Scale;
Вопросов: 1. Как я могу выбрать свой коэффициент масштабирования? 2. Зависит ли он от диапазона моих входных значений и количества бит, используемых для представления с фиксированной точкой? 3. Формат Qm.n использует бит бит. Могут ли представления фиксированной точки быть неподписанными?
Это все сводится к выбору коэффициента масштабирования и отображение из подписанного ввода в беззнаковое 10 бит фиксированной точкой (который будет использоваться для дальнейших вычислений при решении разностных уравнений с последующим превращением его обратно в два раза на выходе)
Заранее спасибо.
Это неясно - где точка с плавающей запятой здесь? –
Я отредактирую свой вопрос sir – chaine09
@OliverCharlesworth, пожалуйста, ознакомьтесь с изменениями в моем вопросе выше – chaine09