MATLAB Answers

ai
0

理想的な低域通過フィ​ルタにかけた信号のグ​ラフ(横軸:時間、縦​軸:電圧)について

Asked by ai
on 1 Nov 2019
Latest activity Commented on by ai
on 5 Nov 2019
Trace_1は「Trace_1(:,1):時間、Trace_1(:,2):電圧」になっています。
Trace_1を理想的なLPF( 周波数が10MHz以上なら利得が0 )にかけた時の「Trace_1のグラフ(横軸:時間、縦軸:電圧)」を出力したいです。
butter(https://jp.mathworks.com/help/signal/ref/butter.html)やlowpass(https://jp.mathworks.com/help/signal/ref/lowpass.html)を使うと理想的なLPFが出来ないので次のような方法で理想的なLPFを作成し、LPFに通した後の信号を逆フーリエ変換することを検討しています。
手順1 Trace1をフーリエ変換する。
手順2 周波数が10MHz以上なら利得0にする。(理想的なLPFの作成)
手順3 LPFにかけた信号を逆フーリエ変換する。(横軸:時間、縦軸:電圧)
どのようにプログラムをかけば、理想的なLPFにかけたあとの信号を逆フーリエ変換することが出来ますか?ご回答お待ちしております。

  0 Comments

Sign in to comment.

Tags

Products


Release

R2017a

1 Answer

Yoshio
Answer by Yoshio
on 2 Nov 2019
Edited by Yoshio
on 2 Nov 2019
 Accepted Answer

理想的なLPFは、物理的に実現できないので、どのような意味があるかはわかりませんが、実現できたと想定した場合の特性は計算はできると思います。
x = Trace_1(:,2)として
手順1 xのフーリエ変換X = fft(x)を求めます
手順2 周波数信号Xの内、10Mz ~ サンプリング周波数/2 に相当する要素に0をいれ、Xfilterとします。
手順3 この信号の逆フーリエ変換をy = ifft(Xfilter)として求めます。
フーリエ変換を参考にされてください。
注意する点は手順2で、フーリエ変換Xには正の周波数と負の周波数の部分があるので、負の(10Mz ~ サンプリング周波数/2)の部分にも忘れずに0を入れないと、結果の信号yが実数になりません。

  5 Comments

ai
on 3 Nov 2019
ご回答頂きありがとうございます。
理想的なLPFそのものは物理的に実現することは出来ませんが、手順1~3に沿ってプログラムを作成することで理想的なLPFに通した後の信号を出力することは出来ると思います。
「10MHz ~ サンプリング周波数/2に相当するXの要素」を見つけるプログラムを書くことが出来ませんでした。お手数ですが、手順2までのプログラムを教えて頂けませんか?
Yoshio
on 3 Nov 2019
まず
フーリエ変換を見て、例題をコピーして実行し理解してみてください。
y = fft(x);
f = (0:length(y)-1)*50/length(y);
の部分がヒントです。 この例でたとえば40Hz以上のyの振幅を0にするには、yの該当する要素のどこに0をいれるか、と同じ問題です。この例を理解できたら、
x = Trace_1(:,2)
X = fft(x);
% f 軸を設定する
plot(f,abs(X))
とすることで、10Mzの信号が正しく(2本)プロットされるはずですし、Xのどの要素を0にすべきか検討できると思います。頑張ってください。
ai
on 5 Nov 2019
ご回答頂きありがとうございました。プログラムをつくることが出来ました。

Sign in to comment.