Forum: Digitale Signalverarbeitung / DSP / Machine Learning Probleme mit Aufgabe zu digitale Signalverarbeitung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hab mal wieder bei einer Aufgabe ein Problem.
Wie kommt man rechnerisch auf den Amplitudengang A(alfa)?
Warum eigentlich T=(2*pi)/(6*T)

von NEWBIE (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
...hier die Aufgabenstellung und Lösungsweg.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
In dieser Aufgabe habe ich das Problem, dass ich nicht genau weiss wie 
man auf den Amplitudengang A(alfa) kommt.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Weiss hier keiner, wie man auf den Amplitudengang A(alfa) kommt ???

von Tommi H. (drmota)


Bewertung
0 lesenswert
nicht lesenswert
Kannst du uns erklären wo diese Aufgabe her hast. Aus einem Buch kann
die doch nicht sein. Sonst müsste doch erklärt sein was alpha
sein soll.

von NEWBIE (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tommi,

im Anhang steht die Bedeutung von alfa drin.

von NEWBIE (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
---> w*T = 2*pi*f/fs = 2*pi*alfa

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Diese Aufgabe wurde mal vor zwei Jahren in einer Klausur gestellt.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi Tommi, hast du bereits herausgefunden wie man auf den Amplitudengang 
kommt?

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

dass f/fs <= 0.5 sein soll ist eigentlich nur das Nyquistkriterium.

==> http://de.wikipedia.org/wiki/Nyquist-Shannon-Abtasttheorem

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
ok, weiter gehts :-)

Neben dem Nyquistkriterium ist eine DFT auch symmetrisch bezüglich fs/2, 
so dass das Darstellungsintervall sinnvoll gewählt ist.

Formel DFT:

Hierbei ist X(m) gleich deinem m-ten Bin im Spektrum (das gesuchte 
A(alpha)).

alpha ist in diesem Kontext gleich:

Da obige Formel dir einen komplexen Wert liefert musst du noch nach den 
Regeln der komplexen Rechnung den Betrag bilden.

m = 0, 1, ... , N-1
N = Anzahl deiner Samples
x(n) entspricht den gegebenen Eingangswerten


Gruß,
Alex

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Recht herzlichen Dank Alex für deine Unterstützung.
Ich weiss hier nun nicht wie ich dies jetzt auf diese Aufgabe anwenden 
kann.
Was müsste ich jetzt wo und wie einsetzen?

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sorry, aber sehr viel einfacher kann ich es dir eigentlich nicht mehr 
machen.

Wo ist das Problem, die gegebenen Abtastwerte in die Gleichung für X(m) 
einzusetzen?

Mit Excel, Matlab oder nem anständigen Taschenrechner muss man das 
nichtmal von Hand rechnen.

Poste mal bitte, wie in deinen Augen X(0) aussehen würde (Formel mit 
eingesetzten Werten) - ich sage dir dann obs stimmt :-)

von NEWBIE (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Rechnung siehe Anhang. Ich hoffe es stimmt. Bin mir aber nicht ganz 
sicher.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Dasmit dem m,n und N verstehe ich nicht. Welche Werte müssen dafür 
eingesetzt werden?

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Für x(n) setzte ich doch die Werte von x(k) ein.
Beispiel x(0)=3 ; x(1)=2 ; x(2)=1

Die Werte n,m und N, das weiss ich überhaupt nicht was man dafür 
einsetzen muss.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Warum Lokführer? Sorry wenn ich diese aufgabe nun mal nicht verstehe.
Ich brauche nur mal ein Beispiel mit den eingesetzten Werten. Ich bringe 
da was total durcheinander.Es wird anscheinend immer so ein großes 
geheimnis darum gemacht.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Es ist ja nicht so das ich überhaupt nicht mache. Im Gegenteil ich 
bemühe mich echt darum.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Formel DFT:

X(m) = \sum_{k=0}^{N-1}{x\left(n\right)\left(cos\left(\frac{2\pi 
km}{N}\right) - j sin\left(\frac{2\pi km}{N}\right)\right)}

k läuft doch von 0 bis z.B. 6
N ist dann ich Gesamtanzahl hier z.B. 6
Was gebe ich für m an?

x(k) kann ich ja von der Zeichnung (Aufgabenstellung) ablesen.
z.B. x(k=0)=3

von NEWBIE (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
... hier ist nochmals die DFT Formel.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rechnerisch komme ich nicht auf die Werte wie in der Lösung angegeben.

A(alfa=0) = 1
A(alfa=0,2) = 1,75
A(alfa=0,5) = 2

Ich bin gerade am verzweifeln.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich werde es hier aufgeben. Danke nochmals an alle die mir echt geholfen 
haben.

von Alex (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Glaub mir, dass es besser ist die Zeit mit ein paar guten Büchern zu 
verbringen, anstatt hier im Forum alle halbe Stunde ein neues Posting zu 
machen - besser ist ein vernünftiges, das erkennen lässt, dass du dich 
wirklich ernsthaft mit dem Thema auseinandersetzt. Wer Zeit und Muße hat 
wird dann schon antworten.


Gruß,
Alex

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
2. Teil

von Alex (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas Schwarz

Lösch mal bitte nicht den Pfad für den Dateianhang, wenn du auf ein 
empty posting hinweist, sonst passiert obiges, wenn man zu schnell 
klickt :-)

von Andreas S. (andreas) (Admin) Benutzerseite Flattr this


Bewertung
0 lesenswert
nicht lesenswert

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi Alex hab dein Matlabprogramm ausprobiert. Der Amplitudengang ist ja 
nicht identisch mit der Lösung, da ja das alfa nicht miteinbezigen 
wurde.

alfa=m/N*fs

Diese Gleichung müsste man doch umstellen nach m und dann in die DFT 
Gleichung einsetzen oder?

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Was ich eigentlich nur wissen will, wie man auf den verdammten 
Amplitudengang A(alfa) siehe Lösung im Dateianhang kommt.

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Der "verdammte" Amplitudengang rechts unten hat nichts mit dem gegebenen 
Signal links oben zu tun ...

Ob man die x-Achse nun mit f = 0 ... 1kHz oder alpha = 0 ... 1 
beschriftet macht keinen Unterschied.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Achso, dann ist der in der Lösung dargestellte Amplitudengang A(alfa) 
eigentlich nicht für diese Aufgabe. Dieser Amplitudengang ist aber in 
der Lösung so abgebildet.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Der von Matlab "DFT_Klausur.m" berechnete Amplitudengang ist definitv 
korrekt?

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mir scheint du hast keinerlei Bezug zur gegebenen Problemstellung.

Schau dir einfach mal das gegebene Signal an - im Prinzip ist das ein 
abgetastetes Dreiecksignal mit einer Amplitude von 1.5, einer 
Periodendauer von 6 Samples (f=1/(6*1ms)=166Hz) sowie einer DC 
Komponente von 1.5 (f=0).

Dass der Peak bei 166Hz nicht die Höhe 1.5 hat liegt darin begründet, 
dass die andere Hälfte des Signals im Peak bei 833Hz (Spiegelbild) 
liegt, also einfach bei Bedarf mit 2 multiplizieren.

Jetzt könnte argumentiert werden, dass die Summe beider Peaks noch immer 
nicht 1.5 ergibt - korrekt. Da die Zahl der Eingangssamples krumm ist, 
also nicht N ganze Perioden im Abtastsatz enthalten sind, kommt es zu 
einem Phänomen, dass Leakage genannt wird. Zusaätzlich ist dein 
Eingangssignal kein Sinus sondern ein Dreieck, das somit auch Frequenzen 
>fs/2 (ungeradzahlige Harmonische) enthalten hat. Dadurch kommt es auch 
noch zu Aliasingeffekten im Spektrum.

Irgendwie sieht man Bild da doch stimmig aus, oder? Für so einen 
Plausibilitätstest braucht es nicht mal nen Taschenrechner.

von Tommi H. (drmota)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Newbie wenn du die Sache umgekehrt angehst und aus deinen 
Frequenzbild (A(alpha)) die periodische diskrete Zeitfunktion berechnest 
erhälst du das Bild siehe Anhang. Dazu musst du dir 
xkabs(10)=xkabs(0),xkabs(10)=xkabs(-10), xkabs(1)=xkab(-9)=xkabs(11), 
usw... periodisch fortgesetzt denken.

von Tommi H. (drmota)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und als m File

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Was hat die von dir berechnete "Zeitfunktion" mit dem gegebenen Signal 
zu tun?

Dein m-File berechnet das Spektrum eines Spektrums, macht aber keine 
IDFT, was du aber als Zielstellung in deinem Posting vorgibst.

Verunsicher den armen Kerl nicht noch mehr :-)

von Tommi H. (drmota)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man aus einem Frequenzdiskreten Signal (A(alpha)) auf ein 
Periodisch zeitdiskretes Signal kommen will wendet man die inverse 
Fouriertransformation
an.  xd(n)=1/N Summe (k=0, N-1(Xd(jk)exp(+j*2*PI*k*n/N)).

Das ganze dient nicht um Newbie zu verwirren, sondern einfach den 
umgekehrten
weg (nicht Zeit --> Frequenz, sondern Frequenz --> Zeit) zu 
demonstrieren.

Im übrigen im DFT_Klausur_F_T_.m gehört statt -,+ (Zeile 18). Das habe 
ich korrigiert im Anhang.+. Das Bild aus_A_alpha__x_berechnet.PNG bleibt 
aber das gleiche.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Hilfe!

Mir ist noch immer unklar wie man auf den Amplitudengang A(alfa) kommt.
Tommi du bist vom Amplitudengang A(alfa) ausgegangen und hast mit der 
inversen DFT den Zeitberich errechnet. Mir fehlr aber der andere Weg und 
zwar vom Zeitberich in den Frequenzbereich A(alfa). Aus euren Beiträgen, 
weiss ich nun noch immer nicht wie man auf den Aplitudengang (siehe 
angegebene Lösunf A(alfa)) kommt.

von Tommi H. (drmota)


Bewertung
0 lesenswert
nicht lesenswert
Newbie du musst einfach umdenken f=100 --> alpha =0.1, f=200 --> 
alpha=0.2,
usw... und statt und Xmag -->  A.   Die Lösung von Alex stimmt und zeigt 
eindeutig dass dein A(alpha)--> (bei Alex  Xmag(f)) nicht aus deiner 
x(k) Folge berechnet werden kann.

Und ich habe dir gezeigt dass mit deinem A(alpha) im umgekehrten Weg 
nicht deine Folge herauskommt.

Fazit: Du kannst es jetzt dein ganzes weiters Leben versuchen dieses 
A(alpha)
       auszurechnen und wirst es wahrscheilich nie schaffen. Selbst die
       klügsten Köpfe dieser Erde kannst  du fragen, keiner wird
       wahrscheinlich deine Lösung berechnen. Oder du gibst dich mit der
       Lösung von Alex zufrieden.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Xmag ist der gesuchte Amplitudengang, nur dass dieser hier nicht von 
alfa abhängt. Ja und was ist dann mit dem Amplitudengang A(alfa) vom 
Lösungsweg?
Ist dieser nicht für diese Aufgabe bzw. falsch?

von Tommi H. (drmota)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sag mal Newbie man hilft ja gerne. Aber wenn du das dir gezeigte nicht
verstehen kannst oder willst sind wir auch machtlos.

Nochmals A(alpha) von deiner Angabe passt nicht zu deiner x(k) Folge.

Und alpha=0.1   bedeutet f=100, fs=1000 ---> f/fs = 100/1000 = 0.1 
=alpha
Und alpha=0.2   bedeutet f=200, fs=1000 ---> f/fs = 200/1000 = 0.2 
=alpha
Und alpha=0.3   bedeutet f=300, fs=1000 ---> f/fs = 300/1000 = 0.3 
=alpha
Und alpha=0.4   bedeutet f=400, fs=1000 ---> f/fs = 400/1000 = 0.4 
=alpha
Und alpha=0.5   bedeutet f=100, fs=1000 ---> f/fs = 500/1000 = 0.5 
=alpha

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
=> Troll, mehr fällt mir dazu nicht ein ... schade um die Zeit.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sorry. Ich hab es nun begriffen. Xmag ist der korrekte Amplitudengang.

von Tommi H. (drmota)


Bewertung
0 lesenswert
nicht lesenswert
Newbie lass dich nicht verschrecken. Nur wer sich ständig Fragen stellt
wird klüger werden.

von NEWBIE (Gast)


Angehängte Dateien:
  • DFT.m (481 Bytes, 324 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich hab das Matlab Programm abgeändert, das N=6 beträgt und das für 
die DFT die x(k=0..5) eingesetzt werden. Da sich das diskrete Signal 
alle N=6 wiederholt, kann ich ja eigentlich auch nur den Bereich k=0 bis 
k=5 betrachten oder?

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Und warum muss eigentlich Xmag./N ausgeführt werden?

>>stem(f, Xmag./N);

Warum kann man da nicht stem(f, Xmag); verwenden?

von Tommi H. (drmota)


Bewertung
0 lesenswert
nicht lesenswert
>> Warum kann man da nicht stem(f, Xmag); verwenden?

Kannst du auch weil es der Formel entspicht.


>> kann ich ja eigentlich auch nur den Bereich k=0 bis
>> k=5 betrachten oder?


Du kannst jeden Bereich betrachten der mind. 6 Abtastschritte (oder ein
ganzzahliges Vielfaches) hat. Also k=-4 bis k=1, oder k=-5 bis k=0, 
usw...

Wenn du 24,30,36,42,...,6*10000 Abtastschritte wählst hast du 24,
30,36,42,....,6*10000 Frequenzen innerhalb deiner Abtastfrequenz.

von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
"Du kannst jeden Bereich betrachten der mind. 6 Abtastschritte hat."

- Es sei denn die Aufgabenstellung sagt was anderes ...

von NEWBIE (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab nochmals denjenigen gefragt, der diese Aufgabe auch gestellt 
hat.
Man soll hier nicht die DFT verwenden. Hier wird X(w) von x(k) verlangt.
Weitere Infos habe ich leiter nicht erhalten.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
... nochmals zu dem "stem(f, Xmag./N)". Laut DFT Formel wird dies hier 
nicht verlangt.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich hab mir überlegt, dass wenn ich die Z-Transformierte x(z) dieses 
Signals ermittle und anschließend in den Frequenzbereich X(w) übergehe, 
damit der Amplitudengang erstellt werden kann.
Bis zu welchem k müsste ich die Z-Transformation machen?

x(z) = 3 + 2*z^(-1) + z^(-2) + z^(-4) + 2*z^(-5)

z = e^(jwt)

X(w) = .....

w = alfa*ws = alfa*(2pi/T) ---> w*T = 2*pi*alfa

X(alfa) = ....

von Tommi H. (drmota)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habe dir dein Signal bis k=1000 Fouriertransformiert.
Du hast eine gerade Funktion d. h.: x(-t)=x(t) das bedeutet
für X(-jf)=X(jf)

daher kann man die Gleichung  X(jf)=2*Int(0-->unendlich)x(t)*cos(ft)dt
anwenden. Wobei dazu zu bemerken ist. Das Integral von einem 
verschobenen Diracimpuls D(t-k)*cos(f*t) --> cos(f*k) ist. Das sind
Grundlagen wenn du das nicht verstanden hast musst du das in
einem Buch (und nicht im Internet) anlesen.

von Tommi H. (drmota)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Als m File.

von NEWBIE (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ok viel Dank für die Info!

von Tommi H. (drmota)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die von mir gestern hier gepostete fourier_xk.m ist falsch und auch das 
dazugehörige Bild Fouriertransformiert.PNG.

Habe jetzt 20 Werte der Folge mit 1000 Frequenzen bis 1kHz durchrechnen
lassen. Denke jetzt stimmts da bei ca. 165 Hz  --> 1/Periodenlänge = 
1/(6*0.001s) --> alpha =0.165 ein lokales Maximum liegt und dies auch
im Anhang so ist.

von Tommi H. (drmota)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das m.File dazu

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.