MATLAB: Using iirnotch for more than one frequency

frequenciesiirnotchmultiple

I'm currently using iirnotch to filter out 120Hz as seen here
Wo = 120/(960/2); BW = Wo/35;
[b,a] = iirnotch(Wo,BW);
figure;
Y = filter(b,a,noisyEMG);
plot(Y);
figure;
pwelch(Y);
But I also need to filter 240Hz, do I need to run it through iirnotch again or is there an easier way?

Best Answer

Fs = 960;
Fc = [ 120 240 ];
Wc = Fc/(Fs/2);
BW = Wc/35;
mycomb = zeros(2,6);
[b,a] = iirnotch(Wc(1),BW(1));
mycomb(1,:) = [b,a];
[b,a] = iirnotch(Wc(2),BW(2));
mycomb(2,:) = [b,a];
Y = sosfilt(mycomb,noisyEMG);
Related Question