Hallo zusammen, habe folgendes Problem. Der DSP den ich einsetze hat folgendes Zahlenformat 1 Bit Vorzeichen 8 Bit Exponent 23 Bit Fraction Wie kann ich einen freieinstellbaren Fiilter in Matlab simulieren. Bzw. wie kann ich die Berechnungsgenauigkeit in Matlab einstellen. Meines wissens rechnet Matlab mit double Genauigkeit. Weiß jemand einen Trick oder wie man das umstellen kann. Finde einfach nix. Danke AnRa
Du kannst in Matlab mit dem single Befehl solche Zahlen erzeugen und dann den Filter programmieren. Achtung: In sehr seltenen Fällen werden andere Rundungsregeln verwendet. Am Einfachsten siehst du dir die Matlabhilfe zu single an. Kleines Beispiel vorab: format long single(pi) double(pi)
Danke hab dein Beispiel ausporbiert Bei single zeigt er dann eine 8 Stellige Zahl an. Ich hoffe er rechnet dann auch mit der weiter. Es entsteht trotzdem folgendes Problem: 23 Bit entsprecht der zahl 8388608 Das sind nur 7 Stellen. Noch eine Idee?
Single hilft dir nicht weiter. Entweder verwendest du die Fixed-Point Toolbox, oder du schreibst dir selber Funktionen zur Simulation der auftretenden Rundungsfehler.
Wieso Fixed Point. Der DSP ist ein floating point und die toolbox habe ich leider nicht.
Andre R. schrieb:
> und die toolbox habe ich leider nicht.
Dann nimm halt GNU Octave?
das hab ich auch mal ausprobiert. Bin aber auf Grund der fehlenden Oberfläche irgendwie nicht zurecht gekommen. Die frage ist nur, wofür brauche ich die fixed point toolbox wenn ich einen floting point dsp habe?
Ähm, 'single precision' (32 bit im Sinne von IEEE 754) hat zwischen 7 und 8 Stellen. Du hast auch noch das "versteckte" Bit bei einer normalisierten Zahl. Also implizit i.d.R. 24bit in der Mantisse. Darstellung +/- (1+x)^e x 23 bit e 8 bit Vorzeichen 1 bit Mantisse =fraction Es gibt noch eine Ausnahme bei "gradual underflow".
Ups, sorry, habe die 8 Bit Exponent einfach überlesen. Dann gilt was fred maier geschrieben hat. Für die Verwendung von single in MATLAB gibt's hier ein paar Beispiele: http://www.mathworks.de/products/matlab/demos.html?file=/products/demos/shipping/matlab/singleMath.html
Wenn wir schon mal dabei sind, wie schaut denn die ganze Sache in Fixpoint aus, sprich die Konvertierung der berechneten Filterkoeffizienten in ein Format a la Q1.15 oder Q2.14 ? Danke, Dennis
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.