フィルターのクリア

How can I increase the notch attenuation without changing the bandwidth?

5 ビュー (過去 30 日間)
SSG_newbiecoder
SSG_newbiecoder 2018 年 9 月 5 日
編集済み: SSG_newbiecoder 2018 年 9 月 5 日
I have designed a notch filter of 50Hz cutoff frequency and 8Hz bandwidth and the sampling rate is 1500Hz as shown in the code below. I am getting an attenuation of 28.4dB for an input sinusoidal wave of 50Hz(I took the fft and checked). My bandwidth cannot be greater than this under any circumstances. Is there any way in which I can improve the attenuation for the same cutoff frequency and bandwidth?
Fs = 1500; % Sampling Frequency
t=0:1/Fs:(0.5-1/Fs);
S=sin(2*pi*50*t);
Fnotch = 50; % Notch Frequency
BW = 8; % Bandwidth
[b, a] = iirnotch(Fnotch/(Fs/2), BW/(Fs/2));
fvtool(b,a,2500)
out=filtfilt(b,a,S);

回答 (1 件)

Dimitris Kalogiros
Dimitris Kalogiros 2018 年 9 月 5 日
You can place two similar notch filters in a cascated way:
clc; clear;
%%parameters
Fs = 1500; % Sampling Frequency
t=0:1/Fs:(0.5-1/Fs);
S=sin(2*pi*50*t);
Fnotch = 50; % Notch Frequency
BW = 8; % Bandwidth
%%design filter
[b, a] = iirnotch(Fnotch/(Fs/2), BW/(Fs/2));
fvtool(b,a,2500)
%%two cascated filters
out_temp=filtfilt(b,a,S); %first stage
out=filtfilt(b,a,out_temp); % second stage
  1 件のコメント
SSG_newbiecoder
SSG_newbiecoder 2018 年 9 月 5 日
編集済み: SSG_newbiecoder 2018 年 9 月 5 日
Yes I can. But I am keeping that as a last option. If there is any other way, I want to try it. And there is the problem that unwanted frequencies(48,52 etc.) are very pronounced in the output of the cascaded filter. When we are giving a 50Hz sinusoidal wave the cascaded filter outputs 46 Hz, 48Hz ,52 Hz etc in the range of 17mV. I'm planning to apply the filter on ECG signals and I'm worried the signal might be completely altered by these.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeFilter Banks についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by