0

30ns 以上のケイデンス シミュレーションから取得した電流信号 (csv で抽出) があります。DC オフセットを削除し、FFT の前にウィンドウ関数を適用しました。そして で正規化されたFFT sqrt(N)。で目的のスペクトルの中心にゼロ周波数成分をシフトしましfftshift(X)た。念願のFFTができました。また、元のウィンドウ信号に戻したいのですがifft、ウィンドウ信号が表示されず、使用したウィンドウ関数のバージョンのみが表示されます。私のサンプル信号は複雑ではありません。

別の質問があります。FFT前とFFT後の私のパワーは同じです。Parseval の定理を示すために、どのようにグラフをインテリジェントな方法で表示できますか?

FFT と IFFT

また、csv をアップロードしてベクトルを作成することなく、MATLAB コードを追加しました。私のy価値はCurrent_wo_dc

MATLAB コード:

N = length(Current_wo_dc);
ts = 1.0e-12;
Fs = 1/ts;
tmax = (N-1)*ts;
tm = 0:ts:tmax;
f = -Fs/2:Fs/(N-1):Fs/2;

fn=hanning(N);  % hanning window function
Z = Current_wo_dc'.*fn; 

Power_Z = sum(Z.^2); % power in time domain

%FFT
fftY = fft(Z);
y = fftshift(fftY);
Y = abs(y);
a3 = Y/sqrt(N);

Power_fftY = sum(fftY.*conj(fftY))/length(fftY); % power in frequency domain

%IFFT:
I = ifftshift(fftshift(Z));
II = I*sqrt(N);

%PSD
psd = a3.^2;
psd_db = 10*log10(psd);

subplot(311), plot(Z); % windowed signal
subplot(312), plot(a3); % fft across frequency bin not shifted along frequency
subplot(313), plot(II); % ifft 
4

0 に答える 0