Change the output data type

9 次查看(过去 30 天)
Ho
Ho 2023-8-8
回答: Sahas 2024-12-18,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 个评论
Kiran Kintali
Kiran Kintali 2023-8-8
Please consider using fixed point designer to analyze ranges and use better fixed point types in the blocks.
Kiran Kintali
Kiran Kintali 2023-8-9
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.

请先登录,再进行评论。

回答(1 个)

Sahas
Sahas 2024-12-18,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!

类别

Help CenterFile Exchange 中查找有关 HDL Code Generation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by