WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Befehl "sound"

 

elchico
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2018, 16:16     Titel: Befehl "sound"
  Antworten mit Zitat      
Hallo zusammen,

ich versuche gerade, meinen Kurvenverlauf (Impedanz, 1000 Messpunkte) hörbar zu machen.
Mein Vorgehen:
- Normalisieren der Daten (Z/mean(Z))
- normalisierte Daten * eine willkürliche Sound-Frequenz (zB 440 Hz)
- Zeit zB mit 0.1 s pro Messpunkt festlegen

Jetzt möchte ich diese Daten zusammenstöpseln, sodass ein halbwegs schönes Lied bei rauskommt (Hintergrund: ich arbeite mit Zellen und soll einem völligen Laien-Publikum dazu was erklären - vielleicht geht das mit auditiver Unterstützung besser ;P).

Mein Problem: Man hört ein Knacks zwischen den einzelnen Tönen (klingt wie ein elektronisches Rauschen), welches nur ganz kurz auftritt, aber dadurch natürlich kein "Flow" reinkommt in das "Lied".
Woran liegt das?

Und eine weitere Frage zum Verständnis:
Matlab wartet nicht, bis der Sound-Befehl fertig ist, bevor die nächste Zeile ausgeführt wird, richtig? Deswegen bekommt man ohne die "pause"-Zeile überlagerte Töne?


Über Hilfe wäre ich sehr dankbar.
LG und schönes Wochenende,
elchico



Code:
Code:

%% config settings
    filename = 'Sound.dat';    % incl. extension
    delimiter = '\t';               % Or ',' or ';' or ...
    sound_freq = 440;               % in Hz, middle value to fluctuate around
   
   
    fs = 20500;    % Sampling frequency
    dt = 1/fs;     % time resolution
   
    num_points = 1000;    %How many points to convert into sound?
    for jj = 1:num_points
        duration(jj,1) = 0.1;                 % duration per note in sec
        amplituden_array(jj,1) = 1;                  % a.u., middle value to fluctuate around (=> volume)  
    end

%% calculate values (Z_norm) and refer to sound
    M_raw = dlmread(filename,delimiter);
    Z_values = M_RTC(1:num_points,2);
    Z_norm= Z_values /mean(Z_values );

    sounds_freq_array = round((Z_norm+abs(min(Z_norm)))*sound_freq,0);


%% play sound
   for ii= 1:num_points                
        t = 0:dt:(duration(ii,1));
       
        signal = amplitude_array(ii,1)*sin(2*pi*sounds_freq_array(ii,1)*t);
        sound(signal, (fs));

        pause (duration(ii,1));

   end



 
Private Nachricht senden Benutzer-Profile anzeigen


elchico
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2018, 08:36     Titel:
  Antworten mit Zitat      
Ich würde das Thema gerne noch einmal nach oben pushen.
Hat jemand eine Idee?

LG
elchico
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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button 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.