Dokument [PDF, 9,1 MB] - FB 4 Allgemein - Fachhochschule ...

Dokument [PDF, 9,1 MB] - FB 4 Allgemein - Fachhochschule ... Dokument [PDF, 9,1 MB] - FB 4 Allgemein - Fachhochschule ...

mv.fh.duesseldorf.de
von mv.fh.duesseldorf.de Mehr von diesem Publisher
22.07.2013 Aufrufe

20. Anhang 198 kanal = 'rechts'; vergleich = 0; %--------------------------------------------------------------------- %- Programmschleife %--------------------------------------------------------------------- for i = 1:2 %- Es werden nur zwei Dateien analysiert. %- Dateiwahlschleife if i == 1 % Erster Durchlauf: rechten Kanal wählen while vergleich == 0 %--------------------------------------------------------------------- %- Einlesen der Wav-Datei %--------------------------------------------------------------------- fenstertitel = strcat('WAV-Datei laden, Kanal: ', kanal); [dateiname, pfad] = uigetfile('*.wav', fenstertitel); datei_string = strcat(pfad, dateiname); [zeitdaten_roh, abtastrate, bits] = wavread(datei_string); %- Namensergänzung für den rechten Kanal str_er = '_re'; %- Länge der Kanal-Namenserweiterung l_str = length(str_er); laenge_dateiname = length(dateiname); %- Position der Kanal-Namenserweiterung im Dateinamen ('_re' oder '_li') %- Dies geht, da hinter der Namensergänzung im Namen nichts mehr steht. pos_str = laenge_dateiname - 6; v_str = dateiname(pos_str:(pos_str+l_str-1)); %- Entnahme eines Teilstrings aus dem Dateinamen, der Länge l_str. %- Dieser Teilstring wird mit den erwarteten Namenserweiterungen %- verglichen, wonach der gewählte Kanal ermittelt wird. %- Ergibt: '_re' oder '_li'. if strcmp(v_str, str_er) vergleich = 1; elseif strcmp(v_str, str_er) vergleich = 0; display('Falscher Kanal oder Dateinamenfehler'); end %- if-Anweisung end %- while-Anweisung elseif i==2 %- zweiter Durchlauf: linken Kanal wählen datei_string = strcat(pfad, dateiname(1:(laenge_dateiname - 6)), ↵ 'li', '.wav') [zeitdaten_roh, abtastrate, bits] = wavread(datei_string); end %- Anzeige der analysierten Datei datei_string %--------------------------------------------------------------------- %- Textdatei für den Kalibrierfaktor vorbereiten %- [Stammname]_Kalibrierfaktor.TXT. %--------------------------------------------------------------------- if i==1 Fachhochschule Düsseldorf Diplomarbeit 2002/03, Terence Klitz

20. Anhang 199 textdatei = strcat(pfad, dateiname(1:(laenge_dateiname- ↵ 12)),'_Kalibrierfaktor.txt'); fid = fopen(textdatei,'w'); fprintf(textdatei,' \n'); end %--------------------------------------------------------------------- laenge_zeitdaten_roh = length(zeitdaten_roh); %- Kanalwahl, rechts oder links switch lower(kanal) case {'rechts'} zeitdaten_kanal = zeitdaten_roh(1:laenge_zeitdaten_roh,2); case {'links'} zeitdaten_kanal = zeitdaten_roh(1:laenge_zeitdaten_roh,1); otherwise display('Fehler'); hold end window = flattop(blockgroesse); fenster_flattop = 4.688600988; epsilon_flattop = 3.83; ueberlappung = 0; p_null = 2e-5; %- [Pa] %- Aus den Zeitdaten werden nun soviele Werte übernommen, wie %- ganze Blöcke hineinpassen. %- Es passen n_block mal ganze Blöcke in die Zeitdaten-Matrix. laenge_zeitdaten_roh = length(zeitdaten_roh); n_block = (laenge_zeitdaten_roh - mod(laenge_zeitdaten_roh, ↵ blockgroesse)) / blockgroesse; wertezahl = n_block * blockgroesse; zeitdaten = zeitdaten_kanal(1:wertezahl,1); laenge_zeitdaten = length(zeitdaten); dauer = laenge_zeitdaten / abtastrate; %- [s] dauer_block = blockgroesse / abtastrate; %- [s] delta_f = 1 / dauer_block; %- [Hz] mittelungsanzahl = n_block; f_min = 0; % theoretische Maximalfrequenz f_max_th = abtastrate / divisor; % Maximalfrequenz, die mit delta_f abgedeckt werden kann. f_max = f_max_th - mod(f_max_th, delta_f); % delta_f passt n-mal in f_max rein, es gibt aber n+1 Stützpunkte n_f = f_max / delta_f + 1; frequenzen = (linspace(f_min, f_max, n_f))'; %--------------------------------------------------------------------- %- Berechnung des linearen APS über die Funktion specgram %--------------------------------------------------------------------- [B_th, F_th, T] = specgram(zeitdaten, blockgroesse, abtastrate, window, ueberlappung); %- Übernahme des berücksichtigten Frequenzbereiches. Fachhochschule Düsseldorf Diplomarbeit 2002/03, Terence Klitz

20. Anhang 198<br />

kanal = 'rechts';<br />

vergleich = 0;<br />

%---------------------------------------------------------------------<br />

%- Programmschleife<br />

%---------------------------------------------------------------------<br />

for i = 1:2 %- Es werden nur zwei Dateien analysiert.<br />

%- Dateiwahlschleife<br />

if i == 1 % Erster Durchlauf: rechten Kanal wählen<br />

while vergleich == 0<br />

%---------------------------------------------------------------------<br />

%- Einlesen der Wav-Datei<br />

%---------------------------------------------------------------------<br />

fenstertitel = strcat('WAV-Datei laden, Kanal: ', kanal);<br />

[dateiname, pfad] = uigetfile('*.wav', fenstertitel);<br />

datei_string = strcat(pfad, dateiname);<br />

[zeitdaten_roh, abtastrate, bits] = wavread(datei_string);<br />

%- Namensergänzung für den rechten Kanal<br />

str_er = '_re';<br />

%- Länge der Kanal-Namenserweiterung<br />

l_str = length(str_er);<br />

laenge_dateiname = length(dateiname);<br />

%- Position der Kanal-Namenserweiterung im Dateinamen ('_re' oder '_li')<br />

%- Dies geht, da hinter der Namensergänzung im Namen nichts mehr steht.<br />

pos_str = laenge_dateiname - 6;<br />

v_str = dateiname(pos_str:(pos_str+l_str-1));<br />

%- Entnahme eines Teilstrings aus dem Dateinamen, der Länge l_str.<br />

%- Dieser Teilstring wird mit den erwarteten Namenserweiterungen<br />

%- verglichen, wonach der gewählte Kanal ermittelt wird.<br />

%- Ergibt: '_re' oder '_li'.<br />

if strcmp(v_str, str_er)<br />

vergleich = 1;<br />

elseif strcmp(v_str, str_er)<br />

vergleich = 0;<br />

display('Falscher Kanal oder Dateinamenfehler');<br />

end %- if-Anweisung<br />

end %- while-Anweisung<br />

elseif i==2 %- zweiter Durchlauf: linken Kanal wählen<br />

datei_string = strcat(pfad, dateiname(1:(laenge_dateiname - 6)), ↵<br />

'li', '.wav')<br />

[zeitdaten_roh, abtastrate, bits] = wavread(datei_string);<br />

end<br />

%- Anzeige der analysierten Datei<br />

datei_string<br />

%---------------------------------------------------------------------<br />

%- Textdatei für den Kalibrierfaktor vorbereiten<br />

%- [Stammname]_Kalibrierfaktor.TXT.<br />

%---------------------------------------------------------------------<br />

if i==1<br />

<strong>Fachhochschule</strong> Düsseldorf Diplomarbeit 2002/03, Terence Klitz

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!