HOW TO DESIGN AN IIR Low PASS FILTER WITH MATLAB
23 ビュー (過去 30 日間)
古いコメントを表示
I have asked this type of questions many times but can you give me the matlab code for designing a lowpass IIR filter.
thankyou in advance
0 件のコメント
回答 (2 件)
Wayne King
2012 年 5 月 10 日
Hi Raj, you can either use basic functions like butter(), cheby1()
For example:
Lowpass filter for data sampled at 10 kHz, passband below 1 kHz
Wc = (2*1e3)/1e4;
[B,A] = butter(10,Wc);
% view magnitude response
fvtool(B,A,'Fs',1e4)
Or something like:
[B,A] = cheby1(10,0.5,Wc);
% view magnitude response
fvtool(B,A,'Fs',1e4)
Or you can use the fdesign workflow. Using fdesign.lowpass
Fs = 1e4;
d = fdesign.lowpass('N,F3dB',10,1000,Fs);
Hd = design(d,'butter');
fvtool(Hd)
There are a number of specification strings for fdesign.lowpass that support IIR designs. After you specify a filter, you can use
designmethods(d)
to see which design methods are supported.
2 件のコメント
Fathima Bareeda
2021 年 12 月 14 日
how to pass this filter through a matlab in built sound signal splat
Wayne King
2012 年 5 月 10 日
You can easily design an FIR filter, or use the impulse response from the filters above, and then use linear prediction on those coefficients (or impulse response). The problem you are going to have is choosing the order. It won't take a very large AR order at all before you start getting a peaky response, which isn't going to match your filter's frequency response very well at all.
Wc = (2*1e3)/1e4;
[B,A] = butter(10,Wc);
h = impz(B,A);
A1 = lpc(h,2);
fvtool(1,A1,'Fs',1e4);
Or starting with an FIR filter
d = fdesign.lowpass('Fp,Fst,Ap,Ast',1e3,1.1e3,0.5,40,Fs);
Hd = design(d);
Afilt = lpc(Hd.Numerator,1);
fvtool(1,Afilt,'Fs',1e4)
参考
カテゴリ
Help Center および File Exchange で Digital Filter Design についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!