www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP dspic Filter / dspic30F4013

Autor: schnudl (Gast)
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);


}
Autor: schnudl (Gast)
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.
Autor: Jupp (Gast)
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






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net