私はfft()
を計算し、周波数依存の感度であるM(f)
で除算した時間変化信号(基本周波数と高調波数)を持っています。私はその後、信号を時間的に変化し得るが、ためにifft()
を使用して時間領域に戻って変換したいifft()
MATLAB:ifftを使用して元の信号を抽出する
p(t) = ifft(fft(v(t)./M(f))
がifft()
は、私がここで何を考えてやっていないです。:すなわちを動作するようには思えないのですか?
% v(t)
t=0:0.1:10;
a=sin(t);
subplot(1,5,1); plot(t,a);
title('1. time domain');
xlabel('t [s]')
ylabel('p.d. [v]')
hold on;
% fft(v(t))
T = t(2); % Sampling period
Fs=1/T;
L = length(t); % Length of signal
Y = fft(a);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(L/2))/L;
subplot(1,5,2); plot(f,P1);
title('2. frequency domain (fft(vt))')
xlabel('f [Hz]')
ylabel('magnitude')
%frequency responce (sensitivity), M(f)
resp=ones(1,length(f)); %1=1
subplot(1,5,3); plot(f,resp);
title('3. Simulated sensitivity (M(f))')
xlabel('f [Hz]')
ylabel('v/p')
% fft(v(t))./M(f)
fftResp=P1./resp;
subplot(1,5,4); plot(f,fftResp);
title('4. fft(v(t))./M(f)')
xlabel('f [Hz]')
ylabel('fft(v(t))/M(f)')
%Inverse fft, p(t) = ifft(fft(v(t)./M(f)))
pt = real(ifft(fftResp));
subplot(1,5,5); plot(pt);
title('5. time domain (ifft)')
xlabel('t [s]')
ylabel('p.d. [p]')
結果:M(F)でhttps://www.dropbox.com/s/18tqeyqey2pc5te/SOfigure.png?dl=0
=
****私はこれを理解しようとするには、次のコードを書かれている***
のフォローアップすべての周波数で1つ前の時間領域の信号(図1)と等しくなるように最終的な結果が期待されますが(図1)、それはありませんか? 2番目のFFT(図3)は最初のもの(図2)に相当します。
V(t)は./ M(f)は - それは – GameOfThrows
申し訳ありませんが、私はすでにそれをやっていた行う必要があります。他にも問題があります。私は時々変化する信号を期待していますが、これを入手してください:https://www.dropbox.com/s/18tqeyqey2pc5te/SOfigure.png?dl=0 – 2one
問題を再現できない場合、あなたがしたことを知ることは本当に難しいです。あなたがそれをプロットしているのと同じですか? 'ifft(fft(vector))'はあなたに正しい解を与えるべきです – GameOfThrows