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

14 次查看(过去 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 个评论
Yoshio
Yoshio 2019-10-30
编辑:Yoshio 2019-10-30
コマンドウィンドウに
which lowpass
と入れて、何が帰ってきますか?
なお y = lowpass(x,fpass,fs) のfsは、信号xのサンプル周波数ですでに決まっていますから、
t = Trace_1(:,1);
x = Trace_1(:,2);
fs = 1/(t(2)-t(1))
fs =
2.0000e+09
すなわち、2GHzを設定すべきだと思います。
plot(t,x)
でプロットして、正しく信号が10Mzの正弦波であることを確認してみてください。
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の正弦波であると思います。

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 振動解析 的更多信息

标签

产品


版本

R2017a

Community Treasure Hunt

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

Start Hunting!