F1_C_be1 Telekommunikation,Kiruna Signalanalys F1_C
F1_C_be2 Frekvensanalys Exempel: Inspelat ljud av Tåg-vissla
F1_C_be3 Signalen i Frekvensplanet. Figuren genererad med program F31 i Appendix
F1_C_be4 Spektrogram: x-axel visar Tid y-axel visar Frekvens
F1_C_be5 VIKTIGT ATT FÖRSTÅ : Relationen mellan signalen i * Tidsplan * Frekvensplan Grundregel: ”Smalt i tid =Brett i frekvens” och vice versa.
F1_C_be6 TidFrekvens <95% av signal- effekten i frekvens- Intervallet MATLAB-kod: Se Ex1.m
F1_C_be7 TidFrekvens 5 0.2
F1_C_be8 TidFrekvens >99% av signal- effekten i frekvens- Intervallet MATLAB-kod: Se Ex2.m
F1_C_be9 Hur beräknas effekten i en signal ? Effekt.m t=0:.01:9.99; %Tid f1=1; %Frekvens x=sin(2*pi*1*t); %Signal p_sin=sum(x.^2)/length(x); var_sin=var(x) %Signaleffekt % N=length(x); brus=randn(1,N); %Brus var_brus=var(brus) %Bruseffekt % z=x+brus; var(z) %Effekterna (varianserna ) adderas
F1_C_be10 Klassificering av signaler i tidsplanet: Tidskontinuerlig Icke- Periodisk Tidsdiskret Icke-Periodisk Tidskontinuerlig Periodisk Tidsdiskret Periodisk
F1_C_be11 VÅRAT VERKTYG FÖR ATT HOPPA MELLAN TIDS- OCH FREKVENS-PLANEN ÄR FFT (Tid Frekvens) IFFT (Frekvens Tid) ”Fast Fourier Transform” I MATLAB: fft RESP: ifft
F1_C_be12 Tidskontinuerliga periodiska signaler Man kan visa att varje periodisk tidskontinuerlig signal med periodtiden T kan byggas upp av deltoner. Dessa toner har frekvens k*ω 0 där k är ett heltal och ω 0 = 2π / T
F1_C_be13 Ex: Fourier-Serie för fyrkant-våg med frekvens 2 och amplitud 1 T
F1_C_be14 1 delton = Grundtonen 1* ω 0 6 deltoner: (1,3,5,7,9,11)*ω 0 Slutsatser: För att återge snabba förändringar krävs många deltoner. För att återge snabba förändringar krävs stor bandbredd. Tid
F1_C_be15 ω0ω0 11 ω 0 ω0ω0
F1_C_be16 %Analysera en fyrkantvåg %med FFT frekvens=0.5; Fs=10;%Sampelfrekvens Dt=1/Fs;%Tidssteg N=100;%Antal sampel t=0:Dt:(N-1)*Dt;%Tid x=square(2*pi*0.5*t);%Fyrkantvåg figure(1) stem(t,x,'k');%Plotta vågen %FFT: y=abs(fft(x)); y=(2/N)*y;%Skala om df=Fs/N;%Frekvenssteg f=0:df:(N/2-1)*df; figure(2);%Frekvens stem( f,y(1:N/2),'k');%Observera index
F1_C_be17 Continuous-Time Fourier Series ( FS ) x(t) och X[k] bildar ett ” Fourier-par ”
F1_C_be18 Icke-periodiska signaler Periodiska signaler kan användes för att testa funktionen hos ett system, men är inte särskilt intressanta i sig. Teorin för kontinuerliga och tidsdiskreta Fourier-serier kan emellertid utvecklas till gälla även icke-periodiska signaler.
F1_C_be19 Continuous-Time Fourier Transform ( FT )
F1_C_be20 FT –generella egenskaper Insignalen är kontinuerlig och icke- periodisk Beskrivningen i frekvensplanet är inte periodisk Beskrivningen i frekvensplanet är ibland svår att beräkna eftersom den bygger på integrering
F1_C_be21 Ex: t a x(t)
F1_C_be22 %F33 %Fourier-Transform %of single pulse tau=1; a=1; w=-20:.01:20; x=2*a*sin(w*tau/2)./w; plot(w,x,'k');
F1_C_be23 Frekvensanalys igen! Frekvensanalys av en okänd signal görs i praktiken alltid med datotorstöd. Med datorer är det naturligare att summera istället för att integrera och man bör därför använda en metod som enbart kräver summering och multiplikation. Den enda Fourier-metod som detta gäller för är DTFT. Alltså för en periodisk tidsdiskret signal.
F1_C_be24 DFT = Discrete Fourier Transform Om man har en digital signal så är denna ytterst sällan periodisk. För att få den att uppfattas som periodisk gör man därför följande trick: Man tar den digitala signalens N st. sampel. Därefter placerar man ut kopior av sekvensen före och efter originalet och skapar sålunda en ny, periodisk signal.
F1_C_be25 Ex: Icke-periodisk till Periodisk %F34 %Non-periodic %2 periodic x=[ ]; nollor=zeros(1,length(x)); x1=[nollor x nollor]; subplot(2,1,1) stem(x1,'filled','k'); axis([ ]); % x2=[x x x]; subplot(2,1,2) stem(x2,'filled','k'); axis([ ]);
F1_C_be26 Om signalen är analog Om signalen är analog måste den först samplas i N st. punkter med tidsintervall T Man kan sedan beräkna frekvensinnehållet i signalen för intervallet 0 till fs [Hz], där fs är samplingsfrekvensen = 1/T
F1_C_be27 Val av samplingstid T T ( samplingstiden ) måste väljas så att att man får minst 2 sampel på varje period av högsta frekvenskomponenten f max i signalen. 1/T = f s >2 fmax Om f max inte är känd måste den analoga signalen filtreras så att inga frekvenskomponenter > f s /2 finns kvar vid samplingen.
F1_C_be28 Val av antal sampel N Om man gör frekvensanalys på N sampel kommer man att kunna beräkna frekvensinnehållet i N st. frekvenser på intervallet 0 till fs. Frekvensupplösningen blir fs/N [Hz]. Vid givet fs styrs alltså valet av antal sampel av den frekvensupplösning man önskar.
F1_C_be29 FFT forts. % Frekvensanalys med FFT % figure(2) Y=abs(fft(ys)); df=fs/Ns;%Frekvensupplösning f=0:df:(Ns-1)*df; plot(f,Y,'k'); xlabel('Frekvens [Hz]'); Kod för frekvensanalys
F1_C_be30 FFT forts. figure(3) Y=abs(fft(ys)); f=-Ns/2*df:df:(Ns-1)/2*df; plot(f,fftshift(Y),'k'); xlabel('Frekvens [Hz]'); Om man vill rita frekvens- innehållet från -fs/2 till fs/2:
F1_C_be31 FFT utskrift Utskrift av frekvens och DFT-värdena kan göras: [ f’, Y’ ]
F1_C_be32 Ändrad samplingsfrekvens Den FFT = DFT som gjorts kan förbättras, men hur? Prova med att öka samplings- frekvens, dock utan öka N fs = 20 Hz fs = 100 Hz Kom ihåg: Frekvensupplösningen df = fs / N
F1_C_be33 Ändrat antal sampel Nu med N = 512 och fs = 100:
F1_C_be34 Slutligen brukar man multiplicera med en fönsterfunktion Multiplicera tidsfunktionen med: hamming(Ns)’ ( obs transponat ) Ns = tidsfunktionens längd
F1_C_be35 %F31 %Load train.m %Do FFT % load train Fs=8192;%Sampling frequency N=length(y);%Nr of samples dt=1/Fs;%Time resolution t=0:dt:(N-1)*dt;%Time axis figure(1) plot(t,y,'k'); xlabel('Time [sek]'); % df=Fs/N;%Frequency resolution f=0:df:(N/2-1)*df;%Frequency axis yy=abs(fft(y)); yy=yy(1:(N/2)); figure(2) plot(f,yy,'k'); xlabel('Frequency [Hz]');
F1_C_be36 %Ex1.m %Beräknar enkelsidigt spektrum %för en puls. %Pulsen beskrivs: % x=zeros(1,100);%100 nollor på rad tau=20;%pulsbredd x(1:tau)=1;%Fyll i med 20 1:or Fs=1;%Samplingsfrekvens figure(1) stem(x,'k'); %Spektrum med FFT Dt=1;%1/Fs N=length(x); t=0:Dt:(N-1)*Dt; y=abs(fft(x)); Df=Fs/N;%Frekvensupplösning f=0:Df:(N/2-1)*Df; y=y(1:N/2);%Spegelbilden ej med figure(2) stem(f,y,'k');%FFT plottas hold
F1_C_be37 %Ex2.m %Beräknar enkelsidigt spektrum %för en halvperiod-sinus. %Pulsen beskrivs: x=zeros(1,100); tau=20;%pulsbredd x(1:tau)=sin(1*pi*(0:tau-1)/tau); Fs=1;%Samplingsfrekvens figure(1) stem(x,'k'); %Spektrum med FFT Dt=1;%1/Fs N=length(x); t=0:Dt:(N-1)*Dt; y=abs(fft(x)); Df=Fs/N;%Frekvensupplösning f=0:Df:(N/2-1)*Df; y=y(1:N/2);%Spegelbilden ej med figure(2) stem(f,y,'k');%FFT plottas % totaleffekt=sum(y.^2); z2=y(1:8); deleffekt=sum(z2.^2) q=(deleffekt/totaleffekt)*100