// Leistungsspektrum1 Mittelwert mode(0); // Hier werden WAV Dateien analysiert // Die Abtastrate muss 48000 sein // Es wird nur 1 Kanal analysiert // Überdeckung der Analyse 87,5 // // // mclose('all'); clear; xdel(); // WAV Datei auswählen [dateiname,pfad]=uigetfile('*.wav','D:\Mdaten'); //WAV Datei wählen if isequal(dateiname,0); //Ist eine Date gewählt? // else // fe=pfad+'\'+dateiname; //Vollständigen Pfad erstellen info = wavread(fe,'info'); //WAV Info`s laden fd=fileinfo(fe); //Datei Info`s laden disp('////////////////////////////////////////////////////////////') disp('WAV-Datei: '+fe); //Ausgabe vollständiger Pfad p='Kanäle: '+string(info(2)); //Ausgabe Anzahl der Kanäle disp(p); //Ausgabe Anzahl der Kanäle p='Samplerate: '+string(info(3)); //Ausgabe Samplerate disp(p); //Ausgabe Samplerate p='Dateilänge : '+string(fd(1)); //Ausgabe Dateilänge disp(p); //Ausgabe Dateilänge p='Laufzeit : '+string(info(8)/info(3)); //Laufzeit in Sek. disp(p); //Laufzeit in Sek. disp('////////////////////////////////////////////////////////////') if info(3)==48000 then //Stimmt die Samplerate der Audiodatei? samplmax=info(8); //Dateilänge als Obergrenze erfassen ///////////////////////////////////////////// start1=1; //Erstes Byte des Rechenzyklus start2=48000; //Letztes Byte des Rechenzyklus************************ ueberdeckung=6000;//Überdeckungsabstand teiler=2400;//Amplitudengröße //=============================================================== kanal=1; //Nummer des Kanals der analysiert wird. frequ1=1; //Die FFT wird von dieser Frequenz an berechnet********** frequ2=500; //Die FFT wird bis zu dieser Frequenz berechnet************ //=============================================================== yF=wavread(fe,[start1 start2]); //Bytes für nächsten Rechnzyklus // // window funktion berechenen hanning yW=window('hn',start2); yFW=yW.*yF(kanal,:); // yFFTL=fft(yFW); //Die FFT wird berechnet // powerspektrum w=1; //Zähler für das Ergebnis Array Py = (yFFTL).* conj(yFFTL); //Powerspektrum der FFT berechnen Py=Py/teiler; // alles(w,frequ1:frequ2)=Py(frequ1:frequ2); //Ergebnisse ins Array start1=start1 + ueberdeckung; //Der Startpunkt für den nächsten Zyklus start2=start2 + ueberdeckung; //Der Endpunkt für den nächsten Zyklus // alle folgenden berechnen while start2