hur gör kvantisera i C-kod?

B

boeysue

Guest
Hur gör avrundning / emballage / ceilling..for godtyckliga format ... för tecknade nummer?
Om det finns några dokument för ekvationen för C-kod? Tack för det ..

 
Det verkar ingen fast punkt fungerar det?? Eller där är funktionen?

 
Kanske detta hjälper

# define adbits
double 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

 
Använd skalning? Men om inte använda scaling? Hur man gör med avrundning / omslag?Till efter 3 minuter:Min demond är hur man gör en kod för att matcha kvantisera i Matlab.??
Eftersom det finns linda / och ....... / roundmode / i Matlab ...

 
Jag antar att vad du gör är att använda och / eller aktörer på deras hexadecimala motsvarigheter.
Se här för IEEE-standarden, och här för några exempel på floating-point konstanter. Det kan också vara till hjälp.
C har manipulatorer för fast-point representation, men jag har icke sett något för C.

 
Egentligen vill jag bara veta den allmänna ekvationen för Quantizer?
ex:
Fix_a = a * power (2, wordlen 1);
Fix_a = 1;
Fix_a>> = 1;

somthing like that ... Om det finns några helt enkelt dokument att förklara det för godtyckliga Q.format? såsom [15 16], [15 14], [15 13 ],......

tack för det.

 
Jag integer / float / avrundning saker i C hela tiden, men något jag inte förstå din fråga.Är du ny i C-programmering (och behöver hjälp med typ omvandlingar), eller är du ute efter lite mer avancerad funktion?Kan ni ge oss ett konkret exempel på vad du vill göra?

 
Kvantisering är processen avrundning, men i lite nivå.Så jag gissa threadstarted vill är att konvertera flyttal till fasta punkt.Det används ofta för att genomföra gången sedan flyttalsoperationer är dyra.

Här är något att börja tänka dig.
1.Avrundning är trunkering efter LSB.
2.Avrundning är att tillsätta 1 / 2 LSB, följt av trunkering efter LSB.
3.Avrundning är tillägget av LSB, följt av trunkering efter LSB.

Så den stora frågan är trunkering av LSB, vilket som sagt, bör göras i hexadecimalt format med AND aktörer för maximal effektivitet.Självklart, om effektivitet är inte en fråga, kan du enkelt göra multiplikation, så gör ett heltal trunkering och låt den rätte antalet decimaler.Observera att flytta operatörerna inte fungerar med flöten på grund av IEEE flyta representation.

Här är några fasta punkter aritmetik makron som kan hjälpa.

 
mmm ..... Min fråga är följande:
1.Vad är skillnaden mellan tak / golv / runt med hjälp av trunkering?
2.How att skriva "wrap overflowmode"??

Webben är intressant, men det finns ingen sådan mer information jag vill ha ....

 
1.Lite info från 1999 C standard:

Den ceil funktioner beräkna minsta heltal inte mindre än x.

# include <math.h>
double ceil (double x);
float ceilf (float x);
long double ceill (long double x);Golvet funktioner beräkna det största heltal som inte är större än x.

# include <math.h>
double floor (double x);
float floorf (float x);
long double floorl (long double x);Den runda funktioner kring deras argument till närmaste heltal i floating-point format, avrundning halvvägs fall bort från noll, oavsett den nuvarande avrundning riktning.

# include <math.h>
double round (double x);
float roundf (float x);
long double roundl (long double x);2.Wrap overflow?Vanligtvis det är ett irriterande problem som uppstår när du kör ut bitar.Har du vill att det ska inträffa, eller vill du förhindra att det inträffar?

 
Citat:

Wrap overflow?
Vanligtvis det är ett irriterande problem som uppstår när du kör ut bitar.
Har du vill att det ska inträffa, eller vill du förhindra att det inträffar?
 

Welcome to EDABoard.com

Sponsor

Back
Top