www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Hilfe zu Fourier-Transformation

Autor: Olli (Gast)
Datum: 29.02.2008 19:36
Dateianhang: Signal.jpg (9,7 KB, 147 Downloads)
preview image for Signal.jpg

Ich hab da ein Problem mit einer Aufgabe. Das Signal x(k) befindet sich
im Dateianhang.

Bestimmen Sie die Fourier-Transformierte X(ω) von x(k).
Die Abtastfrequenz sei fs = 1 kHz. Zeichnen Sie die
Fourier-Transformierte im Frequenzbereich 0 ≤ f ≤ 500Hz.
Autor: Alex (Gast)
Datum: 29.02.2008 20:36

Wo genau ist das Problem?

Scheitert es beim Zeichnen?
Autor: Horst (Gast)
Datum: 29.02.2008 21:00

Einfach das Spektrum von dem Dreieck bestimmen und dann periodisch
fortsetzen.
Wo genau ist dein Problem?
Autor: Olli (Gast)
Datum: 01.03.2008 13:27
Dateianhang: loesung.jpg (48,2 KB, 182 Downloads)
preview image for loesung.jpg

Diese Aufgabe wurde folgendermaßen gelöst: Siehe Dateianhang.

Wie kommt man auf die Gleichung:

X(w)=P(w)*(2*pi)/(6*T)*Summe dirac(w-n*(2*pi)/(6*T) usw.
Autor: Olli (Gast)
Datum: 01.03.2008 14:34
Dateianhang: formeln.jpg (9,7 KB, 22 Downloads)
preview image for formeln.jpg

Ich kann nicht nachvollziehen, wie man auf das X(w) kommt.
Autor: Olli (Gast)
Datum: 01.03.2008 15:31

Wenn ich statt ein Dreieck ein Rechteck transformiere,dann erhalte ich
folgende Werte:

n=0  P(n*wo)=9
n=1  P(n*wo)=0
n=2  P(n*wo)=0
n=3  P(n*wo)=9
n=4  P(n*wo)=0

[P(w)=3*cos(2*w*T)+3*cos(2*w*T)+3]

Ist dies eigentlich richtig?
Autor: Olli (Gast)
Datum: 01.03.2008 15:37

[P(w)=3*cos(2*w*T)+3*cos(2*w*T)+3]

Die Gleichung stimmt nicht. Hier die korrigierte Version:

[P(w)=3*2*cos(2*w*T)+3*2*cos(2*w*T)+3]

Auch die Ergebnisse sind falsch. Hier sind die richtigen Ergebnisse:

n=0  P(n*wo)=15
n=1  P(n*wo)=3
n=2  P(n*wo)=3
n=3  P(n*wo)=3
n=4  P(n*wo)=3

Mit Matlab hab ich dies mal überprüft:

abs(fft([3,3,3,3,3],6))

ans =

    15     3     3     3     3     3
Autor: Olli (Gast)
Datum: 02.03.2008 12:25

Ich bin immer noch an dem selben Punkt.
Ich weiss nicht wie man auf das X(w) kommt.
Autor: Olli (Gast)
Datum: 02.03.2008 19:02

Wahrscheinlich kann mir hier keiner weiterhelfen. Ich finde die Aufgabe
echt
heftig.
Autor: Stefan Diewald (diewie)
Datum: 02.03.2008 21:37

Wo ist dein Problem? Hier werden lediglich einige Regeln der ZDFT
benutzt.

x[k] nimmst du als Dreieck von -3 bis 3 an (das wir mal p[k] nennen),
das mittels Faltung mit Diracs um 6 verschoben wird.
Diesen Ausdruck kann man ohne weiteres direkt transformieren.
 x[k] = p[k] * \sum^{\infty}_{k=-\infty} \delta[n-k \cdot 6]
 X(\Omega) = P(\Omega) \cdot \frac{2\pi}{6} \sum^{\infty}_{k=-\infty} \delta(\Omega + \frac{2\pi k}{6}) 

Faltung wird zur Multiplikation im Frequenzbereich.

Gruß,
Stefan
Autor: Unit* (Gast)
Datum: 02.03.2008 22:06

Heftig, ja? Was wäre, wenn du dein Skript vernünftig lesen würdest?
Du hast ein diskretes, periodisches Signal. Dessen Spektrum ist
dementsprechend diskret und periodisch, dass heißt, dass die richtige
Fourier-Transformation die DFS ist. Diese kannst du mittels DFT
berechnen.
Die Länge einer Periode ist 6, das heißt:
X(k) = \frac{1}{N}\sum_{n=0}^{N-1}x(n) \cdot e^{-j2\pi\frac{nk}{N}}

Berechnen muss man nur X(0) .. X(3):

f=0: X(0) = .3 + .2 + .1 + 0 + .1 + .2 = .9
f=1000*2/6: X(1) = .3*exp(-j*2*pi*0*1/6) + .2*exp(-j*2*pi*1*1/6) + ... =
.4
X(2) = 0
X(3) = .1

Prüfung:

>> fft([.3 .2 .1 0 .1 .2])

ans =

    0.9000    0.4000   -0.0000    0.1000   -0.0000    0.4000
Autor: Olli (Gast)
Datum: 03.03.2008 08:55

Hallo Stefan, deine angegebene Formel ist doch falsch.
X(\Omega) müsste doch so aussehen oder?

x[k] = p[k] * \sum^{\infty}_{k=-\infty} \delta[n-k \cdot 6]

X(\Omega) = P(\Omega) \cdot \frac{2\pi}{6*T} \sum^{\infty}_{k=-\infty}
\delta(\Omega - \frac{2\pi k}{6*T})

Hallo Unit*, ich muss doch diese Formel verwenden:

X(k) = sum_{n=0}^{N-1}x(n) \cdot e^{-j2\pi\frac{nk}{N}}

-----------------------------------------------------------------------

Warum eigentlich nur X(0) .. X(3) verwenden?
Weil nach X(3) das ganze gespiegelt ist.
Autor: Unit* (Gast)
Datum: 03.03.2008 09:06

Weil du das Spektrum im Bereich 0 .. 500 Hz darstellen musst...
f = 0Hz                <-> X(0)
f = 1000*1/6 = 166.6Hz <-> X(1)
f = 1000*2/6 = 333.3Hz <-> X(2)
f = 1000*3/6 = 500Hz   <-> X(3)

> Warum eigentlich nur X(0) .. X(3) verwenden?
> Weil nach X(3) das ganze gespiegelt ist.
Autor: Olli (Gast)
Datum: 03.03.2008 09:11

Hallo Stefan, deine angegebene Formel ist doch falsch.
X(w) müsste doch so aussehen oder?

[latex]
x[k] = p[k] * \sum^{\infty}_{k=-\infty} \delta[n-k \cdot 6]

X(\Omega) = P(\Omega) \cdot \frac{2\pi}{6*T} \sum^{\infty}_{k=-\infty}
\delta(\Omega - \frac{2\pi k}{6*T})
[/latex]

Hallo Unit*, ich muss doch diese Formel verwenden:

[latex]
X(k) = sum_{n=0}^{N-1}x(n) \cdot e^{-j2\pi\frac{nk}{N}}
[/latex]
-----------------------------------------------------------------------

Warum eigentlich nur X(0) .. X(3) verwenden?
Weil nach X(3) das ganze gespiegelt ist.
Autor: Olli (Gast)
Datum: 03.03.2008 09:13

Wie kann man in diesem Forum eine LATEX Syntax einleiden?
Autor: Unit* (Gast)
Datum: 03.03.2008 10:39

Siehe Formatierung, benutze Vorschau.
Autor: Olli (Gast)
Datum: 03.03.2008 12:15

Hallo Stefan, deine angegebene Formel ist doch falsch.
X(w) müsste doch so aussehen oder?

x[k] = p[k] * \sum^{\infty}_{k=-\infty} \delta[n-k \cdot 6]

X(\Omega) = P(\Omega) \cdot \frac{2\pi}{6*T} \sum^{\infty}_{k=-\infty}
\delta(\Omega - \frac{2\pi k}{6*T})

Hallo Unit*, ich muss doch diese Formel verwenden:

X(k) = sum_{n=0}^{N-1}x(n) \cdot e^{-j2\pi\frac{nk}{N}}
-----------------------------------------------------------------------

Warum eigentlich nur X(0) .. X(3) verwenden?
Weil nach X(3) das ganze gespiegelt ist.
Autor: Olli (Gast)
Datum: 03.03.2008 12:17

Hallo Stefan, deine angegebene Formel ist doch falsch.
X(w) müsste doch so aussehen oder?

x[k] = p[k] * \sum^{\infty}_{k=-\infty} \delta[n-k \cdot 6] X(\Omega) = P(\Omega) \cdot \frac{2\pi}{6*T} \sum^{\infty}_{k=-\infty} \delta(\Omega - \frac{2\pi k}{6*T})

Hallo Unit*, ich muss doch diese Formel verwenden:

X(k) = \sum_{n=0}^{N-1}x(n) \cdot e^{-j2\pi\frac{nk}{N}}
Autor: Stefan Diewald (diewie)
Datum: 03.03.2008 13:08

Hi,

ja ich habe halt zeitnormiert gerechnet. Natürlich musst du in deinem
Fall das T zu den 6 mit dazunehmen, da man es später braucht. Aber an
der Formel ändert sich dadurch nichts. Das findest du in jeder
ZDFT-Tabelle.
 x[k] = p[k] * \sum^{\infty}_{k=-\infty} \delta[n-k \cdot 6 \cdot T]
 X(\Omega) = P(\Omega) \cdot \frac{2\pi}{6\cdot T} \sum^{\infty}_{k=-\infty} \delta(\Omega + \frac{2\pi k}{6\cdot T}) 

Das p[k] kannst du in diesem einfachen Fall einfach als Summe von fünf
verschobenen Diracs mit der dementsprechenden "Höhe" betrachten. Danach
kannst du diese porblemlos transformieren und siehst auf Anhieb den
Cosinus.

Gruß,
Stefan
Autor: Olli (Gast)
Datum: 03.03.2008 18:44

Hallo Stefan,

ok ja aber warum steht in der verschobenen DIRAC Funktion ein PLUS drin
und nicht ein MINUS. Im Beitrag "Datum: 03.03.2008 12:17" habe ich ein
Minus verwendet. Ist dies nun falsch oder richtig?
Autor: Stefan Diewald (diewie)
Datum: 03.03.2008 19:41

Es ist völlig egal, ob du den Dirac von -Unendlich bis +Unendlich
verschiebst, oder wie bei mir halt anders herum. In diesem Falle ist das
gleichbedeutend.
Autor: Olli (Gast)
Datum: 19.03.2008 13:40
Dateianhang: Impulse.PNG (1,7 KB, 16 Downloads)
preview image for Impulse.PNG

Wie kommt man von dem verschobenen DIRAC auf die e-Funktion
multipliziert mit 1/T?
Autor: Olli (Gast)
Datum: 19.03.2008 19:12

Ich hab ja von dem periodischen Signal x(t) das Spektrum X(w) ermittelt.
Kann ich nun mittels der IDFT das x(t) ermitteln?
Autor: Olli (Gast)
Datum: 09.05.2008 15:10

Hallo Stefan,

ich hab zu dieser Aufgabe noch eine Sache, die mir unklar ist.

x[k] = p[k] * \sum^{\infty}_{k=-\infty} \delta[n-k \cdot 6 \cdot T]

X(\Omega) = P(\Omega) \cdot \frac{2\pi}{6\cdot T} \sum^{\infty}_{k=-\infty} \delta(\Omega + \frac{2\pi k}{6\cdot T}) 

Die Variable "T" ist doch der Kehrwert der Abtastfrequenz fs.

In den folgenden Rechenschritte hab ich ein weiteres Problem.
Warum ist wo = 6T ?

wo=\frac{2pi}{T}

\sum^{\infty}_{k=-\infty} \delta[t-n \cdot 6 \cdot T] = \frac{1}{T}\sum^{\infty}_{n=-\infty} \delta[e^(jn\frac{2pi}{T}t)]

t=w

\sum^{\infty}_{k=-\infty} \delta[w-n \cdot 6 \cdot \frac{2pi}{wo}] = \frac{wo}{2pi}\sum^{\infty}_{n=-\infty} \delta[e^(j\cdot n\cdot wo\cdot t)]

\sum^{\infty}_{k=-\infty} \delta[w-n \cdot 6 \cdot \frac{2pi}{6T}] = \frac{6T}{2pi}\sum^{\infty}_{n=-\infty} \delta[e^(j\cdot n\cdot 6\cdot t)]

  
Autor: Olli (Gast)
Datum: 09.05.2008 15:13

Diesmal die korrekte Darstellung der Gleichungen:

wo=\frac{2pi}{T}

\sum^{\infty}_{k=-\infty} \delta[t-n \cdot 6 \cdot T] = \frac{1}{T}\sum^{\infty}_{n=-\infty} \delta[e^(jn\frac{2pi}{T}t)]

t=w 

\sum^{\infty}_{k=-\infty} \delta[w-n \cdot 6 \cdot \frac{2pi}{wo}] = \frac{wo}{2pi}\sum^{\infty}_{n=-\infty} e^(j\cdot n\cdot wo\cdot t)

\sum^{\infty}_{k=-\infty} \delta[w-n \cdot 6 \cdot \frac{2pi}{6T}] = \frac{6T}{2pi}\sum^{\infty}_{n=-\infty} e^(j\cdot n\cdot 6\cdot t)

  

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