MATLAB: Filtre passe-haut (actif) pour compenser filtre passe-bas (passif)
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

MATLAB: Filtre passe-haut (actif) pour compenser filtre passe-bas (passif)



  1. #1
    invitea29b3af3

    MATLAB: Filtre passe-haut (actif) pour compenser filtre passe-bas (passif)


    ------

    Bonjour,

    Je me pose une question. Admettons que j'ai un signal qui a été filtré (fonction "filter" de Matlab) avec un filtre passe-bas sans gain dont les coefficients sont les suivants:
    Code:
    b = [0.0127, 0, 0.0127];
    a = [1, -0.9747];
    Je connais ces coefficients, je connais le signal filtré, ce que je cherche c'est le signal original. Donc je dois trouver les coefficients du filtre passe-haut actif dont les réponses en magnitude et phase sont les inverses de celle de mon passe-bas, pour compenser à la fois l'atténuation et le déphasage. Si je fais ça:
    Code:
    Fe = 1000; % fréquence d'échantillonnage
    f = (0:1/10000:20); % vecteur de fréquences. La bande d'intéret de mon signal est entre 0 et 20 Hz
    h = freqz(b, a, f, Fe); % réponse fréquentielle
    h_inv = 1./h;
    [b_inv, a_inv] = invfreqz(h_inv, 2*pi*f/Fe, length(b)-1, length(a)-1);
    figure; subplot(211); plot(f, abs(h)); subplot(212); plot(f, angle(h));
    figure; subplot(211); plot(f, abs(h_inv)); subplot(212); plot(f, angle(h_inv));
    ... on voit qu'en tout cas entre 0 et 20 Hz la réponse de mon filtre h_inv est bien l'inverse de celle de h, autant en phase qu'en magnitude. Mais mon filtre est instable (actif passe-haut). Et donc quand j'essaie de l'utiliser sur mon signal filtré pour essayer de retrouver l'original, j'obtiens des valeurs infinies...
    Code:
    original_reconstruit = filter(b_inv, a_inv, signal_filtre);
    Ma question est: comment faire pour retrouver ce signal original? Est-il possible de rentre mon filtre h_inv stable sans modifier ses réponses en amplitude et en phase entre 0 et 20 Hz ?

    Merci énormément de toute aide.

    -----

  2. #2
    inviteb9f49292

    Re : MATLAB: Filtre passe-haut (actif) pour compenser filtre passe-bas (passif)

    A mon avis, si le filtre que tu veux inverser enlève de l'information (atténue une bande de fréquence en dessous de la dynamique représentable), à mon avis son inverse ne pourra qu'être instable (amplifie une bande de fréquence au delà de la dynamique représentable: saturation), sinon ce serait trop facile, tu reconstruirais de l'information détruite...

    Mais certains filtres sont réversibles, souvent on utilise un filtre de blanchiment pour "compenser" l'effet d'un canal de transmission sur un signal: filtre RIAA, égaliseurs...

  3. #3
    invitea29b3af3

    Re : MATLAB: Filtre passe-haut (actif) pour compenser filtre passe-bas (passif)

    Oui, effectivement, ce serait trop facile... Je crois que je suis juste en train d'amplifier du bruit.
    Merci !

Discussions similaires

  1. Filtre passe haut actif
    Par invitee82dea49 dans le forum Électronique
    Réponses: 4
    Dernier message: 08/07/2012, 15h58
  2. Aide pour un filtre passe bas et passe haut.
    Par invite8f0ce5da dans le forum Électronique
    Réponses: 12
    Dernier message: 11/09/2011, 14h37
  3. Filtre actif passe-bas/haut ordre 2 (audio)
    Par invited09c82b5 dans le forum Électronique
    Réponses: 0
    Dernier message: 22/02/2011, 18h33
  4. filtre passif : bouchon, passe bande ou passe bas ?
    Par dorad dans le forum Électronique
    Réponses: 9
    Dernier message: 29/04/2010, 10h59
  5. L'air un filtre passe haut/ Cloison un filtre passe bas.
    Par invite92b520e9 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 27/04/2010, 10h39