mardi 5 juin 2012

Filtrage d'un signal sinusoidal en matlab


TP3 :

Programme :

close all
clc
clear
%TP 3 -Filtrage d'un signal sinusoidal
% 1 - Création d'un signal s(t)composé de trois signaux sinusoidaux :
help tp3.m
fs=input('Donner la  valeur de la fréquence d''echantillonage fs  =  ');
f0=input('Donner la valeur de la fréquence du signal x0 ,f0 =  ');
f1=input('Donner la valeur de la fréquence du signal x1 , f1 =  ');
f2=input('Donner la valeur de la fréquence du signal x2 ,f2 =  ');
t=(0:100)/fs;
x0=sin(2*pi*f0*t);
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
%la somme des signaux
s=x0+x1+x2;
%tracer le signal s
figure
plot(t,s)
xlabel('t')
ylabel('s')
grid
%generation d'un filtre elliptique du 8eme ordre
n=input('ordre d"un filtrage  n = ');
rp=input('ondulation en bande passante rp = ');
rs=input('ondulation en bande attenuée rs = ');
fp=input('fréquence de bande passante fp = ');
fss=input('fréquence de bande attenuée fss = ');
[b,a]=ellip(n,rp,rs,[fp,fss]*2/fs);
%module et argument
[h,w]=freqz(b,a,512);
mod=abs(h);
phi=angle(h);
figure
semilogx(w,20*log10(mod))
sf=filter(b,a,s);
figure
plot(t,sf,'g');
hold on
plot(t,x1,'r')
gtext('en vert le signal filtré')
gtext('en rouge le signal x1');
grid
  









Après l’exécution du programme précèdent et avec les valeur suivantes on obtient les trois graphes :



Donner la  valeur de la fréquence d'échantillonnage fs  =  100

Donner la valeur de la fréquence du signal x0, f0 =  10

Donner la valeur de la fréquence du signal x1, f1 =  20

Donner la valeur de la fréquence du signal x2, f2 =  40



Ordre d"un filtrage  n = 4

Ondulation en bande passante rp = 0.1

Ondulation en bande atténuée rs = 40

Fréquence de bande passante fp = 15

Fréquence de bande atténuée fss = 25



Graphe N°1 :







Graphe N°2 :


Graphe N°3:

0 commentaires:

Enregistrer un commentaire

pour ajouter commentair selictioner anonyme
لاضافة تعليق ضع anonyme تم publier