I need to filter 9 Hz from a signal sampled by 256 Hz using a linear phase filter.
If someone can bring an explanation or a code example I would greatly appreciate it.
I have tested his code
function [Hd1,Hd2]=NotchFIR(FS,F0,FG,FGAINdB) % Design
if (F0 > FS/2)
warnstr =['WARNING! The Sampling frequency is less than twice the notch frequency. Response will be inaccurate.']
end
if (FG == F0)
warnstr =['WARNING! User should not set the gain of the notch frequency. Response will be inaccurate.']
end
FGAIN = 10^(FGAINdB/20);
w0 = 2*pi*F0/FS;
wg = 2*pi*FG/FS;
GH = abs(1 - 2*cos(w0)*exp(-j*wg) + exp(-j*2*wg));
G = FGAIN/GH;
h = [1 -2*cos(w0) 1];
freqz(G*h,100,[], FS);
Hd1=G*h;
Hd2=100; end
t=0:1/256:1;
y=sin(2*pi*9*t); [Hd1,Hd2]=NotchFIR(256,8.9,9.1,1)
x=filter(Hd1,Hd2,y);
figure
plot(t,x);
But the frequency response of the digital filter shows that the selection of the notch frequency wasn't sharp and many frequencies were attenuated.