lissajou figur < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Programmieren Sie in MATLAB ein M-File, welches die Lissajoufigur kontinuierlich ausgieb. Die Frequenz der y-Komponente wird in Schriten erhöt (Faktor n), die Phase soll kontinuierlich von 0° bis 360° erhöt werden.
x(t) = sin(2*pi*f*t) = sin(omega*t)
y(t) = sin(n*2*pi*f *t+ phi) = sin (n*omega*t+phi)
|
Hallo liebe Matlab Spezialisten
Ich eigentlich zwei Probleme
1: Ich bekomme schon kein richtiges Konzept zusammen, wie ich das ganze Programieren soll.
2: Ich bin noch nicht so versiert mit Matlab
zu 1:
um die Zeit hochzuzählen, habe ich an eine Endlosschleife gedacht. Soeine habe ich bereits erfolgreich geschrieben. Dabei kann ich das zeitintervall einstellen. --> funktioniert
Mit der plottfunktion komme ich ebenfalls soweit klar
aber viel weiter komme ich noch nicht.
Hätte mir vielleicht jemand Anregungen, wie ich das ganze weiter angehen soll.?
liebe grüsse
Tobi
|
|
|
|
Hi,
> Programmieren Sie in MATLAB ein M-File, welches die
> Lissajoufigur kontinuierlich ausgieb. Die Frequenz der
> y-Komponente wird in Schriten erhöt (Faktor n), die Phase
> soll kontinuierlich von 0° bis 360° erhöt werden.
>
> x(t) = sin(2*pi*f)
> y(t) = sin(n*2*pi*f + phi)
>
soll f eigentlich t sein? Ansonsten, was ist f?
>
> Hallo liebe Matlab Spezialisten
>
> Ich eigentlich zwei Probleme
>
> 1: Ich bekomme schon kein richtiges Konzept zusammen, wie
> ich das ganze Programieren soll.
>
> 2: Ich bin noch nicht so versiert mit Matlab
>
> zu 1:
>
> um die Zeit hochzuzählen, habe ich an eine Endlosschleife
> gedacht. Soeine habe ich bereits erfolgreich geschrieben.
> Dabei kann ich das zeitintervall einstellen. -->
> funktioniert
hmm, macht das sinn? wenn ich das richtig sehe (zb. hier:http://www.ebersold.ch/lustdorf/m01lissajou.shtml) sind lissajou-figuren geschlossene kurven, die ueber t parametrisiert werden. So wie es bei dir steht, haben die kurven die periode 1. [mm] $t\in[0.1]$ [/mm] reicht also vollkommen...
ich verstehe nicht ganz, was die aufgabe ist. Sollt ihr einfach fuer verschiedene frequenzen und phasen die L-figuren plotten? das waere einfach. Der ausdruck 'kontinuierlich' stoert mich ein wenig. passt mit numerik nicht so richtig zusammen, auf rechnern muss man eigentlich immer in diskreten schritten arbeiten.
gruss
matthias
|
|
|
|
|
Hallo
> soll f eigentlich t sein? Ansonsten, was ist f?
mir ist ein Tippfehler unterlaufen
x(t) = sin(2*pi*f*t) = sin(omega*t)
y(t) = sin(n*2*pi*f *t+ phi) = sin (n*omega*t+phi)
omega ist ja gleich der Kreisfrequenz = 2*pi*f
Aber die Frage stellt sich für mich eigentlich immernoch....
>
> hmm, macht das sinn? wenn ich das richtig sehe (zb.
> hier:http://www.ebersold.ch/lustdorf/m01lissajou.shtml)
> sind lissajou-figuren geschlossene kurven, die ueber t
> parametrisiert werden. So wie es bei dir steht, haben die
> kurven die periode 1. [mm]t\in[0.1][/mm] reicht also vollkommen...
>
>
> ich verstehe nicht ganz, was die aufgabe ist. Sollt ihr
> einfach fuer verschiedene frequenzen und phasen die
> L-figuren plotten?
Ja, da ist ja eben au mein Problem. Wir hatten im Selbststudium zu arbeiten.
Ich habe es so verstanden, dass sich die Figur "bewegen" soll.
Darum die Idee mit der Endlosschleife in der ich in kurzen intervallen immer wieder den neuberechneten plot ausgeben....
> das waere einfach. Der ausdruck
> 'kontinuierlich' stoert mich ein wenig. passt mit numerik
> nicht so richtig zusammen, auf rechnern muss man eigentlich
> immer in diskreten schritten arbeiten.
>
> gruss
> matthias
In der Zwischenzeit bin ich soweit, dass sich mindesten etwas bewegt. das n hozählen klappt noch nicht so ganz.
Ich werde wohl nochmals beim prof per mail einhaken und nachfragen, was genau das Ergebnis beinhalten soll
besten Dank, Tobi
|
|
|
|
|
Hallo,
am besten wäre es, wenn du deinen Code mal posten würdest.
Das hochzählen des n ist doch auch nicht anders als eine for-Schleife, daher musst du wohl etwas anders gemacht haben als ich es getan hätte. Ich würde das Ganze mal so angehen:
f = 0.25;
t_intervall = 0:0.01:10;
n_intervall = 1:1:10;
phi_intervall = 0:0.1:2*pi;
for n=n_intervall,
for phi=phi_intervall,
plot(sin(2*pi*f*t_intervall), sin(n*2*pi*f*t_intervall+phi));
drawnow;
end;
end;
Natürlich sind hier alle Parameter willkürlich gewählt, aber es geht nur um das Prinzip: Einer der Parameter wird in der äußeren Schleife hochgezählt, der andere in der inneren. Das t übergeben wir der Plotfunktion direkt als Vektor.
Gruß
Martin
|
|
|
|
|
t=linspace(0,3,10000);
n=1;
w=0.1;
k=1;
while k==1
n=round(round(w+1)/2);
w=w+0.005;
pause(0.001);
x=sin(2*pi*t);
y=sin(n*2*pi*t+w);
plot (x,y,'LineWidth',2);
end
Das Ergebnis ist eigentlich praktisch identisch
lg
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:22 Di 18.03.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|