Datum: 08.04.2008 17:24
Ich habe ein Problem mit einem digitalen Filter, implementiert mit dspic30F4013 unter MPLAB C30 dsp Library: Ein FIR n-ter Ordnung macht doch folgendes: y(n) = summe(j=0;n) x(n-j) * h(j) ***** Ist das noch richtig ??? ****** wenn ich nun die Ordnung auf Null (TAPS=1) setze ist das: y(n) = x(n) * h(0) mit einem Koeffizienten h(0) Das folgende Programm liefert zwar Werte für y, jedoch verstehe ich nicht wie sie zustandekommen: bei mir ist (umgerechnete fractional werte sind nach dem =:) x = 1 =: 2^(-15) coeffs[0] = h[0] = 8 =: 2^(-12) das Resultat nach dem ersten Filterdurchgang ist y = 4 =: 2^(-13) wie kann das sein ? 2^(-15) * 2^(-12) müsste doch verschwinden - oder ? Wieso wird es grösser? -- Vielen Dank für eventuelle Antworten Michael
#include <p30f4013.h> #include <stdio.h> #include <stdlib.h> #include "fir.h" #define TAPS 1 /* local function prototypes */ /* static variables */ fractional coeffs[TAPS] __attribute__ ((space(xmemory))); fractional delay[TAPS] __attribute__ ((space(ymemory))); FIRStruct filter ; fractional x[2], y[2]; /* extern variables */ /* function declarations */ void FIR_Init(void) { coeffs[0] = 8; fractional x[10] = { 1,0,0,0,0,0,0,0,0,0 }; FIRStructInit(&filter, TAPS, coeffs, COEFFS_IN_DATA, delay); FIRDelayInit(&filter); FIR (1, y, x, &filter); } |
Datum: 08.04.2008 20:04
Für taps > 2 geht es, d.h. mit mindestens 3 Filterkoeffizienten ist alles in Ordnung. Ist zwar nicht ganz logisch, aber ich kann damit leben.
Datum: 08.04.2008 20:20
>2^(-15) * 2^(-12) müsste doch verschwinden - oder ?
Zahlendarstellung? Rundungsfehler? Überlauf?
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos verwenden, Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel


