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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren