Filtre elliptique/Modélisation sous MATLAB

Début de la boite de navigation du chapitre
Modélisation sous MATLAB
Icône de la faculté
Chapitre no 2
Leçon : Filtre elliptique
Chap. préc. :Introduction
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Filtre elliptique : Modélisation sous MATLAB
Filtre elliptique/Modélisation sous MATLAB
 », n'a pu être restituée correctement ci-dessus.

Introduction modifier

Dans cet article est décrite une manière de concevoir un filtre passe-bande analogique à caractéristique elliptique (de Cauer) à l'aide de l'outil MATLAB et de le simuler. Le logiciel MATLAB nous permet de calculer rapidement les filtres partiels nécessaires à sa réalisation.

Cahier des charges modifier

Le gabarit de la figure 1 défini la réponse en fréquence de notre filtre. Il est sensé ne laisser passer que le bip de fréquence la plus élevée d'un signal radiophonique soit  .

 
Figure 1: Gabarit de réalisation


Sur le gabarit nous avons les valeurs suivantes qui sont données :

 
 
 
 
 
 

Étant donnée que la fréquence centrale d’un passe bande se trouve au centre du gabarit, nous pouvons facilement à l’aide de la moyenne géométrique calculer les fréquences   et  .

 
 

Conception avec MATLAB modifier

Le programme MATLAB nous met à disposition tout un set de fonctions qui nous permettent de concevoir facilement notre filtre.

ellipord, ellip, zp2sos, zpk, bode, lsim, waveread, wavplay

Script de conception modifier

Ce script permet de calculer le filtre complet ainsi que les deux filtres d’ordre 2 qui le composent. De plus il affiche les diagrammes de bode des filtres partiels et de leur mise en cascade. Le script suivant n'a été testé que sous MATLAB 7.1

%*********************************************************************
%       CONCEPTION D'UN FILTRE ELLIPTIQUE                            *
%*********************************************************************
clear; clc;
close all;
%Definitions des paramètres du gabarit
fr=1250;
f1=1000;
f2=1220;
f3=fr^2/f2;
f4=fr^2/f1;
H0=0;
H1=-0.5;
H2=-40;

%Fréquences de stop et de pass
Wp=2*pi*[f2 f3];
Ws=2*pi*[f1 f4];
%Amplitudes des "vagues" ripples
Rp=abs(H1);
Rs=abs(H2);

%Détermine l’ordre du filtre ainsi que ses fréquences propres
[N, Wn] = ellipord(Wp, Ws, Rp, Rs, 's');
%Créée une matrice contenant les zéros, les poles et le gain du filtre 
[Z,P,K] = ellip(N, Rp, Rs, Wn, 's');
%Donne les coefficients des polynômes du numérateur et du dénumérateur 
[num, den] = ellip(N, Rp, Rs, Wn, 's');

%Matrice SOS contenant les coefficients de la forme standard de la fonction
% de transfert d'ordre 2 (selon Laplace). 
[SOS, G] = zp2sos(Z,P,K);

%Plotting complete filter
syst = ZPK(Z,P,K);
delta_f=1;
fmin=0;
fmax=10000;
%f=(fmin:delta_f:fmax); %linear frequency axis
f=logspace(0,4,10000); %logaritmic frequency axis
[Ampl, Phase] = bode(syst, 2*pi*f);
Ampl = squeeze(Ampl);

figure(1);
plot(f, 20*log10(Ampl+eps));
xlabel('Frequency [Hz]');
ylabel('Amplitude response [dB]');
grid on;

%Plotting 1st second-order section
[Z1,P1,K1]=sos2zp(SOS(1,1:6), G);
syst2=ZPK(Z1,P1,K1);
delta_f=1;
fmin=0;
fmax=10000;
%f=(fmin:delta_f:fmax); %linear frequency axis
f=logspace(0,4,10000); %logaritmic frequency axis
[Ampl, Phase] = bode(syst2, 2*pi*f);
Ampl = squeeze(Ampl);

figure(2);
plot(f, 20*log10(Ampl+eps));
xlabel('Frequency [Hz]');
ylabel('Amplitude response [dB]');
grid on;

%Plotting 2nd second-order section
[Z1,P1,K1]=sos2zp(SOS(2,1:6), 1);
syst2=ZPK(Z1,P1,K1);
delta_f=1;
fmin=0;
fmax=10000;
%f=(fmin:delta_f:fmax); %linear frequency axis
f=logspace(0,4,10000); %logaritmic frequency axis
[Ampl, Phase] = bode(syst2, 2*pi*f);
Ampl = squeeze(Ampl);

figure(3);
plot(f, 20*log10(Ampl+eps));
xlabel('Frequency [Hz]');
ylabel('Amplitude response [dB]');
grid on;

%Test with the sound
figure(4);
[bach,FS,NBITS,OPTS]=wavread('R:\Labos\SI\2321_Eln1\bach_bip_short.wav');
wavplay(bach, FS);
t=(0:length(bach)-1)/FS;
Y=lsim(syst,bach,t);
plot(Y);
sound(Y,FS);

Fonction de transfert modifier

La fonction de transfert d'un filtre de deuxième ordre oscillant est exprimée par rapport aux paramètres suivants :

  •   : Facteur de qualité des zéros
  •   : Facteur de qualité des pôles
  •   : Pulstation du zéro
  •   : Pulstation du pôle