% ################################################################################## % ## Loesung: Schaetzung des Leistungsdichtespektrums mit Periodogramm ## % ## -------------------------------------------------------------------------- ## % ## Benoetigte(s) m-File(s): lper.m ## % ################################################################################## % Teilaufg. a: Lineare Filterung N = 2^12; % mittelwertfreies, gaussvert., weisses Rauschen N_vor=500; %Anzahl der Abtastwerte um das System in den eingeschw. %Zustand zu setzen n = randn(1,N+N_vor);% der Leistung eins h1 = [1 -4 6 -4 +1]; x1_all = filter(h1,1,n); x1=x1_all(N_vor+1:length(x1_all)); h2 = [1 0.8]; x2_all = filter(1,h2,n); x2=x2_all(N_vor+1:length(x2_all)); % Teilaufg. b: "Wahres" Leistungsdichtespektrum fuer die beiden Filter NFFT = 2^12; Sx1x1 = abs(fft(h1,NFFT)).^2; axis_Sx1=[0 1 0 2*max(Sx1x1)]; Sx2x2 = ones(1,NFFT)./abs(fft(h2,NFFT)).^2; axis_Sx2=[0 1 0 1.5*max(Sx2x2)]; fT = 0:1/NFFT:1-1/NFFT; figure; plot(fT,Sx1x1); axis([0 1 0 1.1*max(Sx1x1)]);xlabel('Omega/2pi = f T'); title('Wahres Leistungsdichtespektrum Sx1x1 von x1');ylabel('Sxx(exp(j*Omega))'); figure; plot(fT,Sx2x2); axis([0 1 0 1.1*max(Sx2x2)]);xlabel('Omega/2pi = f T'); title('Wahres Leistungsdichtespektrum Sx2x2 von x2');ylabel('Sxx(exp(j*Omega))'); input('....Fuer naechste Teilaufgabe: RETURN druecken'); % Teilaufg. c: Periodogramme und wahre Leistungsdichtespektren zeichnen fT = 0:1/NFFT:1-1/NFFT; for k=[2^6, 2^8, 2^10, 2^12] Sxx=lper(x1(1:k) ,NFFT); figure; plot(fT,Sxx); hold on; ylabel('Per(Om)'); plot(fT,Sx1x1,'--'); xlabel('Omega/2pi = f T'); title(sprintf('Periodogramm von Sx1x1, N=%d', k)); axis(axis_Sx1); end; input('....Zum Fortfahren: RETURN druecken'); for k=[2^6, 2^8, 2^10, 2^12] Sxx=lper(x2(1:k) ,NFFT); figure; plot(fT,Sxx); hold on; ylabel('Per(Om)'); plot(fT,Sx2x2,'--'); xlabel('Omega/2pi = f T'); title(sprintf('Periodogramm von Sx2x2, N=%d', k)); axis(axis_Sx2); end; % ##### EOF #####