mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP dspic Filter / dspic30F4013


Autor: schnudl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
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:

Bewertung
0 lesenswert
nicht lesenswert
>2^(-15) * 2^(-12) müsste doch verschwinden - oder ?

Zahlendarstellung? Rundungsfehler? Überlauf?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.