Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Sinus funktion schleife programmieren

 

wasserman2002
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2008, 20:09     Titel: Sinus funktion schleife programmieren
  Antworten mit Zitat      
Hallo an alle,

ich möchte ein sinus funktion schleife zwischen 20Hz-20KHz entworfen.
ich hab aber schwierigkeiten gefunden. Sehen Sie das programm.

clear;
Amp = 1;
t0 = 0;
i=0;
for f=20:10:200; % f in hz
t2=1/f;
for t=linspace(0,t2,2000);
i=i+1;
b(i)=Amp*sin(2*pi*f*t);
end;
end;
plot(b);

% Das Programm soll den zeitlichen Verlauf eines Signals
% mit verschiedenen Frequenzen darstellen, aber
% es kommt immer das gleiche Signal raus.
% Ich glaube, dass es an der zeilzliche Schritteweite liegt. Hat jemand vielleicht eine Idee?
Private Nachricht senden Benutzer-Profile anzeigen


Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.02.2008, 01:17     Titel:
  Antworten mit Zitat      
versuch mal den plot befehlt in die schleife rein zu setzen statt danach. Außerdem:

hold on;

damit immer in die selbe figur geplottet wird.
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.311
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 18.02.2008, 01:28     Titel:
  Antworten mit Zitat      
Hi,

vielleicht hilft Dir auch das hier weiter:
http://www.tu-harburg.de/rzt/tuinfo.....e28.html#matlab:animation
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
wasserman2002
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.02.2008, 13:03     Titel:
  Antworten mit Zitat      
hallo,
Ich hab plot in der schleife rein gesetzt ,hold on auch .
bringt leider nichts!!
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.311
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 18.02.2008, 14:45     Titel:
  Antworten mit Zitat      
Beschreib mal genauer was Du machen willst,
vielleicht mit einer Handskizze.

Ändere mal den plot-Befehl in der Schleife in
plot(t,b(i));
Meinst Du sowas?

Edit:
Die Berechnung mit Schleifen scheint mir nicht optimal
zu sein. Du hast da sehr viele Iterationen.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.02.2008, 19:49     Titel:
  Antworten mit Zitat      
Ist es das, was du willst?:

clear;
Amp = 1;
figure; set(gcf,'NextPlot','replacechildren');
maxT = 1/(20);
j=1;
for f=20:10:20*1000; % f in hz
t = linspace(0,maxT,1000);
b = Amp*sin(2*pi*f*t);
plot(t,b);
j=j+1;
F(j) = getframe;
end;
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.02.2008, 20:21     Titel:
  Antworten mit Zitat      
Oder soetwas:

Amp = 1;
figure; set(gcf,'NextPlot','replacechildren');
maxT = 1/(20);
j=1; f=20;
Spacing = maxT/10000;
b(1)=0;
for maxTi=0:Spacing:maxT
if mod(j,10) == 0
f=f+10; % f in hz
end
if maxTi/Spacing == 0
t = 0;
elseif maxTi/Spacing == 0
t = Spacing;
else
t = linspace(0,maxTi,maxTi/Spacing+2);
end
b(j+1) = b(j) + Spacing*2*pi*f*Amp*cos(2*pi*f*(maxTi-Spacing));
plot(t,b(1:length(t))); axis([0 maxTi+Spacing -1 1]);
text(0,0.1,['Frequency [Hz]: ',num2str(f)]); xlabel('time [s]'); ylabel('Signal');
j=j+1;
F(j) = getframe;
end;
movie(F,1);
 
wasserman2002
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2008, 13:24     Titel: Übertragungsfunktion (H )rechnen
  Antworten mit Zitat      
Hallo,
und danke für Ihre Vorschläge. Hierbei ist eine Skizze ,die erklärt was ich will...Also es geht um einen Schallplatten filter(20-20khz),der muss ich mit Matlab oder Simmulation programmieren .Mein ziel ist ,die Transferfunktion(H=out/in) zu rechnen.Die Formel von H ist : H(Z)=Y(z)/X(z)=b0+b1*Z^-1 +b2*Z^-2 /(1+a1*Z^-1+a2*Z^-2 ) .Ich habe die durch die Simmulation gerechnet d.h: Ausgang und Eingang in Workspace gespeichert und dann in kommand Window das programm eingegeben:

out=simout.signals.values;
IN=simout1.signals.values;
for s=1:44100 % Fa=44100 Hz "abtastfrequenz"
H(s)=OUT(s)/IN(:,:,s) %Out und In sollen gleiche grosse haben
H(s)=20*log10(H(s)); % die Dämfung
end
plot(H(S))
weil die Fa sehr gross ist,die Rechnung wird lange dauern.Ich hab sie trozdem durchgeführt.Das ergebniss steht oben,es ist nicht was ich erwartet habe!!
die Koeffizienten von der Übertragung sind aber richtig,habe ich im Netzt
gefunden.kann ich auch senden wenn Sie möchten.
danke.

test2.mdl
 Beschreibung:

Download
 Dateiname:  test2.mdl
 Dateigröße:  31.8 KB
 Heruntergeladen:  606 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2019 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.