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

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にかけたあとの信号を逆フーリエ変換することが出来ますか?ご回答お待ちしております。

 Réponse acceptée

Yoshio
Yoshio le 2 Nov 2019
Modifié(e) : Yoshio le 2 Nov 2019

0 votes

理想的な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 commentaires

N/A
N/A le 2 Nov 2019
ご回答頂きありがとうございます。
LPFに通した後の信号のグラフ(横軸:時間、縦軸:電圧)を出力することは物理的に出来ないのですか?
Yoshio
Yoshio le 2 Nov 2019
Modifié(e) : Yoshio le 2 Nov 2019
特性を計算してプロットすることは可能です。 フィルタを物理的に実現出来ないので、プロット結果にどの様な意味があるかはお考え下さい。
N/A
N/A le 3 Nov 2019
ご回答頂きありがとうございます。
理想的なLPFそのものは物理的に実現することは出来ませんが、手順1~3に沿ってプログラムを作成することで理想的なLPFに通した後の信号を出力することは出来ると思います。
「10MHz ~ サンプリング周波数/2に相当するXの要素」を見つけるプログラムを書くことが出来ませんでした。お手数ですが、手順2までのプログラムを教えて頂けませんか?
Yoshio
Yoshio le 3 Nov 2019
Modifié(e) : Yoshio le 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にすべきか検討できると思います。頑張ってください。
N/A
N/A le 5 Nov 2019
ご回答頂きありがとうございました。プログラムをつくることが出来ました。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur フーリエ解析とフィルター処理 dans Centre d'aide et File Exchange

Produits

Version

R2017a

Tags

Community Treasure Hunt

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

Start Hunting!