バタワースフィルター (LPF) の周波数スペクトルの書き方

24 ビュー (過去 30 日間)
N/A
N/A 2019 年 10 月 30 日
コメント済み: N/A 2019 年 10 月 31 日
以下は、バタワースフィルター(LPF)のプログラムです。Trace_1は10MHzのsin波のデータ(横軸:時間、縦軸:電圧)です。
x1=Trace_1;
fc=1*10^6;%フィルターのカットオフ周波数
fs=100*10^6;%サンプリング周波数
[b,a]=butter(50,fc/(fs/2));
%freqz(b,a)
x2=filter(b,a,x1);
plot(x2);
バタワースフィルターとx2 (バタワースフィルターにx1を通した後の信号) の周波数スペクトル ( 横軸:周波数(Hz)、縦軸:利得(dB) )の出力方法を教えていただけませんか?ご回答お待ちしております。
  1 件のコメント
Yoshio
Yoshio 2019 年 10 月 31 日
t = Trace_1(:,1);
x = Trace_1(:,2);
plot(t,x)
fs = 1/(t(2)-t(1))
fs =
2.0000e+09
となっていますので、サンプリング周波数の設定は2GHzだと思います。
またfilter(b,a,x1)としていまうと、時系列ベクトルtまでフィルタすることになります。

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

採用された回答

Yoshio
Yoshio 2019 年 10 月 31 日
先のコメントにも書きましたが、まずご自身のデータTrace_1について理解してください。その上で以下のプログラムが参考になればと思います。
t = Trace_1(:,1);
x = Trace_1(:,2);
plot(t,x)
fs = 1/(t(2)-t(1))
fc = 10^6;
[b,a]=butter(3,fc/(fs/2));
freqz(b,a)
y=filter(b,a,x);
figure
plot(t,[x y]);
grid on;
legend('x','y')
figure
[p,f] = pspectrum([x y],fs);
plot(f,pow2db(p))
grid on
xlabel('Frequency (Hz)')
ylabel('Power Spectrum (dB)')
  1 件のコメント
N/A
N/A 2019 年 10 月 31 日
ご回答頂きありがとうございます。
周波数スペクトルを出力することが出来ました。

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

その他の回答 (0 件)

タグ

製品


リリース

R2017a

Community Treasure Hunt

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

Start Hunting!