commit d6ac543b316392deedb97227548866b6fafa4844 Author: hschindler Date: Wed Sep 25 08:51:11 2019 +0200 Add new file diff --git a/MAS_testing.m b/MAS_testing.m new file mode 100644 index 0000000..934111b --- /dev/null +++ b/MAS_testing.m @@ -0,0 +1,105 @@ +clear all +close all +clc + + +signals = loadAllSignals('Supelec_2012_SIR_Spectral_Analysis_EA_v001.mat'); +Fe = 1000000.0; +signal = signals(:,1); +t = (0: 1: length(signal)-1)/Fe; + +%filtering smooth +nb_coeff = 10; +coeff = ones(1, nb_coeff)/nb_coeff; +signalm = filter(coeff, 1, signal); + +%envelope time +signalenv = filter(coeff, 1, abs(hilbert(sgolayfilt(signal, 1, 3)))); +plot_param = {'Color', [0.6 0.1 0.2],'Linewidth',1}; + +% savitzky-golay +signalsg = sgolayfilt(signal, 1, 3); + +%fft +t0pad=2^12;%0-padding +f=((1: t0pad)-1)*Fe/t0pad-Fe/2;%echelle des frequences centrée en 0 +TFx0pad=filter(coeff, 1, fft(signal, t0pad));%fft avec 0-padding +ModulTFx0pad=abs(TFx0pad);%module +CenterModulTFx0pad=fftshift(ModulTFx0pad);%shift zero-frequency component to centrer of spectrum +signalF=20*log10(CenterModulTFx0pad);%log +%fft smooth +TFx0pad=filter(coeff, 1, fft(signalm, t0pad));%fft avec 0-padding +ModulTFx0pad=abs(TFx0pad);%module +CenterModulTFx0pad=fftshift(ModulTFx0pad);%shift zero-frequency component to centrer of spectrum +signalmF=20*log10(CenterModulTFx0pad);%log +%fft hilbert +TFx0pad=filter(coeff, 1, fft(signalenv, t0pad));%fft avec 0-padding +ModulTFx0pad=abs(TFx0pad);%module +CenterModulTFx0pad=fftshift(ModulTFx0pad);%shift zero-frequency component to centrer of spectrum +signalenvF=20*log10(CenterModulTFx0pad);%log +%savitzky-golay +TFx0pad=filter(coeff, 1, fft(signalsg, t0pad));%fft avec 0-padding +ModulTFx0pad=abs(TFx0pad);%module +CenterModulTFx0pad=fftshift(ModulTFx0pad);%shift zero-frequency component to centrer of spectrum +signalsgF=20*log10(CenterModulTFx0pad);%log + +%plot +figure +subplot(221)%%%%%%%%%%%%%%%%%%%%%%% +plot(t, signal) +xlabel('Time (s)') +ylabel('Amplitude (a.u.)') +hold on +plot(t, signalm) +xlim([0 length(signal)/Fe]) +title('smooth filtering') +legend('signal', 'avg signal') +subplot(223)%%%%%%%%%%%%%%%%%%%%%% +plot(t, signal) +xlabel('Time (s)') +ylabel('Amplitude (a.u.)') +hold on +plot(t,[-1,1].*signalenv,plot_param{:}) +plot(t, signalsg) +xlim([0 length(signal)/Fe]) +title('Hilbert Envelope') +legend('signal', 'Hilbert Envelope', 'savitzky-golay') +subplot(222)%%%%%%%%%%%%%%%%%%%%%% +plot(f, signalF) +xlabel('f(Hz)'); +ylabel('Module de la TF en dB'); +grid on +hold on +plot(f, signalmF) +legend('signal', 'avg signal') +title('FFT') +xlim([0 Fe/2]) +subplot(224)%%%%%%%%%%%%%%%%%%%%%% +plot(f, signalF) +xlabel('f(Hz)'); +ylabel('Module de la TF en dB'); +grid on +hold on +plot(f, signalenvF) +plot(f, signalsgF) +legend('signal', 'signal Hilbert', 'savitzky-golay') +title('FFT') +xlim([0 Fe/2]) + +figure +ax1 = subplot(3,1,1); +plot(t,signal) +ax2 = subplot(3,1,2); +pspectrum(signal,Fe,'spectrogram','OverlapPercent',99, 'Leakage',1,'MinThreshold',-150) +colorbar(ax2,'off') +ax3 = subplot(3,1,3); +pspectrum(signal,Fe,'spectrogram','OverlapPercent',99, 'Leakage',1,'MinThreshold',-150,'TimeResolution', 10e-6) +colorbar(ax3,'off') +linkaxes([ax1,ax2,ax3],'x') + +figure +[sp,fp,tp] = pspectrum(signal,Fe,'spectrogram','OverlapPercent',99, 'Leakage',1); +mesh(tp,fp,sp) +view(-15,60) +xlabel('Time (s)') +ylabel('Frequency (Hz)')