grundlegender Bandpassfilter

  • Ich versuche, ein grundlegendes Bandpassfilter zu implementieren, aber die Mittenfrequenz meines Filters scheint irrelevant zu sein, da ich alles ändern kann, was ich möchte, aber es hat keine Auswirkungen auf den Filter gehe ich falsch?

    Ich habe meine Berechnungen hier in der Hoffnung gegeben, dass jemand aufzeigen kann, wo ich einen Fehler mache.

     Filter specs:
    supression of DC and Fs/2 (zeroes at +1 and -1)
    center frequency at pi/4
    bandwith of pi/16
    
    2(1-R)=pi/2
    1-R=pi/32
    R=(pi/32)-1
    R=-0.9018252296
    
     K*(z-1)*(z+1)
    ---------------
    z-R*cos(pi/4)+R
    
         K*(z^2 -1)
    -------------------
    z^2-R^2*cos(pi/4)+R
    
    all leading to a difference equation of
    
    Y[n]=R^2*cos(pi/4)*Y[n-1]-R*Y[n-2]+K*(X[n]-X[n-2])
     
    19 June 2012
    Gurba
1 answer
  • Ihr Nenner ist falsch. Es sollte sich in diesem Formular befinden.

    $$ (1-z_0z ^ {- 1}) (1-z_0 ^ * z ^ {- 1}) = 1- 2R \ cos (\ phi) z ^ {- 1} + R ^ 2z ^ {- 2} $$ wobei $ z_0 = Re ^ {j \ phi} $.

    Wenn Sie DC auf einfache Weise blockieren und einen Anti-Aliasing-Filter erstellen möchten, würde ich empfehlen, keine komplexen Pole zu verwenden. Verwenden Sie stattdessen das hier ausführlich beschriebene Verfahren: http://www.dsprelated.com/showmessage/ 172787 / 1.php .

    Es bietet sogar eine C-Implementierung.

    20 June 2012
    niaren