mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Hilfe zu DFT - IDFT


Autor: Arno K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hab ein Problem mit der DFT bzw. IDFT.
Das Signal x={1,0,-1,0,1,0,-1} soll mit einem Filter mit der 
Impulsantwort h={1 2 1 0 1} gefiltert werden. N ist 8. Nun weiss ich 
nicht wie die periodische Faltung für k=2 im Zeitbereich durchgeführt 
werden muss.Wenn ich hier die DFT von x(k) berechnen will, muss die 
Impulsantwort nicht mitverwendet werden oder?

Autor: Unit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm? N=8 und h={1 2 1 0 1}? Du solltest erstmal deine Kenntnisse 
erfrischen! :-)
Die Def. der Faltung ist:
y(n)= x(n)*h(n) = sum_i=0^(N-1) x(i) h(n-i)
wo
n    - diskrete Zeitvariable
N    - Ordnung des (FIR-)Filters
x(n) - Inputsignal
h(n) - Impulsantwort
y(n) - Ausgangssignal
ist.

Also z.B.:
N_x = 3 (index=0..2)
N_h = 2 (index=0..1)
=> N_y = N_x + N_h - 1 = 4

y(0) = x(0) h(0) + x(1) h(-1) + x(2) h(-2)
y(1) = x(0) h(1) + x(1) h(0)  + x(2) h(-1)
y(2) = x(0) h(2) + x(1) h(1)  + x(2) h(0)
y(3) = x(0) h(3) + x(1) h(2)  + x(2) h(1)

Das Problem bei der Realisierung ist, dass DSP's eine Modulo-Aritmetik 
haben, und meistens eine zyklische Faltung berechnen. Das heisst z.B., 
dass h(-2) nicht 0 ist, wie aufm Papier (wir nehmen natürlich an, dass 
die Werte von h(n) vor n=0 und nach n=N-1 gleich null sind), sondern 
modulo2(-2)=0. Also in dem Fall berechnet der DSP dieses Glied in der 
Faltung mit h(0) statt 0. Das verzerrt natürlich das Ergebnis (a), und 
verschwendet gleichzeitig die Rechnerzeit (b). Um das zu vermeiden 
sollte man nullen zu h hinzufügen (a), oder die MAC-Operation garnicht 
berechnen lassen (a+b).
Noch Fragen?

Autor: Unit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch was: willst du jetzt die Faltung im Frequenzbereich, oder im 
Zeitbereich durchführen?
Dein Eingangssignal ist so für periodische Faltung nicht geeignet, oder 
du hast vergessen, eine 0 am Ende hinzuschreiben.
Wenn du die periodische Faltung im Frequenzbereich berechnen möchtest, 
hast du wieder das Problem mit den Längen der {x-,h-}Vektoren. Um im 
Frequenzbereich die FFT von x und die FFT von h multiplizieren zu können 
müssen sie die selbe Länge haben, d.h. h muss auch aus 8 Samples 
bestehen. Lösung: wieder Nullen dahinterschreiben.
Das funktioniert aber nur mit periodischen Signalen!
Zur Berechnung der FFT von x brauchst du die Impulsantwort nicht.

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.