filtfiltの動作する方向について
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
filtfiltの動作する方向について質問です.
data.matのように各列ごと,時系列データが保存されています.
このデータを各列ごとにフィルタ処理したいと考えております.質問は下記2点です.
・filtfiltでのフィルター処理は行方向,列方向,どちらの方向に動作してますでしょうか?
・もし行方向に動作しているとしたら,列方向に動作させる方法はございますでしょうか?
ご回答どうぞよろしくお願いいたします.
load data.mat
sampling_rate = 200;
cutoff_frequency = 12;
filter_order = 4;
[b, a] = butter(filter_order, cutoff_frequency / (0.5.*sampling_rate), 'low');
filt_data = [data(:,1:2) filtfilt(b, a, data(:,3:end))]
0 commentaires
Réponse acceptée
Hernia Baby
le 20 Août 2023
海外でも同じような質問来てましたね
動作する方向について
ドキュメントにもあるように
関数は、x が行ベクトルでなければ、x の最初の配列次元に沿って動作します。x が行ベクトルである場合は、2 番目の次元に沿って動作します。
つまり、行方向にフィルタがかかっています。
列方向に動作させる方法
これは転置を使えば解決します。
transpose, .' をご参考ください。
a = [1,2;3,4]
b = a'
2 commentaires
Hernia Baby
le 20 Août 2023
Modifié(e) : Hernia Baby
le 20 Août 2023
よく見たらご本人様でしたね。
ご理解の通り、基本は各列ベクトルにかかってるみたいです。
行ベクトルのときのみ、列方向にフィルタがかかります。
他の関数であればオプションに方向を決めるものがあるのですが、この関数にはありません。ですので転置などで入力値を変換する必要があります。
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur 平滑化とノイズ除去 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!