from fourier series to analysis of non-stationary signals - x
Post on 17-Apr-2022
3 Views
Preview:
TRANSCRIPT
Examples and MATLAB projectFinal MATLAB project
From Fourier Series to Analysis ofNon-stationary Signals - X
prof. Miroslav Vlcek
December 14, 2016
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Contents
1 Examples and MATLAB project
2 Final MATLAB project
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Contents
1 Examples and MATLAB project
2 Final MATLAB project
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Transforms
• Fourier transform gives the spectrum of the wholetime-series
• Which is OK if the time-series is stationary. But what if it isnot?
• We need a technique that can march along a timeseriesand analyze spectral content in different time instants.
• Short Time Fourier Transform, Wavelet Transform
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
STFT and non-stationarity signal
1 Remove the mean of a signal
2 Make moving average filtering
3 Do segmentation of a signal using window functions
4 Perform Fourier transform
5 Do not forget the interpolation
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Moving average filtering
• Assume we have a EEG signal corrupted with noise
• Set the mean to zero
• Apply moving average filter to the noisy signal (use filterorder=3 and 5)
• The higher filter order will remove more noise, but it willalso distort the signal more (i.e. remove the signal partsalso)
• So, a compromise has to be found (normally by trial anderror)
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Example 1: Moving average filtering
% moving average filteringclearload(’zdroj.mat’);x=EEG(3).Data(:,1);N=length(x);
% length of average window is 3for i=1:N-2,y3(i)=(x(i)+x(i+1)+x(i+2))/3;endy3(N-1)=(x(N-1)+x(N))/3;y3(N)=x(N)/3;
%length of average window is 5for i=1:N-4,y5(i)=(x(i)+x(i+1)+x(i+2)+x(i+3)+x(i+4))/5;end
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Example 1: Moving average filtering
y5(N-3)=(x(N-3)+x(N-2)+x(N-1)+x(N))/5;y5(N-2)=(x(N-2)+x(N-1)+x(N))/5;y5(N-1)=(x(N-1)+x(N))/5;y5(N)=x(N)/5;subplot(3,1,1), plot(x,’r’);title(’original EEG’)subplot(3,1,2), plot(y3,’g’);title(’EEG signal with averaging of length 3’)subplot(3,1,3), plot(y5,’b’);title(’EEG signal with averaging of length 5’)print -depsc figureEEG
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Example 1: Moving average filtering
0 500 1000 1500−400
−200
0
200
0 500 1000 1500−400
−200
0
200
0 500 1000 1500−400
−200
0
200
original EEG
EEG signal with averaging of length 3
EEG signal with averaging of length 5
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Example 2: Meyer wavelets
% Set effective support and grid parameters.lb = -8; ub = 8; n = 1024;% Meyer wavelet and scaling functions.[phi,psi,x] = meyer(lb,ub,n);subplot(211)plot(x,psi), gridtitle(’Meyer wavelet’)subplot(212)plot(x,phi), gridtitle(’Meyer scaling function’)
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Example 2: Meyer wavelets
−8 −6 −4 −2 0 2 4 6 8−1
−0.5
0
0.5
1
1.5Meyer wavelet
−8 −6 −4 −2 0 2 4 6 8−0.5
0
0.5
1
1.5Meyer scaling function
Figure: Meyer wavelets
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Example 3: Discrete Wavelet Transform
• 1 Load in EEG signal withload(’zdroj.mat’);name=’dmey’ ;name2=’db1’ ;signal=EEG(3).Data(:,1);s=signal; ls = length(s);
• 2 The Discrete Wavelet Transform is provided by MATALB undera variety of extension modes. We can perform a one-stagewavelet decomposition of the signal for example with[ca1,cd1] = dwt(s,name);
• 3 Here ca1 is a vector of the approximation coefficient and cd1the detailed coefficient.
• 4 You can plot these coefficients.
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Example 3: Discrete Wavelet Transform
• 5 Perform one step reconstruction of ca1 and cd1. a1 =upcoef(’a’,ca1,name,1,ls);d1 = upcoef(’d’,cd1,name,1,ls);
• 6 Then you can plot the EEG signal approximation and invertdirectly decomposition of EEG signal using coefficients a0 =idwt(ca1,cd1,’db1’,ls);
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Example 3: Discrete Wavelet Transform
0 500 1000 1500−400
−200
0
200
0 500 1000 1500−400
−200
0
200approximation a1
0 500 1000 1500−100
−50
0
50
100detail d1
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Example 3: Discrete Wavelet Transform
0 500 1000 1500−500
0
500approximation a3
0 500 1000 1500−50
0
50detail d3
0 500 1000 1500−50
0
50detail d2
0 500 1000 1500−100
0
100detail d1
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Some preliminary info about EEG
Figure: Brain waves within 0-30 Hz
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
MATLAB project
1 Develope file for computing STFT and wavelet transformfor an EEG signal
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Step 1: Load signal, input parameters
N = 128; okno = hanning( N+1);okno = okno( 1:N); fs = 1;prekryv = N-1; lupa = 64;zacatek = 1; delka = 1000;load(’zdroj.mat’);signal=EEG(3).Data(:,1);
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Step 2: FFT and moving average
f =128*(1:1024)/2048;aX = abs(fft(signal,2048));signal = signal( zacatek: zacatek+delka-1);
% here include moving averagedisp(’Computing spectrum...’)X = rozsekej( signal, N); % SegmentationX = diag( okno) * X; % Windowing[r,c] = size( X);X = [X; zeros( lupa, c)];
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Step 3: DFT, Spectrogram
spektrum = fft( X); % spectrumspektrum = spektrum( 1:64, :);
% the first 64 componentsRS = real( spektrum); IS = imag( spektrum);[numbercomponents, numbersamples] = size( RS);figure(1); colormap( jet);subplot(311)plot(signal); grid; title(’Original signal’);subplot(312)plot(f,aX(1:1024),’LineWidth’,2,’color’,[0 0 1]);title(’Frequency content’)subplot(313)imagesc( abs( spektrum)); title(’STFT’);print -depsc figure1EEG
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Signal with 50 Hz noise
0 100 200 300 400 500 600 700 800 900 1000−400
−200
0
200Original signal
0 10 20 30 40 50 60 700
1
2
3x 10
5 Frequency content
STFT
100 200 300 400 500 600 700 800 900 1000
20
40
60
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Signal without 50 Hz noise
0 100 200 300 400 500 600 700 800 900 1000−400
−200
0
200signal with 50 Hz noise reduced
0 10 20 30 40 50 60 700
1
2
3x 10
5 Fourier transform
STFT
100 200 300 400 500 600 700 800 900 1000
20
40
60
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Step 4: Wavelet decomposition
clear% Compute WT of an EEG signalload(’zdroj.mat’);signal=EEG(3).Data(:,1);ls=length(signal);name=’dmey’ ;[ca1,cd1] = dwt(signal,name);a1 = upcoef(’a’,ca1,name,1,ls);
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Step 4: A typical scalogram of EEG
signal=a1;wlen=64; Bsup=1; Logsc=0;wavtype = ’gaus4’;wavtype2 = ’mexh’;figure(1);h = msgbox( ’Wavelet transform
computation...’,’Please wait’);W = cwt(signal, 1:wlen/2, wavtype,’abslvl’);close( h);WW = abs( W);
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
Step 4: A typical scalogram of EEG
if Bsup == 1, WW = WW - min( min ( WW)); end;if Logsc == 1, WW = log10( WW+eps); end;subplot(2,1,1)plot(signal,’LineWidth’,1.0,’color’,[1 0 0])subplot(2,1,2)imagesc(WW); colormap(jet);
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
A lorry passing in front of a microphone
0 1 2 3 4 5 6−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6Orange lorry.wav
time(sec)
prof. Miroslav Vlcek Lecture 10
Examples and MATLAB projectFinal MATLAB project
MATLAB project - frequency-time stamp of a vehicle
• In order to consult your noise measurement and compiling thefinal project, we will meet on Tuesday, January 4, 2017. Do nothesitate to contact me any time later.
• I expect your project on a noise analysis for a real objects -vehicles, engines, ... to be delivered by February 17th .
• Merry Christmas!
prof. Miroslav Vlcek Lecture 10
top related