Forum: Digitale Signalverarbeitung / DSP / Machine Learning sinus funktion schleife in Matlab programmieren


von frank (Gast)


Lesenswert?

Hallo an alle,

ich möchte ein sinus funktion schleife zwischen 20Hz-20KHz entwerfen.
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?

von Unit (Gast)


Lesenswert?

Die CHIRP-Funktion ist dein Freund.

von frank (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
es gibt zwei Chirp in MATLAB Bibliothek ,einmal bei:
Blocksets >SignalProcessing >Blocklibrary >SignalprocessingSources 
>chirp .
Der zweite ist bei:Simulink >LibraryBrowser >Sources >chirp signal.
Ich hab den ersten benutzt.
meine frage ist: wenn ich "simuliere",und auf "SCOPE" zweimal anclicke 
,das grafiche Fenster ist mit time. wie kann ich meine frequenzen
sehe?
danke.

von Stefan F. (wasserman2002)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich möchte chirp funktion von 20-20KHz programmieren, meine Aufgabe ist 
anderes als von tobias hofer.
Bei mir sollte der chirp von 20 bis 20KHz in eine richtung.die Zeit ist 
beliebig.
Abtastfrequenz fa=44100Hz

Frage: ist der chirp,in der skizze der richtige?wenn ja ,wie sollen die 
Prameters eingegeben werden?

wie Sie sehen ,ganz oben habe ich das Programm mit for-schleife 
geschrieben,es wurde mir empfohlen mit"chirp" zu programmieren.

von gast (Gast)


Angehängte Dateien:

Lesenswert?

ich glaube das was ihr sucht ist ein sinus sweep, also entweder chirp 
verwenden oder selber programmieren

von Detlef _. (detlef_a)


Lesenswert?

>>meine Aufgabe ist anderes als von tobias hofer.
ja, die Zahlenwerte sind anders, außerm nur eine Richtung.

Nochmal: eine linear steigende Winkelgeschwindigkeit des rotierenden 
Zeigers vorgeben, die integrieren (cumsum), Sinus davon, fettich.

Pfeift wunderbar, das script.

Cheers
Detlef

clear
fsample=44100; %Abtastfrequenz
tend=10;
dph=20*2*pi*1/fsample+20000*2*pi*(0:1/fsample:tend)/(tend*fsample);
ph=cumsum(dph);
signal=sin(ph);
return

von Stefan F. (wasserman2002)


Lesenswert?

Hallo gast(Gast),
ich kan leider ihr sweep.mdl nicht öffnen,es kommt ein error dialog!!
ich verstehe das nicht.die fehlermeldung kann man nicht kopieren.
liegt das von mein version ,ich hab aber Matlb 7.4.0.

von Stefan F. (wasserman2002)


Lesenswert?

Hallo detlef,
ich kann den figur von Ihrem programm nicht sehen,ich hab dazu
"plot(signal)"geschrieben,dann kommt figur wo nur blau zu sehen ,hab es 
vergrössert ,sieht nicht gut aus.
ausserdem,wie kann ich das programm in den Eingang von meiner Skizze in 
Simulation hinfügen?
danke.

von Detlef_A (Gast)


Lesenswert?

>>"plot(signal)"geschrieben,dann kommt figur wo nur blau zu sehen

Das signal hat 44100*10 samples, klaro sieht man nur blau.
plot(signal(bla:bla+2000),'.-') oder so mal probieren.

>>sieht nicht gut aus.
Möglicherweise liegt das daran, daß Du Dir den Schluß angesehen hast. 
20kHz bei 44100ks/s ist nahe an der Nyquistfrequenz, das gibts nur wenig 
mehr als 2 samples/Sinuswelle. Das ganze schwebt auch noch etwas mit der 
Abtastfrequenz, deswegen sieht das Signal 'zerhackt' aus.

>>sieht nicht gut aus.
hört sich aber gut an: soundsc(signal,44100)

>>ausserdem,wie kann ich das programm in den Eingang von meiner Skizze in
>>Simulation hinfügen?
keine Ahnung, Simulink kenne ich nicht.

Cheers
Detlef

von Stefan F. (wasserman2002)


Lesenswert?

halo detlef,
Undefined function or variable 'bla'.

von Detlef _. (detlef_a)


Lesenswert?

'bla' sollte heißen, daß Du da irgendwas einsetzen kannst.

Cheers
Detlef

von Stefan F. (wasserman2002)


Lesenswert?

aha ok
danke schön und gute Nacht

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.