我有一个电流信号(在 csv 中提取),我从节奏模拟中获得了 30ns 的时间。我在 FFT 之前移除了 DC 偏移并应用了窗口函数。并将 FFT 归一化sqrt(N)
。我已经将零频率分量移动到我想要的频谱的中心fftshift(X)
。我得到了我想要的 FFT。我也想回到我原来的窗口信号,ifft
但它没有显示我的窗口信号,而是只显示我使用的窗口函数的一个版本。我的样本信号真实而不复杂。
我有另一个问题。我在 FFT 之前和 FFT 之后的能力是一样的。如何以智能的方式在图表中显示 Parseval 的定理?
我还添加了我的 MATLAB 代码,没有上传 csv 和制作向量。我的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