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

조회 수: 25 (최근 30일)
N/A
N/A 2019년 11월 1일
댓글: N/A 2019년 11월 5일
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にかけたあとの信号を逆フーリエ変換することが出来ますか?ご回答お待ちしております。

채택된 답변

Yoshio
Yoshio 2019년 11월 2일
편집: Yoshio 2019년 11월 2일
理想的な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
Yoshio
Yoshio 2019년 11월 3일
편집: Yoshio 2019년 11월 3일
まず
フーリエ変換を見て、例題をコピーして実行し理解してみてください。
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にすべきか検討できると思います。頑張ってください。
N/A
N/A 2019년 11월 5일
ご回答頂きありがとうございました。プログラムをつくることが出来ました。

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 スペクトル測定에 대해 자세히 알아보기

태그

제품


릴리스

R2017a

Community Treasure Hunt

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

Start Hunting!