|
|
| Ovid |

Forum-Fortgeschrittener
|
 |
Beiträge: 81
|
 |
|
 |
Anmeldedatum: 25.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.01.2012, 18:31
Titel: komplexe Fourier Analyse
|
 |
Hallihallo, Leute!
Ich hab hier mal folgendes Problem. Ich soll eine komplexe Fourier Berechnung durchführen und das ganze mit stem zeichnen.
Wie sieht das programmiertechnisch aus?
Könnt ihr mir ein paar Ratschläge und Tipps geben, wie ich das programmieren tu?
Hier mal die Funktion:
[math]
f(x)=\frac{2}{\pi } fuer - \frac{\pi }{2} \leq x \leq \frac{\pi }{2}
und f(x)= 2*(1-\frac{x}{\pi }) fuer \frac{\pi }{2} \leq x \leq \frac{3*\pi }{2}
[/math]
P.S.: Irgendwie scheint er das nicht richtig anzuzeigen...??
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.01.2012, 20:12
Titel:
|
 |
Hallo,
wo genau ist das Problem?
Ich persönlich würde
1. x-Vektor definieren
2. y-Vektor vorbelegen
3. per logischer Indizierung die y-Werte für 1. Fall berechnen
4. per logischer Indizierung die y-Werte für 2. Fall berechnen
Grüße,
Harald
|
|
|
|
| Ovid |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 81
|
 |
|
 |
Anmeldedatum: 25.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.01.2012, 22:56
Titel:
|
 |
Gibt es auch nen Ratschlag für die Vorgehensweise des symbolischen rechnens? Und gibt es bei Matlab einen "Fourier" Befehl?
Vektoren mag ich nicht sonderlich
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 16.01.2012, 23:07
Titel:
|
 |
Hallo,
symbolisch halte ich für (unnötig) kompliziert und habe auch keinen konkreten Vorschlag zur symbolischen Umsetzung.
Was möchtest du denn mit der Gleichung machen? Plotten? Eine Wertetabelle anlegen? Dafür ist das Verwenden von Vektoren hier mindestens genauso gut geeignet.
Es gibt einen Fourier-Befehl, siehe hier:
http://www.mathworks.com/access/hel...../f1-122819.html#f1-122824
Grüße,
Harald
|
|
|
|
| Ovid |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 81
|
 |
|
 |
Anmeldedatum: 25.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.01.2012, 18:47
Titel:
|
 |
| |
 |
|
Also, ich habs mal probiert mit symbolischer Berechnung.
Und zwar so:
[code]
syms x
n=1:50;
T=2*pi;
w=(2*pi)/T;
cn=1/T*(int((2/pi)*exp(-i*n*w*x),(-pi/2),(pi/2))+int((2*(1-(x/pi)))*exp(-i*n*w*x),(pi/2),(3*pi/2)))
[/code]
Allerdings kommt folgendes Ergebnis raus:
cn =
[ 32880603970571302491146779030281/162259276829213363391578010288128 - (5734161139222659*i)/(9007199254740992*pi), (5734161139222659*i)/36028797018963968, (1911387046407553*i)/(27021597764222976*pi) - 10960201323523767497048926343427/162259276829213363391578010288128, -(5734161139222659*i)/72057594037927936, 32880603970571302491146779030281/811296384146066816957890051440640 - (5734161139222659*i)/(225179981368524800*pi), (1911387046407553*i)/36028797018963968, (5734161139222659*i)/(441352763482308608*pi) - 32880603970571302491146779030281/1135814937804493543741046072016896, -(5734161139222659*i)/144115188075855872, 3653400441174589165682975447809/162259276829213363391578010288128 - (1911387046407553*i)/(243194379878006784*pi), (5734161139222659*i)/180143985094819840, (47389761481179*i)/(9007199254740992*pi) - 2989145815506482044649707184571/162259276829213363391578010288128, -(1911387046407553*i)/72057594037927936, 2529277228505484807011290694637/162259276829213363391578010288128 - (441089318401743*i)/(117093590311632896*pi), (5734161139222659*i)/252201579132747776, (1911387046407553*i)/(675539944105574400*pi) - 10960201323523767497048926343427/811296384146066816957890051440640, -(5734161139222659*i)/288230376151711744, 32880603970571302491146779030281/2758407706096627177656826174898176 - (5734161139222659*i)/(2603080584620146688*pi), (1911387046407553*i)/108086391056891904, (5734161139222659*i)/(3251598930961498112*pi) - 32880603970571302491146779030281/3082926259755053904439982195474432, -(5734161139222659*i)/360287970189639680, 10960201323523767497048926343427/1135814937804493543741046072016896 - (1911387046407553*i)/(1324058290446925824*pi), (521287376292969*i)/36028797018963968, (5734161139222659*i)/(4764808405757984768*pi) - 32880603970571302491146779030281/3731963367071907358006294236626944, -(1911387046407553*i)/144115188075855872, 32880603970571302491146779030281/4056481920730334084789450257203200 - (5734161139222659*i)/(5629499534213120000*pi), (441089318401743*i)/36028797018963968, (1911387046407553*i)/(2188749418902061056*pi) - 3653400441174589165682975447809/486777830487640090174734030864384, -(5734161139222659*i)/504403158265495552, 32880603970571302491146779030281/4705519028047187538355762298355712 - (5734161139222659*i)/(7575054573237174272*pi), (1911387046407553*i)/180143985094819840, (5734161139222659*i)/(8655918483806093312*pi) - 32880603970571302491146779030281/5030037581705614265138918318931968, -(5734161139222659*i)/576460752303423488, 996381938502160681549902394857/162259276829213363391578010288128 - (15796587160393*i)/(27021597764222976*pi), (5734161139222659*i)/612489549322387456, (5734161139222659*i)/(11033819087057715200*pi) - 32880603970571302491146779030281/5679074689022467718705230360084480, -(1911387046407553*i)/216172782113783808, 32880603970571302491146779030281/6003593242680894445488386380660736 - (5734161139222659*i)/(12330855779740418048*pi), (5734161139222659*i)/684547143360315392, (147029772800581*i)/(351280770934898688*pi) - 843092409501828269003763564879/162259276829213363391578010288128, -(5734161139222659*i)/720575940379279360, 32880603970571302491146779030281/6652630349997747899054698421813248 - (5734161139222659*i)/(15141101947219607552*pi), (1911387046407553*i)/252201579132747776, (5734161139222659*i)/(16654311422016094208*pi) - 32880603970571302491146779030281/6977148903656174625837854442389504, -(521287376292969*i)/72057594037927936, 3653400441174589165682975447809/811296384146066816957890051440640 - (1911387046407553*i)/(6079859496950169600*pi), (5734161139222659*i)/828662331436171264, (5734161139222659*i)/(19896903153722851328*pi) - 32880603970571302491146779030281/7626186010973028079404166483542016, -(1911387046407553*i)/288230376151711744, 32880603970571302491146779030281/7950704564631454806187322504118272 - (5734161139222659*i)/(21626285410633121792*pi), (5734161139222659*i)/900719925474099200]
Kann mir jemand erklären, was DAS ist??
Mein Netbook ist fast in die Knie gegangen für diese "Matlab Berechnung", allerdings verstehe ich überhaupt nicht, was mir diese Zahlen sagen sollen...^^
Grüße
Ovid
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 15:52
Titel:
|
 |
Hallo,
Das dürfte das Resultat einer Durchmischung von numerischen und symbolischen Berechnungen sein. Bei T=2*pi; wird z.B. eine Gleitkommazahl erzeugt, die 2*pi so gut wie möglich annähert - aber eben nicht mehr 2*pi.
Zudem ist es im symbolischen Fall sicher nicht sinnvoll, n = 1:50 zu setzen. Willst du 50 verschiedene Formeln?
So siehts schon besser aus:
Ich frage mich aber weiter, warum du hier auf symbolischen Berechnungen bestehst.
Grüße,
Harald
|
|
|
|
| Ovid |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 81
|
 |
|
 |
Anmeldedatum: 25.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 17:05
Titel:
|
 |
Deswegen ist das so eine Wurst...
Das mit dem symbolischen war ein Versuch, der, wie ich allmählich doch einsehen tu, in die expressionistische Richtung abdreht...^^
Aber mal zur gesamten Aufgabenstellung:
"Berechnen Sie für die Aufgabe 2 (die ich #1 vorgestellt habe) die Koeffizienten ak, bk und Ak=sqrt(ak^2+bk^2) für k=1,...50, sowie den Real- und Imaginärteil der komplexen Fourierkoeffizienten. Zeichnen Sie die jeweiligen Koeffizienten mit dem Matlab Befehl stem in ein Diagramm."
Also 50 Formel brauche ich nicht, aber anscheinend 50 Werte, die ich einzeln und wahrscheinlich auch nacheinander zeichnen muss.
So, das ist erstmal die gesamte Aufgabe, ich hoffe das mein Problem etwas klarer geworden ist. ^^
Grüße
Ovid
P.S.: Ein anderer aus unserer Matlab Gruppe hat sich meine Aufgabe geschnappt, anscheinend kommt er damit klar...allerdings habe ich eine andere aufgebrummt bekommen.
|
|
|
|
| Ovid |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 81
|
 |
|
 |
Anmeldedatum: 25.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 17:36
Titel:
|
 |
Die Aufgabe hat allerdings auch mit Fourier zu tun, nur etwas anders.
"Stellen Sie die folgenden periodischen Funktionen mit der Grundfrequenz f grafisch dar und zeichnen Sie das zugehörige Amplitudenspektrum. Spielen Sie die entstehenden Töne mit den Befehlen soundsc oder wavplay jeweils im Intervall t=[0,2s] ab."
Da nahm ich mir die Funktion yt1 = sin(2*Pi*f*t), f=440 Hz
Bis jetzt habe ich folgendes:
[code]
f=440;
t=0:0.001:2;
yt1=sin(2*pi*f*t);
hold on
grid on
plot(t,yt1)
[/code]
Nun ist meine Frage, wie stelle ich das Amplitudenspektrum perfekt dar? Wenn ich stem(yt1) eingebe, zeigt er mir die Funktion an, aber mit an der Funktion...so allerdings sieht das Spektrum nicht aus, ich weiss nur nicht, was da noch fehlt...
Kannst du mir da weiterhelfen?
Grüße
Ovid
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 18:06
Titel:
|
 |
Hallo,
ich weiß jetzt nicht, was bei euch die ak, bk etc. sind, und du willst ja sicher auch nicht, dass ich deine Aufgaben für dich erledige
Ich habe aber mal das, was Do., 18:47 symbolisch probiert hast, numerisch gemacht - und es funktioniert ohne Probleme:
Zur neuen Aufgabe: ich denke mal, du solltest die FFT berechnen...
Grüße,
Harald
Zuletzt bearbeitet von Harald am 20.01.2012, 19:08, insgesamt einmal bearbeitet
|
|
|
|
| Ovid |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 81
|
 |
|
 |
Anmeldedatum: 25.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 18:25
Titel:
|
 |
Das werde ich gewissentlich mal weiterleiten, danke erstmal dafür ^^
Und die Aufgabe, die ich jetzt habe, also yt1=sin(2*pi*f*t), mit der Frequenz = 440 Hz, die soll ich grafisch darstellen und dann das Amplitudenspektrum zeichnen lassen. Danach soll ich die Funktion mit dem Befehl Wavplay oder soundsc abspielen.
Aber erstmal Konzentration auf das Amplitudenspektrum.
Wie mache ich das? Muss ich doch erst eine Fourier Berechnung durchführen und wenn ja, wie integriere ich die Funktion yt1? Bei mir kommt der Fehler, dass er die Methode "int" nicht durchführen kann, weil die eingegeben Argumente in "double" sind...
Grüße
Ovid
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 19:09
Titel:
|
 |
Hallo,
jetzt habe ich mich oder das Forum mich ausgetrickst.
Jedenfalls: du solltest dir den Befehl FFT ansehen.
Grüße,
Harald
|
|
|
|
| Ovid |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 81
|
 |
|
 |
Anmeldedatum: 25.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 19:16
Titel:
|
 |
Aber FFT ist doch für Fourier Transformationen, die brauche ich doch gar nicht, oder...?
Grüße
Ovid
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 19:35
Titel:
|
 |
Hallo,
vielleicht doch?
... da ist sogar vom "amplitude spectrum" die Rede.
Auch eine Google-Suche von "amplitude spectrum" matlab führt darauf. Du kannst es aber natürlich auch anders versuchen.
Grüße,
Harald
|
|
|
|
| Ovid |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 81
|
 |
|
 |
Anmeldedatum: 25.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 19:46
Titel:
|
 |
Nun ja, ich glaube halt nicht, das wir mit fft das machen sollen. Alle Aufgaben, auf diesem Aufgabenblatt, haben wir ohne fft gemacht. Ich denke auch, dass man das irgendwie anders hinbekommt. Schliesslich bekomme ich die Funktion auch geplottet, jetzt müsste Matlab doch nur die Amplitude eines Sinus Signals davon ablesen und als Spektrum ausgeben können...geht das nicht? Wie gesagt, mit FFT sollen wir, denke ich mal, nicht arbeiten, wenn dann hätte unser Dozent uns schon darauf hingewiesen.
Grüße
Ovid
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 20:10
Titel:
|
 |
Hallo,
ich kenne mich bei Signalverarbeitung an sich nicht besonders aus. Allerdings denke ich, dass du ein Großteil der Arbeit schon getan ist. Schau mal hier:
http://de.wikipedia.org/wiki/Freque.....al_mit_diskretem_Spektrum
Blöde Frage: warum bittest du nicht den Dozenten um Hilfe oder arbeitest mit Kommilitonen zusammen?
Grüße,
Harald
|
|
|
|
|
Gehe zu Seite 1, 2, 3 Weiter
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|