バターワースのバンドバスフィルタ
16 次查看(过去 30 天)
显示 更早的评论
Fc1=0.5;
Fc2=50;
N = 30;
バターワースでローカット周波数0.5Hz ハイカット周波数60Hzの バンドパスフィルタですが、フィルタの遅延を補正すう方法を教えていただきたいです。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Hd = butter(Fc1,Fc2,N);
freqz(Hd);
filt_data = filter(Hd, buttLoop); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
filt_data = filter(Hd, buttLoop);
filterの関数を
filt_data = filtfilt(Hd, buttLoop);
に変更すればよいのでしょうか。
ノッチフィルタではfiltfiltで上手く補正できたのですが。
このようなエラーが出ます。
エラー: filtfilt (line 78)
入力引数が不足しています。
エラー: tougou3 (line 84)
filt_data = filtfilt(Hd, buttLoop);
もし、ご存知の方がいたら教えてください。
0 个评论
采纳的回答
Hirokazu Tanaka
2018-10-25
Fc1=0.5;
Fc2=50;
N = 30;
Hd = butter(Fc1,Fc2,N);
は、実行すると
エラー: butter (line 62)
カットオフ周波数は (0,1) の区間内になければなりません。
とのエラーになりますが、
Hd = butter(Fc1,Fc2,N);
3 个评论
Hirokazu Tanaka
2018-10-28
y = filtfilt(d,x)
を使う場合は d は digitalFilter オブジェクト である必要があるみたいです。エラーの原因はここかと思います。
見せて頂いた butter 関数を使うと
>> whos Hd
Name Size Bytes Class Attributes
Hd 1x1 dfilt.df2sos
と、digitalFilterオブジェクトではありません。
ちょうど filtfilt関数ページにあるサンプルコードでもバターワースフィルターの例がありますし、
も参考になると思います。
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 デジタル フィルター解析 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!