%   .txt-Datei in Matlab einlesen ( Matrixform )

%rohdaten1=dlmread('01_white_20kmh_1\23.txt', '\t', 23, 0);

%   Aufteilen in Zeit- u. Wertevektor

time1=rohdaten1(:,1);
soundpressurelevel1=(rohdaten1(:,2))';

      
%   FFT für Fahrt 1 mit Plot

t11=time1';
x11=soundpressurelevel1';

T11=diff(t11(1:2));
fs11=1/T11;
N11=length(x11);

fn=0.5*fs11;
df=fs11/N11;

f11 = 0:df:fn;

H11=fft(x11);
% Betrag
H11_pos0 = abs(H11(1:(N11/2)+1));
% Phase
phase = angle(H11);

% Skalierung
H11_pos01=[H11_pos0(1)/N11; H11_pos0(2:(N11/2))/(N11/2); H11_pos0(end)/N11];

%   A-Bewertung im Frequenzbereich
Ra = ( (12200^2 .* f11.^4) ./ ((f11.^2 + 20.6^2) .* (f11.^2 + 12200^2) .* (sqrt(f11.^2 + 107.7^2)) .* (sqrt(f11.^2 + 737.9^2))) );
% Korrektur mit 2.00 dB -> linear: = 1.2589254117941673
% siehe Quelle:
% http://www.sengpielaudio.com/BerechnungDerBewertungsfilter.pdf
Ra = Ra + 1.2589254117941673;
H11A = H11_pos01 .* Ra' ;

% Für Rücktransfomration
% A-Bewertung ohne Skalierung
H12A = H11_pos0 .* Ra';
% beidseitiges Spektrum für ifft wieder zusammensetzen 0...fn [Hz] -fn...-df [Hz]
ReA = [H12A;H12A(end:-1:2)];
% Umrechnung von Polar- in karthes. Koordinaten
Re = ReA .* cos(phase);
Im = ReA .* sin(phase);

% complex Re + j im
HA_ifft = complex(Re,Im);
% Rücktransformation in den Zeitbereich
soundpressurelevel1_A = ifft(HA_ifft);

%   Plotten der Rohdaten

a = figure ('Name','Rohdaten Fahrt 1 im Vergleich','NumberTitle','off');
    subplot ( 211 ) ;
        plot (soundpressurelevel1 , 'r' );
        xlabel ( 'Zeit [s]' ) ; ylabel ( 'Schalldruck [Pa]' ) ; title( 'Rohsignal' ) ;
        grid on ;
        
    subplot(212);
        plot (soundpressurelevel1 , 'r' ) ;
        grid on ; hold on ;
        plot (soundpressurelevel1_A , 'b--' ) ;
        hold off;

b=figure('Name','FFT der 1. Fahrt','NumberTitle','off');
    subplot(3,1,1);
        % Y-Achse in dB 
        semilogx(f11,20*log10(H11_pos01),'r'); 
        
        % Y-Achse linear, X-Achse logar. 
        %semilogx(f11,H11_pos01,'r');
        
        % X- und Y-Achse linear
        %plot(f11,H11_pos01,'r');
        xlabel('Frequenz[Hz]'); title('Rohdaten Spektrum');
        grid on;
        
    subplot(3,1,3);
        % Y-Achse in dB
        semilogx(f11,20*log10(H11_pos01),'r');
        
        % Y-Achse linear, X-Achse logar. 
        %semilogx(f11,H11_pos01,'r');
        
        % X- und Y-Achse linear
        %plot(f11,H11_pos01,'r');
        grid on; hold on;
        



figure(b);
    subplot(3,1,2);
        % Y-Achse in dB
        semilogx(f11,20*log10(H11A),'b');
        
        % Y-Achse linear, X-Achse logar. 
        %semilogx(f11,H11A,'b');
        
        % X- und Y-Achse linear
        %plot(f11,H11A,'b');
        xlabel('Frequenz [Hz]'); title('Rohdaten Spektrum A-Bewertet');
        grid on;
        
    subplot(3,1,3);
        % Y-Achse in dB
        semilogx(f11,20*log10(H11A),'b');
        
        % Y-Achse linear, X-Achse logar. 
        %semilogx(f11,H11A,'b');
        
        % X- und Y-Achse linear
        %plot(f11,H11A,'b');
        xlabel('Frequenz [Hz]'); title('Vergleich der Spektren');
        grid on, hold off,
        legend('Spektrum','Spektrum A-Bewertet',0);
        