|
|
Sinus funktion schleife programmieren |
|
wasserman2002 |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 12.02.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.02.2008, 19:09
Titel: Sinus funktion schleife programmieren
|
|
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?
|
|
|
|
|
Gast |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.02.2008, 00:17
Titel:
|
|
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
|
|
Beiträge: 1.320
|
|
|
|
Anmeldedatum: 06.09.07
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 18.02.2008, 00:28
Titel:
|
|
|
|
wasserman2002 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 12.02.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.02.2008, 12:03
Titel:
|
|
hallo,
Ich hab plot in der schleife rein gesetzt ,hold on auch .
bringt leider nichts!!
|
|
|
nschlange |
Ehrenmitglied
|
|
Beiträge: 1.320
|
|
|
|
Anmeldedatum: 06.09.07
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 18.02.2008, 13:45
Titel:
|
|
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!"
|
|
|
Gast |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.02.2008, 18:49
Titel:
|
|
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: ---
|
|
|
|
|
|
Verfasst am: 18.02.2008, 19:21
Titel:
|
|
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
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 12.02.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.02.2008, 12:24
Titel: Übertragungsfunktion (H )rechnen
|
|
|
|
|
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.
Beschreibung: |
|
Download |
Dateiname: |
test2.mdl |
Dateigröße: |
31.8 KB |
Heruntergeladen: |
953 mal |
|
|
|
|
|
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 - 2024
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.
|
|