Time-domain frequency filter

14 ビュー (過去 30 日間)
Henry
Henry 2012 年 4 月 16 日
I have a set of time-domain data that I wish to filter. I need to use some sort of notch filter so as no delay occurs as a result of the filtering. I only want to use the data with frequencies between 0 and 3 hz to analyse afterwards. The end result must be in the time-domain - I have tried converting to the frequency domain, selecting the appropriate frequencies and then transferring back into the time-domain, which it does not let me do.
How do I perform this procedure totally in the time-domain?

採用された回答

Wayne King
Wayne King 2012 年 4 月 16 日
An example (requires Signal Processing Toolbox)
d = fdesign.lowpass('Fp,Fst,Ap,Ast',3,4,0.5,50,10);
Hd = design(d);
output = filtfilt(Hd.Numerator,1,inputdata);

その他の回答 (3 件)

Wayne King
Wayne King 2012 年 4 月 16 日
Sounds like you just need a lowpass filter since you want to only analyze data below 3 Hz. What is your sampling frequency?
You can do what you want by designing your filter using fdesign.lowpass and then using filtfilt() to filter the data.
filtfilt() implements zero-phase filtering and operates in the time domain and returns time-domain data.
  1 件のコメント
Henry
Henry 2012 年 4 月 16 日
my sampling rate is 10Hz, thanks for your help

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


Henry
Henry 2012 年 4 月 16 日
What is the 0.5 and 50 stand for in the design?

Eshwar Sachi
Eshwar Sachi 2012 年 5 月 3 日
As indicated in the function, 0.5 is the pass band ripple and 50 is the stop band attenuation, in units dB. You may find the following link useful for designing filters in MATLAB: http://www.mathworks.com/discovery/filter-design.html

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by