MATLAB Answers

低域通過フィルタについて

32 ビュー (過去 30 日間)
N/A
N/A 2019 年 10 月 29 日
コメント済み: N/A 2019 年 10 月 31 日
Trace_1.mat ( 横軸:時間(s)、縦軸:電圧値(V)のデータ ) に
理想的な低域通貨フィルタ (周波数が10MHz以下なら利得あり、10MHzより大きければ利得0) をかけたいです。
そこで、 matlabのコマンドウィンドウにて、「y = lowpass(Trace_1,10e+6)」とプログラムを入力しましたが、「関数 'lowpass' (タイプ'double' の入力引数) が未定義です。」というエラーが出てきました。どのようにコマンドを入力すれば低域通過フィルタがかけられますか?ご回答頂けたら幸いです。

採用された回答

Shoumei
Shoumei 2019 年 10 月 30 日
なんでimbinarizeなどが必要なのかわかりませんが、フィルタの使い方が間違っているのが原因です。
まず、理想的なフィルタは存在しません。LPFであれば通過帯域から遮断帯域までの肩特性は斜めに下がっていきますし、遮断帯域の信号の振幅は0にはなりません。
Junyaさんのデータは、1列目が時間軸データ、2列目が振幅データとなっているようですが、lowpassコマンドの1つ目の引数に時間軸データは必要ありませんので、振幅データのみを入力する必要があります。
信号は10MHzの信号と高調波ノイズで構成されているようですが、この高調波ノイズを除去したいのでしょうか?このように書くと良いのでは?
% 入力信号を表示
subplot(2,1,1),plot(Trace_1(:,1), Trace_1(:,2))
% フィルタリング
y = lowpass(Trace_1(:,2),10^6,10^7);
% フィルタリングされた信号を表示
subplot(2,1,2),plot(Trace_1(:,1), y)
フィルタの特性を理想に近づけたく、肩特性を急峻にしたい場合はSteepnessパラメータを1に近い値にします。
y = lowpass(Trace_1(:,2),10^6,10^7, 'ImpulseResponse','iir','Steepness',0.96);
subplot(2,1,2),plot(Trace_1(:,1), y)
使い方はドキュメントに載っているのでドキュメントをよく読みましょう。
doc lowpass
  1 件のコメント
N/A
N/A 2019 年 10 月 31 日
ご回答頂きありがとうございます。
R2018aでプログラムを実行したところ、「関数 'lowpass' (タイプ'double' の入力引数) が未定義です。」というエラーが消え、LPFにかけることが出来ました。

サインインしてコメントする。

その他の回答 (1 件)

Yoshio
Yoshio 2019 年 10 月 29 日
lowpass のドキュメントを参考に、Trace_1.mat の中から電圧波形データを取り出して、lowpassの関数に入力しましょう。今の場合
y = lowpass(x,fpass,fs) は、xfs Hz のレートでサンプリングするよう指定します。fpass は Hz 単位でのフィルターの通過帯域周波数です。
を使うのが便利そうです。
  5 件のコメント
N/A
N/A 2019 年 10 月 31 日
ご回答頂きありがとうございます。
% 入力信号を表示
subplot(2,1,1),plot(Trace_1(:,1), Trace_1(:,2))
% フィルタリング
y = lowpass(Trace_1(:,2),10^6,2e+9, 'ImpulseResponse','iir','Steepness',0.999);
% フィルタリングされた信号を表示
subplot(2,1,2),plot(Trace_1(:,1), y)
というプログラムをR2018aで実行したところエラーが出ませんでしたが,R2017aとR2016bで実行したところ、「関数 'lowpass' (タイプ'double' の入力引数) が未定義です。」というエラーがでました。R2018aにてコマンドウィンドウにwhich lowpassで検索したところ、「C:\Program Files\MATLAB\R2018a\toolbox\signal\signal\lowpass.m」と帰ってきたので、R2017aとR2016bにはlowpass関数自体が入ってないと思われます。
また、plot(t,x)でプロットしたところ、1周期あたりの時間が0.1μsだったので10MHzの正弦波であると思います。

サインインしてコメントする。

タグ

製品


リリース

R2017a

Community Treasure Hunt

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

Start Hunting!