logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Filtracja IIR i ujemne wsp. mianownika

janiewiem 07 Lut 2009 02:55 1866 2
REKLAMA
  • #1 6114394
    janiewiem
    Poziom 11  
    Witam,

    Napisałem skrypt, w którym filtruję sygnał filtrem IIR opisanym współczynnikami w macierzach 'a' i 'b'. Robię to wg wzoru:

    Filtracja IIR i ujemne wsp. mianownika

    Jednak zamiast + przy współczynnikach a(i) muszę dawać - . Czy ktoś wytłumaczy mi dlaczego? Oto ten skrypt:

    szum_out = []
    
    k = length(b);      // ilość wspólczynnikow
    
    for i=1:size(szum_plik)     // dla kazdej probki
    pr = 0;
     
    % wsp. b
    for j=1:k
        if(j>i) break; end;
            
       pr = pr + b(j)*szum_plik(i-j+1);
        end
       
    % wsp. a
    for j=2:k
        if(j>i || i==1) break; end
            
       pr = pr - a(j)*szum_out(i-j+1);
        end
      
    szum_out = [szum_out; pr];
    
    end
    
  • REKLAMA
  • #2 6117994
    __Grzegorz__
    Poziom 30  
    Transmitancja filtru jest

    
    y     b0 + b1 * z^-1 + b2*z^-2
    - = --------------------------
    x     a0 + a1 * z^-1 + a2*z^-2
    


    czyli

    
    y*a0 + y*a1*z^-1 + y*a2*z^-2 = x*b0 + x*b1*z^-1 + x*b2*z^-2
    


    czyli

    
    y*a0 = x*b0 + x*b1*z^-1 + x*b2*z^-2 - y*a1*z^-1 - y*a2*z^-2 
    


    z^-1 - oznacza opóźnienie o 1 próbkę
    z^-2 - opóżnienie o 2 próbki...

    nieprawdaż ? :)
  • #3 6118004
    janiewiem
    Poziom 11  
    Oj Grzegorzu, cóż ja bym bez Ciebie zrobił :) Rzeczywiście, teraz to widze :}
REKLAMA