annotate userProgramsTim/fourier_analyse.m @ 38:c2204b18f4a2 tip

End nov big change
author Ray Meddis <rmeddis@essex.ac.uk>
date Mon, 28 Nov 2011 13:34:28 +0000
parents
children
rev   line source
rmeddis@38 1 function [frequency,out] = fourier_analyse(in, sfreq,color_plot)
rmeddis@38 2 %
rmeddis@38 3 %plots absolute values of fft of input signal on a semilogarithmic scale
rmeddis@38 4 %long term spectrum
rmeddis@38 5 %
rmeddis@38 6 %use: [frequency,out] = fourier_analyse(in, sfreq)
rmeddis@38 7 % in: input signal
rmeddis@38 8 % sfreq: samplingfrequency
rmeddis@38 9 % frequency: frequency vector
rmeddis@38 10 % out: fourier-spectrum (complex)
rmeddis@38 11 if ~exist('color_plot')
rmeddis@38 12 color_plot = 'b';
rmeddis@38 13 end
rmeddis@38 14 out = fft(in)/(length(in)); %%Normierung auf Wurzel der Länge, da Matlab intern ohne Normierung der Hin-Fouriertransformation arbeitet
rmeddis@38 15 t = [0:1/sfreq:length(in)/sfreq-1/sfreq];
rmeddis@38 16 frequency = [0:1/t(end):1/(2*(t(2)-t(1)))];
rmeddis@38 17 %spektrale leistungsdichte wird geplottet, wobei eine amplitude von 1 100
rmeddis@38 18 %dB entspricht
rmeddis@38 19 plot(frequency,20*log10(sqrt(2)*abs(out(1:round(length(in)/2)))),color_plot);
rmeddis@38 20 %sqrt(2) weil Gesamtenergie auch in Spiegelfrequenzen enthalten
rmeddis@38 21 xlabel('frequency / Hz');
rmeddis@38 22 ylabel('fourier amplitude / dB');