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
Gast
#1325130
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?
Gast
#1325189
Ä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".
hui Danke
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
Gast
#1325669
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
Siehe meine erste Antwort.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.