Vous êtes sur la page 1sur 14

JeanniardSbastien

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')