mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Hilfestellung zur DFT Aufgabe


Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich bin gerade dabei folgende Aufgabe zu lösen:

Von dem reellen Signal x(k) liegen die folgenden Werte der 10-Punkte DFT 
vor:

i X(i)
0 1
1 2-j
2 -1+j
3 -2-j
4 2+j
5 1

Berechnen Sie x(k) für k = 0, ... , 9 und zeichnen Sie den Verlauf des 
Signals in das nebenstehende Diagramm.

Da das Signal reell ist, ist doch mein Signal symmetrisch oder?
Welche Werte muss ich jetzt exakt für die DFt Formel verwenden?

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Betrag:

|X(0)| = 1
|X(1)| = Wurzel(5)
|X(2)| = Wurzel(2)
|X(3)| = Wurzel(5)
|X(4)| = Wurzel(5)
|X(5)| = 1

Wenn das Signal reell sein soll, wie sehen dann die Koeffizienten
von |X(6)| bis |X(9)| aus?

|X(6)| = Wurzel(5)
|X(7)| = Wurzel(5)
|X(8)| = Wurzel(2)
|X(9)| = Wurzel(5)

Müsste doch so sein oder?

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmen meine Überlegungen?

Autor: Rainer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab das ganze jetzt mal mit Matlab berechnet.
Weiss allerdings nicht, ob die Berechnung so richtig ist.

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu dieser Aufgabe kann mir echt keiner helfen?
Kann mir wenigstens jemand einen Tip geben ob mein Verfahren so korrekt 
ist?

Autor: Rainer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab nun mal den Screenshot von Matlab hier anghängt.

Autor: Unit* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ist was faul:

Fall 1: x(k) ist nicht reell
Fall 2: du hast dich vertippt

Begründung:

X(k) ungerade => x(k) hat imaginäre Komponente

Autor: Mike van Dyke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das Signal reell, so ist der Realteil gerade und der Imaginäteil 
ungerade:

X = [1,2-i,-1+i,-2-j,2+j,1,2-j,-2+j,-1-i,2+i]

ifft(X) = 0.4, 0.0618, 1.0779, -0.1618, -0.0171, 0.2, -1.2482, -0.1618, 
0.7873, 0.0618

Autor: Rainer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab jetzt die Matlab Datei abgeändert.
Das mit dem reellen Signal hab ich noch nicht so ganz kappiert.
Warum müssen die anderen Imaginären Koeeffizienten umgekehrt sein?
% Lösung IDFT

fs = 1000;
k  = 0:1:9;
X  = [1,2-i,-1+i,-2-j,2+j,1,2-j,-2+j,-1-i,2+i];
N  = length(X);

subplot(2,1,1);
stem(k, X);
xlabel('k'); ylabel('Ymag(k)'); grid on;

yk = zeros(1,10);
ykabs  = zeros(1,10);

for m=0:1:9
    for k=0:1:9
        
        yk(m+1) =  yk(m+1) + X(k+1) * (cos(2*pi*k*m/N) + i*sin(2*pi*k*m/N));
        end
    
    ykabs(m+1) = yk(m+1)/N;
end

k = (0:1:(N-1));

subplot(2,1,2);
stem(k, ykabs);
xlabel('k'); ylabel('y(k)'); grid on;

Müsste dann, das Ergebnis so stimmen?

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... der X Vector hat ja komplexe Anteile. Wie kann man in Matlab die 
grafisch Darstellen?

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Mike, ich hab dein Ergebnis nun auch herausbekommen.
Ist dies definitiv die korrekte Lösung bzw. Matlabprogramm?

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das Ergebnis jetzt so richtig?

ifft(X) = 0.4, 0.0618, 1.0779, -0.1618, -0.0171, 0.2, -1.2482, -0.1618,
          0.7873, 0.0618

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
X(i) ist ja von i=0 bis i=5 gegeben. Laut Aufgabe soll ja eine IDFT mit 
N=10 Punkten durchgeführt werden. Da das Signal reell ist sehen die 
Koeffizienten so aus: X = [1,2-i,-1+i,-2-j,2+j,1,2-j,-2+j,-1-i,2+i]
Jetzt verstehe ich da nicht warum die Vorzeichen der Imaginäranteile ab 
dem 6. Wert bis 10. Wert verdreht werden müssen.

Autor: Unit* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das Signal reell ist, dann der reelle Teil der 
Fouriertransformierte gerade, und der imaginäre Teil ungerade sein soll.
Ein Vektor ist
gerade, wenn v(-i mod N) = v(i),
ungerade, wenn v(-i mod N) = -v(i),
wo N die Länge des Vektors und i=0..N-1 ist.

Autor: Mike van Dyke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Jetzt verstehe ich da nicht warum die Vorzeichen der Imaginäranteile
>ab dem 6. Wert bis 10. Wert verdreht werden müssen.

Bevor du dich der Materie mit trial-and-error näherst, ziehe doch einmal 
ein/dein Skript zu Rate. Auch google liefert viele Treffer, z.B. den 
hier
ftp://ftp.tnt.uni-hannover.de/pub/edu/DigSig1/Edler/digsig-08.pdf

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Skript hab ich auch. Leider ist da kein Beispiel aufgeführt wie ein 
reelles Signal aussehen soll.

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.... wie kann man in Matlab eigentlich den Realteil sowie Imaginaanteil 
plotten?

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Rainer!

Soweit ich weiss kann man das einfach in die Plotanweisung schreiben!
Wenn man sich zum Beispiel den Real -und Imaginäranteil eines Sinus 
ansehen will, kann man das z.B. folgendermaßen machen:

plot(real(y))
plot(imag(y))


mit y= A * sin(2*pi*f*t)



Gruß

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nochmals über die Aufgabe und deren Ergebnis nachgedacht. 
Prinzipiell ist die Aufgabe nicht schwer, man muss halt nur wissen wie 
ein reelles Signal aussieht. Und das Ergebnis ist jetzt nach meiner 
Meinung korrekt.

Autor: Daniel Kuhne (Firma: southpark SOP) (eric2000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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.