Notchfilter

Gast #253339
Lesenswert?
• ▲
▼
Hallo,

lieber nicht mit YEAHs Version probieren, die ist etwas buggy.

Entweder so:

fs=1000;f1=50;
w0=2*pi*f1/fs;
r=cos(w0);
i=sin(w0);
r1=0.99*r;
i1=0.99*i;
j=sqrt(-1);
b=conv([1 -r-j*i],[1 -r+j*i]);
a=conv([1 -r1-j*i1],[1 -r+j*i1]);

oder so (fs Samplingf., fn Notchf., r<1 'Breite' des Notch)

fs=1000;
fn=50;
w=2*pi*fn/fs;
j=sqrt(-1);
r=0.9;
b=poly([  exp(j*w)   exp(-j*w)])
a=poly([r*exp(j*w) r*exp(-j*w)])
plot(20*log10(abs(freqz(b,a,fs/2))))

oder auch so (Matlab in Richtung C bis auf die Indizes)


b1= -2*cos(w);
a1= -r*2*cos(w);
a2= r*r;

n=1000;
x=zeros(1,n);
y=zeros(1,n);
for(k=0:n-1) x(k+1)=sin(2*pi*k*fn/fs);end;
z1=0;z2=0;
for(k=0:n-1)
    r=a1*z1+a2*z2;
    y(k+1)=x(k+1)-r+b1*z1+z2;
    z2=z1;
    z1=x(k+1)-r;
end;


Cheers
Gast #807065
Lesenswert?
• ▲
▼
Hi Detlev,


ich musste auch ein Notch-Filter entwerfen. Der Beispiel-Code ist sehr 
gut. Ich habe die Bandbreite und den Q-Faktor noch nicht verstanden, 
auch noch nicht von der Literatur.

Meine Daten sind:

fc=50Hz (Notch-Frequenz)
fs=1kHz

Kannst du uns das bitte erklären?

Danke!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.