波形解析の際のbandpassfilterの使用について
18 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
波形処理のために以下のコードでフィルタリングをしようとしています.
y=bandpass(x,[50 450],fs)
しかし,
エラー: signal.internal.filteringfcns.parseAndValidateInputs (line 62)
入力データは、有限で非スパースの、倍精度または単精度のベクトルまたは行列でなければなりません。
エラー: bandpass (line 103)
opts = signal.internal.filteringfcns.parseAndValidateInputs(x,'bandpass',varargin);
というエラーが出てしまいました.
ヘルプセンターのコードを基に作成したのですが...うまくいきませんでした.
教えていただけますと幸いです.よろしくお願いします.
0 commentaires
Réponses (1)
Shunichi Kusano
le 29 Mai 2020
エラーメッセージを見ると「bandpass関数で扱えるデータが入力されていません」っていう注意ですね。ですのでコードのxが、ベクトルか行列の形になっているか、型がsingleかdoubleになっているか、といったことを確認してみてください。
下記にご参考までのコードを載せておきます。
t = [0:0.01:10];
x = sin(2*pi*1*t) + 0.5*cos(2*pi*4*t);
ismatrix(x) % 行列(ベクトル)かの確認
class(x) % xの型の確認
filt_x = bandpass(x,[2 5],100);
plot(t,x,t,filt_x);
3 commentaires
Shunichi Kusano
le 30 Mai 2020
Modifié(e) : Shunichi Kusano
le 30 Mai 2020
NaNは考えていませんでした。確かにNaNを入れると同じエラーが出ましたので、それが原因だと思います。
数行ということでしたら解決策としては、fillmissing関数を使ってNaNを別な値に置き換える、もしくはliveeditorのタスク機能の「欠損データの削除」でも同じことができます(内部では同じ処理)。後者の方が、置き換え後のデータを確認しながらインタラクティブに処理できるのでおすすめです。
Voir également
Catégories
En savoir plus sur Butterworth 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!