Change the output data type

9 views (last 30 days)
Ho
Ho on 8 Aug 2023
Answered: Sahas on 18 Dec 2024 at 6:28
I have a simulink model as follows
As you can see the data output is in the form fixed fixdt(1,14,12). Can anyone help me convert the output to fixdt(1,14,13)? what block do i have to use to do that? This is my model
  2 Comments
Kiran Kintali
Kiran Kintali on 8 Aug 2023
Please consider using fixed point designer to analyze ranges and use better fixed point types in the blocks.
Kiran Kintali
Kiran Kintali on 9 Aug 2023
Found few incorrect constant types. For example you had a constant block where '1' cannot be represented with the output type set on the block.
>> a = fi(0, 0,14,14)
a =
0
DataTypeMode: Fixed-point: binary point scaling
Signedness: Unsigned
WordLength: 14
FractionLength: 14
>> a.range
ans =
0 0.999938964843750
DataTypeMode: Fixed-point: binary point scaling
Signedness: Unsigned
WordLength: 14
FractionLength: 14
>>
Attached model with the necessary changes.

Sign in to comment.

Answers (1)

Sahas
Sahas on 18 Dec 2024 at 6:28
Hi @Ho,
MathWork's "fixdt" function creates a "Simulink.NumericType" object describing a fixed-point or floating-point data type. You can utilize this function, in a "Data-type Converter" block and get the desired output data type. Follow the steps below and get the desired output data type:
  • Double click the DTC block to open it's Block Parameters.
  • In the Output Data Type field choose "<data type expression>".
  • Enter the required output data type following the "fixdt" function conventions.
  • Assuming that the Value is in the valid range, you will get the desired output data type as shown in the image below:
For more information on "fixdt" function and "DTC" block, refer to the following MathWorks documentation links:
Hope this is beneficial!

Community Treasure Hunt

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

Start Hunting!