Hallo, ich habe ein Problem: Es geht hier um die diskrete Wavelettransformation, die ich auf einem DSP implementieren will. Mein DSP unterstuetzt keine Floating-Point-Arithmetik. Deshalb muss ich die Koeffizienten der verwendeten Filter in 32-bit/16-bit Fixed-Point umwandeln. Die Koeffizienten werden entweder um 15 Stellen (1 sign-bit) oder 31 Stellen nach links verschoben. Eigentlich ist 15-bit Verschiebung ok, weil die Koffiezienten konstant sind. Hat jmd ein Gegenargument? Das erfasste Signal ist in 12-bit-Format. Damit die Abweichung minimal ist, wird das Signal um 19 Stellen (12+19=31-bit + 1 sign-bit) nach links verschoben. Die Koeffizienten (der Impulsantwort des Filters) werden mit dem Signal gefaltet. D.h. wir haben eine 16x32 Multiplikation, das Ergebnis ist 48-bit. Beide werden erst in long long (8 Byte) gecastet, damit kein Overflow entsteht. Das Ergebnis wird in einer long long Variable gespeichert. Nach der Operation wird das Ergebnis um 15 Stellen nach rechts verschoben. Das Ergebnis passt wieder in den Integerbereich. Das Signal wird in 8 Subbaendern zerlegt. Das Problem ist dabei die Errorbackpropagation. In den unteren Subbaendern ist die Abweichung viel groesser. Hat jemand einen Vorschlag, wie man die Abweichung minimieren kann.
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.