www.mikrocontroller.net

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


Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Unit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die CHIRP-Funktion ist dein Freund.

Autor: frank (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan Feldmann (wasserman2002)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: gast (Gast)
Datum:
Angehängte Dateien:

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

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Feldmann (wasserman2002)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan Feldmann (wasserman2002)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Detlef_A (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Feldmann (wasserman2002)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
halo detlef,
Undefined function or variable 'bla'.

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
'bla' sollte heißen, daß Du da irgendwas einsetzen kannst.

Cheers
Detlef

Autor: Stefan Feldmann (wasserman2002)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aha ok
danke schön und gute Nacht

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.