0001 function yc = notchFilter(varargin)
0002
0003
0004
0005
0006
0007
0008
0009 if nargin == 1
0010 y = varargin{1};
0011 else
0012 y = varargin{1};
0013 fstopE = varargin{2};
0014 end
0015
0016
0017 fstop = [...
0018 2.36 2.44;
0019 3.596 3.604;
0020 4.76 4.84;
0021 7.16 7.24;
0022 8.36 8.44;
0023 ...
0024 19.92 20.04;
0025 39.9 40.1];
0026 if nargin > 1
0027 fstop = [fstop; fstopE];
0028 end
0029
0030 for k=1:50
0031 fstop = [fstop; k-0.02 k+0.02];
0032 end
0033
0034
0035
0036
0037
0038 fs = 100;
0039 Y = fftshift(fft(y),1);
0040 f = [-size(Y,1)/2:size(Y,1)/2-1]*fs/size(Y,1);
0041 f = f(:);
0042
0043 Istop = zeros(size(f));
0044 for k=1:size(fstop,1)
0045 Istop = Istop | (abs(f) < fstop(k,2) & abs(f) > fstop(k,1));
0046 end
0047 Y(Istop,:) = 0;
0048
0049 yc = (ifft(fftshift(Y,1)));
0050
0051 end