How do I visualize the fixed-point data in binary or hex format using Simulink?

T
technicalsource9 · Jul 6, 2020 · 2.5K views
Question
I would like to visualize the fixed-point data in binary or hex format using Simulink.
Expert Answer
Profile picture of Kshitij Singh
Kshitij Singh PhD Expert
Answered Aug 20, 2026
The ability to visualize fixed-point data in binary or hex format is not available in Simulink.
As a workaround, once you have the value in the MATLAB workspace, you can easily display non-negative values in hex or binary using the following MATLAB commands:
 
dec2hex( value, numberOfHexCharsToDisplay )

dec2bin( value, numberOfBitsToDisplay )

However, these functions do not directly handle negative numbers. The following are two functions that will do the work of converting negative numbers to their N bit two's complement representation. 1st Function: OUTSTRING:

function outString = sdec2bin(decimalValue, numberOfBits );
branchPt = 2^numberOfBits;

ii = find( decimalValue < 0 );

decimalValue(ii) = decimalValue(ii) + branchPt;

outString = dec2bin( decimalValue, numberOfBits );

2nd Function: OUTSTRING:

function outString = sdec2hex( decimalValue, numberOfBits );
%
% Caution unlike dec2hex the second input argument is 
% number of Bits not number of hex "digits"
%
branchPt = 2^numberOfBits;

ii = find( decimalValue < 0 );

decimalValue(ii) = decimalValue(ii) + branchPt;

hexCharsToDisplay = ceil( numberOfBits / 4 );

outString = dec2hex( decimalValue, hexCharsToDisplay );

For example, if a fixed-point signal has 4 bits to the right of the binary point, then the scaling equation is:

 V = 2^-4 * Q

where V = Real World Value and Q = Stored Integer Value.
For example, if
Q = 29
then
V = 1.8125
It would almost certainly be a mistake to do the following:
 
dec2bin(V,16)
 ans = 0000000000000001

which is just the value 1 and has thrown away the 0.8125. This is not the integer that would actually live in the computer's memory. The integer that really lives in the computers memory would be given by:

dec2bin(Q,16)
 ans = 0000000000011101

There are two ways two get the stored integer value. One is to reverse the scaling equation, for example:

 Q = V / 2^-4,/pre>

The other way is to drop in the Scaling Strip block from the Data Type library of the Fixed-Point Blockset just before the To Workspace block.

100% Run Guarantee 3-Hour Fast-Track Delivery

Need a Custom Version or Complete Simulation for This Problem?

Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.

Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!