波形解析の際のban​dpassfilte​rの使用について

조회 수: 16 (최근 30일)
R
R 2020년 5월 28일
댓글: R 2020년 6월 1일
波形処理のために以下のコードでフィルタリングをしようとしています.
y=bandpass(x,[50 450],fs)
しかし,
エラー: signal.internal.filteringfcns.parseAndValidateInputs (line 62)
入力データは、有限で非スパースの、倍精度または単精度のベクトルまたは行列でなければなりません。
エラー: bandpass (line 103)
opts = signal.internal.filteringfcns.parseAndValidateInputs(x,'bandpass',varargin);
というエラーが出てしまいました.
ヘルプセンターのコードを基に作成したのですが...うまくいきませんでした.
教えていただけますと幸いです.よろしくお願いします.

답변 (1개)

Shunichi Kusano
Shunichi Kusano 2020년 5월 29일
エラーメッセージを見ると「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
Shunichi Kusano
Shunichi Kusano 2020년 5월 30일
편집: Shunichi Kusano 2020년 5월 30일
NaNは考えていませんでした。確かにNaNを入れると同じエラーが出ましたので、それが原因だと思います。
数行ということでしたら解決策としては、fillmissing関数を使ってNaNを別な値に置き換える、もしくはliveeditorのタスク機能の「欠損データの削除」でも同じことができます(内部では同じ処理)。後者の方が、置き換え後のデータを確認しながらインタラクティブに処理できるのでおすすめです。
R
R 2020년 6월 1일
liveeditorを用いて欠損地の置き換えを行ったところ,無事フィルタをかけることができました.お忙しいところ,ご回答いただき本当にありがとうございました.

댓글을 달려면 로그인하십시오.

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!