MATLAB Answers

ai
0

LPFに通した信号の逆フーリエ変換について

Asked by ai
on 1 Nov 2019
Latest activity Commented on by ai
on 1 Nov 2019
Trace_1をフーリエ変換した後にLPFにかけるプログラムを作成しました。LPFに通した信号を逆フーリエ変換する方法 (横軸:時間、縦軸:電圧のグラフを書く方法) を教えて頂けませんか? ご回答をお待ちしております。
t = Trace_1(:,1);
x = Trace_1(:,2);
L1 = t(end)-t(1);
fs = 1/(t(2)-t(1));%サンプリングレート
L2 = fs*L1;%信号の総サンプル数
fc = 1*10^6;%LPFの値
y = fft(x);
P2 = abs(y/L2);
P1 = P2(1:L2/2+1);
P1(2:end-1) = 2*P1(2:end-1);
j = 1;
for f=0:(fs/L2):(fs/2)
e1(j)=f;
if f <= fc
P1(j) = P1(j);
end
if f > fc
P1(j) = 0*P1(j);
end
j=j+1;
end
P1(2:end-1) = 0.5*P1(2:end-1);
P2 = P1(1:L2/2+1);

  4 Comments

Show 1 older comment
ai
on 1 Nov 2019
ご回答頂きありがとうございます。
butterなどの関数を使わずに、 「フーリエ変換→LPF→逆フーリエ変換」してTrace-1にLPFをかける方法はありますか?
Yoshio
on 1 Nov 2019
当初のトピックと異なる質問となりますので、別途ご質問ください。
その際は、「butterなどの関数を使わずに」の意味がよくわからないので具体的に何をやりたいか記載願います。
ai
on 1 Nov 2019
別途質問を作成しました。何度も質問して申し訳ありません。ご回答頂けると幸いです。

Sign in to comment.

Tags

Products


Release

R2017a

1 Answer

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

逆フーリエ変換関数はこちらに説明があります。
フィルタを通した信号が複素周波数信号として得られているなら、単純にifftを行えば良いと思います。
フィルタを通さない場合
t = Trace_1(:,1);
x = Trace_1(:,2);
y = fft(x);
z = ifft(y);
max(abs(x-z))
plot(t,x-z)
となり計算誤差内で元の信号に戻ります。

  0 Comments

Sign in to comment.