hvordan du gør quantize i C-kode?

B

boeysue

Guest
Sådan gør du afrunding / indpakning / ceilling..for vilkårlig format ... for undertegnet nummer?
Hvis der er et dokument til ligning for C-kode? Tak for at ..

 
Der er tilsyneladende ingen faste punkt funktion der??, Eller hvor er den funktion?

 
Måske dette vil hjælpe

# define adbits
dobbelt input [1023]
max_x = max (input)
min_x = min (x)
for i = 1:1023
Y (I) = (x (i)-min_x) / (max_x - min_x) * 2 ^ adbts

 
Brug skalering? Men hvis ikke anvende skalering? Hvordan man gør med afrunding / indpakning?Tilføjet efter 3 minutter:Min demond er hvordan man laver en kode til at matche quantize i Matlab.??
Fordi der er wrap / og ....... / roundmode / i Matlab ...

 
Jeg gætter hvad du gør, er at bruge og / eller operatører på deres hexadecimale ækvivalenter.
Se her for IEEE-standard, og her for nogle eksempler på, floating-point konstanter. Dette kan også være til nogen hjælp.
C har manipulatorer til fast-point repræsentation, men jeg har ikke set nogen af C.

 
Faktisk spiller jeg bare gerne vide det generelle udtryk for quantizer?
ex:
Fix_a = a * power (2, wordlen 1);
Fix_a = 1;
Fix_a>> = 1;

somthing gerne, at ... Hvis der er nogen enkelt dokument for at forklare det for vilkårlige Q.format? såsom [15 16], [15 14], [15 13 ],......

tak for det.

 
Jeg heltal / float / afrunding ting i C hele tiden, men en eller anden måde er jeg ikke forstå dit spørgsmål.Er du ny til C-programmering (og har brug for hjælp med type konverteringer), eller er du på udkig efter nogle mere avancerede funktion?Kan du give os et konkret eksempel på, hvad du ønsker at gøre?

 
Quantization er den proces, afrunding, men i den smule niveau.Så jeg gætte, hvad threadstarted ønsker, er at konvertere decimaltal til fast punkt.Det er ofte bruges til at udføre gang siden floating point operationer er dyre.

Her er noget at begynde at tænke dig.
1.Afrundingen er trunkering efter LSB.
2.Afrunding er desuden på 1 / 2 LSB, efterfulgt af trunkering efter LSB.
3.Oprunding er tilsætning af LSB, efterfulgt af trunkering efter LSB.

Så det vigtigste spørgsmål er trunkering af LSB, der ligesom jeg sagde, bør ske i hexadecimalt format bruger og operatører for maksimal effektivitet.Selvfølgelig, hvis effektivitet ikke er et spørgsmål, kan du blot gøre formering, så gør et heltal trunkering og holde styr på det rette antal decimaler.Bemærk, at skift erhvervsdrivende ikke arbejder med flåd på grund af IEEE flyde repræsentation.

Her er nogle faste punkt aritmetiske makroer, der kan hjælpe.

 
mmm ..... Mit spørgsmål er følgende:
1. Hvad er forskellen mellem ceil / gulv / rundt ved hjælp af trunkering?
2.How at skrive "wrap overflowmode"??

Internettet er interessant, men der er ingen yderligere oplysninger, jeg vil ....

 
1.Nogle info fra 1999-C standard:

Den ceil funktioner beregne den mindste heltalsværdi ikke mindre end x.

# include <math.h>
dobbelt ceil (double x);
float ceilf (float x);
long double ceill (long double x);Gulvet funktioner beregne den største heltalsværdi ikke er større end x.

# include <math.h>
dobbelt gulv (double x);
float floorf (float x);
long double floorl (long double x);Den runde funktioner runde deres argument til nærmeste heltal værdien i floating-point format, afrunding halvvejs sager væk fra nul, uanset den aktuelle afrunding retning.

# include <math.h>
dobbelt runde (double x);
float roundf (float x);
long double roundl (long double x);2.Wrap overflow?Normalt det er et irriterende problem, der opstår, når du løber tør for bits.Vil du det med at opstå, eller ønsker du at forhindre det i at opstå?

 
Citat:

Wrap overflow?
Normalt det er et irriterende problem, der opstår, når du løber tør for bits.
Vil du det med at opstå, eller ønsker du at forhindre det i at opstå?
 

Welcome to EDABoard.com

Sponsor

Back
Top