Professional Documents
Culture Documents
LematreGuillaume
TPn2:AnalyseettraitementdesignalsousMatlab
2.4 ProductiondesignauxsousMatlab:
2.4.1
Synthsedunsignalsinusodal:
2.4.1.1 ThormedeShannon:
Leprogrammepermettantdegnrunsignalsinusodalestlesuivant:
Ts=100;
%Priodedusinus
Duree=200;
%Dured'observationsignal2priodes
dt=1;
%Pasouprioded'chantillonnagetemporeldusignal
N=Duree/dt;
%Nombretotald'chantillons
n=0:N;
%"Vectorisationdutemps"(chantillonnage)
t=n*dt;
%Dfinitiondutemps
y=sin(2*pi*t/Ts);
%Gnrationdusinus
Danslesmanipulationsquisuivent,nousallonsuniquementmodifierlavaleurdelavariabledtquire
prsentelapriodedchantillonnage.
Casodt=1:
Figure1:Casodt=1
Danscecasnouspouvonsconstaterquelafrquencedchantillonnageestlargementsuffisante.
Nouspouvonsprciserquelafrquencedchantillonnagevaut:
Casodt=10:
Figure2:Casodt=10
Nouspouvonsconstaterquelafrquencedchantillonnageesttoujourssuffisantepoursynthtiser
unsignalsinusodal.
Nouspouvonsprciserquelafrquencedchantillonnagevaut:
1
10
Casodt=50:
0,1
Figure3:Casodt=50
Cecasestunlecasdesouschantillonnageolafrquencedchantillonnageesttropfaible.
Nouspouvonsprciserquelafrquencedchantillonnagevaut:
1
50
0,02
NouspouvonsrecoupercesrsultatsenintroduisantlethormedeShannonquinousindiqueque
lafrquencedchantillonnagedoittresuprieuredeuxfoislafrquencemaximaledusignal.
Dansnotrecas,lafrquencedusignalsinusodalestde:
1
100
0,01
Doenthorie,nousdevonsavoirunefrquencedchantillonnagetelque:
2
0,02
Lesrsultatsprcdemmenttrouvexprimentalementsuiventbiencethorme.
2.4.1.2 AjoutdunbruitGaussien:
LeprogrammepourajouterunbruitGaussiendevariance=0.3:
Ts=100;
Duree=200;
dt=1;
N=Duree/dt;
n=0:N;
t=n*dt;
%Priodedusinus
%Dured'observationsignal2priodes
%Pasouprioded'chantillonnagetemporeldusignal
%Nombretotald'chantillons
%"Vectorisationdutemps"(chantillonnage)
%Dfinitiondutemps
y=sin(2*pi*t/Ts);
%Gnrationdusinus
B=0.3;
%Bcarttypedeladistributiongaussiennedubruit
bruit=B*randn(1,N+1);%Note:variance=B^2;
yb=y+bruit;
%Signalbruit
Nousobtenonslesignalbruitsuivant:
Figure4:SignalsinusodalbruitparunbruitGausssiend'carttypegal0,3
LeprogrammepourajouterunbruitGaussiendevariance=0.16c'estdireunevariance=0.4
Ts=100;
%Priodedusinus
Duree=200;
%Dured'observationsignal2priodes
dt=1;
%Pasouprioded'chantillonnagetemporeldusignal
N=Duree/dt;
%Nombretotald'chantillons
n=0:N;
%"Vectorisationdutemps"(chantillonnage)
t=n*dt;
%Dfinitiondutemps
y=sin(2*pi*t/Ts);
%Gnrationdusinus
B=0.4;
%Bcarttypedeladistributiongaussiennedubruit
bruit=B*randn(1,N+1);%Note:variance=B^2;
yb=y+bruit;
%Signalbruit
Nousobtenonslesignalbruitsuivant:
Figure5:SignalsinusodalbruitparunbruitGaussiendevariancegale0.16
2.4.2
SynthsedeFourier:
2.4.2.1 Casdunsignalcrneau:
LeprogrammepermettantdecalculerladcompositionensriedeFourierdunsignalcrneauestle
suivant:
n=input('Entrerlenombredecoefficientnpourlasynthse');
dt=1./(50*n*f0);
%Incrmenttemporel
t=(0:dt:2/f0);
%Crationdutempssurdeuxpriodesdusignalparincrmentdedt
A0=A/2;
%Valeurmoyennedusignal
e=A0;
%Boucledecalculdelasomme
fori=1:n
an=A*sinc(i/2);
bn=0;
xn=an*cos(2*pi*f0*i*t)+bn*sin(2*pi*f0*i*t);
e=xn+e;
end
Nouspouvonsnousapercevoirquedanslabouclefor,nouscalculonslescoefficientsanetbn.
Nouspouvonssynthtiserlesignalcrneaupourdiffrentnombredecoefficients.
Cason=5:
Figure6:Signalcrneaupour5coefficients
Cason=15:
Figure7:Signalcrneaupour15coefficients
Cason=50:
Figure8:Signalcrneaupour100coefficients
2.4.2.2 Casdunsignalendentdescie:
Connaissant lquation des coefficients Cn et sachant que le signal est impair donc les an = 0, alors
nouspouvonsendduirelexpressiondebn:
2.
1
.
LeprogrammepermettantdecalculerladcompositionensriedeFourierdunsignaldentdescie
estlesuivant:
n=input('Entrerlenombredecoefficientnpourlasynthse');
dt=1./(50*n*f0);
%Incrmenttemporel
t=(0:dt:2/f0);
%Crationdutempssurdeuxpriodesdusignalparincrmentdedt
A0=A/2;
%Valeurmoyennedusignal
e=A0;
%Boucledecalculdelasomme
fori=1:n
an=0;
bn=(2*((1)^i))/(pi*i);
xn=an*cos(2*pi*f0*i*t)+bn*sin(2*pi*f0*i*t);
e=xn+e;
end
Nousobtenonsalorspourunnombredecoefficientsgal100,nousobtenons:
Figure9:Signalendentdescieavecunnombredecoefficientsgal100
2.5 Filtragelinaire:
2.5.1
Analysedelinfluencedelafrquencedecoupure:
2.5.1.1 Frquencedecoupurede0.2:
Figure10:Signalfiltravecunefrquencedecoupurede0,2
Nouspouvonsremarquerquelesignalfiltrneressemblepasdutoutausignaldentre.
2.5.1.2 Frquencedecoupurede2:
Figure11:Signalfiltravecunefrquencedecoupurede2
Nouspouvonsconstaterquelafrquencedecoupurenestpasassezlevpourapercevoirunsignal
correctensortiedufiltre.
2.5.1.3 Frquencedecoupurede4:
Figure12:Signalfiltravecunefrquencedecoupurede4
Nous pouvons remarquer que nous commenons dapercevoir le signal rel en sortie mais que la
frquencedecoupureesttoujourstropfaible.
2.5.1.4 Frquencedecoupurede6:
Figure13:Signalfiltravecunefrquencedecoupurede6
Nouspouvonsconstaterquelesignalestbienlesignaldentrefiltr.Lafrquencedecoupureest
assezleve
2.5.1.5 Frquencedecoupurede8:
Figure14:Signalfiltravecunefrquencedecoupurede8
Nouspouvonsconstaterquelesignalestbienlesignaldentrefiltr.Lafrquencedecoupureest
assezleve
2.5.2
Analysedelinfluencedelordredufiltre:
2.5.2.1 Filtredordre2:
Lapenteestde40dB/dec.
2.5.2.2 Filtredordre4:
Lapenteestde80dB/dec.
2.5.2.3 Filtredordre6:
Lapenteestde120dB/dec.
2.5.3 Synthtisationdunsignalbruitpuisfiltr:
Nousavonssynthtisunsignalcrneaubruitpuisfiltrerpourliminerlebruit:
Figure15:Signalcrneaubruitpuisfiltr
Leprogrammepermettantuntelrsultatestlesuivant:
f0=1;
%Frquencedufondamental
A=1;
%Amplitudedusignal
n=25;
%Nombred'harmoniquepourlasynthseducrneau
dt=1/(50*n*f0);
%Incrmenttemporel
t=(0:dt:8/f0);
%Crationdutempssur8priodesdusignalparincrmentdedt
A0=A/2;
%Valeurmoyennedusignal
e=A0;
B=0.16;
bruit=B*randn(size(t));
fori=1:n
an=A*sinc(i/2);
xn=an*cos(2*pi*f0*i*t);
e=xn+e;
end
e=e+bruit
figure(1)
subplot(2,1,1)
plot(t,e)
xlabel('temps')
ylabel('e(t)')
title('signaldentredufiltre')
fn=1/(2*dt)
%Moitidelafrquenced'chantillonnage=FreqdeNyquist
fc=input('entrerlafrquencedecoupuredufiltre'); %Frquencedecoupuredufiltre
ordre=input('entrerlordredufiltre'); %Ordredufiltre
[CB,CA]=butter(ordre,fc/fn);
%Dterminationdescoefdufiltrenumrique
%correspondantauPasseBasd'ordrende
%frquencedecoupurefc
[H,f]=freqz(CB,CA,15000,1/dt);
%ObtentiondugabaritdufiltreHetfrquencesassociesf
figure(2)
semilogx(f,20*log10(abs(H)))
%TracduGabaritdufiltre
axis([0.110*fc1200])
grid
title('gabaritdufiltredeButterworth')
xlabel('frquence')
ylabel('GainendB')
ef=filter(CB,CA,e);
%Filtragedusignaleaveclepassebas
figure(1)
subplot(2,1,2)
plot(t,ef)
%Tracdusignalfiltr
title('signalfiltr')
xlabel('temps')
ylabel('signalfiltr')