Converting from floating point to fixed point.

How can i convert from floating point to two's complement? I need to convert a vector of filter coefficients from Filter Designer but I do not know how.

 채택된 답변

Walter Roberson
Walter Roberson 2022년 9월 27일

1 개 추천

The Fixed Point Toolbox fi() can be used to create a variety of fixed point formats.
If you need to match a particular hardware fixed point format for a dsp then we would need to know the details of the representation.

댓글 수: 1

format long g
BitsAfterDecimalPoint = 12;
Value = -0.0126842654631061924064283630286809057
Value =
-0.0126842654631062
encoded = int16(Value * 2^BitsAfterDecimalPoint)
encoded = int16
-52
decoded = double(encoded) / 2^BitsAfterDecimalPoint
decoded =
-0.0126953125
abs(Value - decoded)
ans =
1.10470368938076e-05
There is a limit to how much precision you can get with 16 bits...
BitsAfterDecimalPoint = 16;
encoded = int16(Value * 2^BitsAfterDecimalPoint)
encoded = int16
-831
decoded = double(encoded) / 2^BitsAfterDecimalPoint
decoded =
-0.0126800537109375
abs(Value - decoded)
ans =
4.21175216869241e-06

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

ON
ON 2022년 9월 27일

0 개 추천

I need to convert for example -0.0126842654631061924064283630286809057 into a 16 bit signed value.

제품

릴리스

R2022b

태그

질문:

ON
2022년 9월 27일

이동:

2022년 9월 27일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by