通过FFT估算PSD

时间:2012-12-03 16:36:42

标签: matlab fft psd

我估计UWB波段中高斯单脉冲的功率谱密度(PSD)。我有两个代码,使用fft。但是y轴存在问题,因为我不知道它的尺寸(我需要以dBm / MHz为单位的PSD)。而且在第一个代码中也应该是一个错误,因为它在y轴上只显示一个值。

Code1

fs=1e11;

g=0.1e-9;

tmax=1e-9;

fftl=2048;


t=(-tmax:1./fs:tmax)';

s=t./(g.^3.*sqrt(2.*pi)).*exp(-t.^2./(2.*g.^2))./2.5e19;

figure(1)

plot(t,s);

xlabel('Time, s');

ylabel('Amplitude, V');

ffts=abs(fft(s,fftl));

ffts=2.*ffts./fftl;

fftp=abs(ffts.*conj(ffts))./2;

fftps=(fftp-30)./1e-6;

f=0:fs./fftl:fs./2-fs./fftl;

figure(2)

plot(f,fftps(1:length(f))),grid;

xlabel('Frequency, Hz');

Code2

fs=1e11;

g=0.1e-9;

tmax=1e-9;

t=(-tmax:1./fs:tmax)';

s=t./(g.^3.*sqrt(2.*pi)).*exp(-t.^2./(2.*g.^2))./2.5e19;

figure(1)

plot(t,s);

xlabel('Time, s');

ylabel('Amplitude, V');

S=fft(s,8192);

f=fs.*(0:4095)./8192;

Pss=S.*conj(S)./8192;

figure(2)

plot(f,Pss(1:4096));

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你的第二张图应该会给你一个单位为V^2/Hz的图。

dBm单位是相对于1 mW的功率测量值,因此您必须知道测量的阻抗。

所以要达到mW / Hz,你需要乘以1e6/R,其中R是你的阻抗。然后取10*log10结果,你就有dBm / Hz。