- Comparing different Fixed-Point Data Types using Fixed-Point tool
- Visualizing signals to explore data types using Fixed-Point Tool
Wrong conversion from double to fixed point
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I'm trying to convert a project developed in double data type into a fixed point data type project, but I'm loosing to much precision.
Using the double data type my output speed is expressed in RPM, but using fixed point data type I need to have it as fixdt(1,16,15) using an input value (delta_angle) coming from the outside ad fixdt(1,16,12).
Please see the attached models.
Do you have any suggestion to convert properly the data?
Thanks in advance for the help.
0 commentaires
Réponses (2)
MathWorks Fixed Point Team
le 13 Jan 2020
Hello, you can try to use any of the Fixed-Point designer workflows to achieve this task.
Please find attached a script that uses the fixed-point optimziation feature to help with the conversion. With this workflow you only need to set the allowable level of error in your system requirements using the "addTolerance" API. With this information, fxpopt will try to convert your system automatically. Please notice that the attached model is the one I got running on my local PC (on a 19b version of MATLAB).
Alternativelly you can use the fixed-point tool to go though the steps of conversion manually.
You can find some introductory videos and exmaples on these links.
Using Fixed-Point Tool:
Fixed-Point Optimization:
0 commentaires
Xu Liu
le 10 Juil 2019
When you convert data of longer words to data types of smaller words, the loss of precision is inevitable.
If your processor has a 32-bit floating point kernel (as some processors currently do), it is recommended that you use single instead of double
0 commentaires
Voir également
Catégories
En savoir plus sur Data Type Optimization in Simulink dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!