如何在模拟频率上正确表达周期图?

信息处理 fft 功率谱密度
2022-02-01 07:56:48

假设一个信号x[n]N样品及其N点FFTX[k]. 还假设最简单的功率谱密度估计器:

Sx[k]=|X[k]|2N

使用这个估计器,平均总功率可以评估为:

Px=k=0N1Sx[k]ΔF
在哪里ΔF是由 FFT 表示的数字频率点之间的距离,等于1N.

这时,第一个问题出现了,单位是什么?Sx[k]? 是吗V2subcarrier?

在模拟频率水平轴的情况下,总功率将被评估为:

Px=k=0N1Sx[k]Δf
在哪里Δf是由 FFT 表示的模拟频率点之间的距离,等于fsN(FFT 频率间隔)。

随后,为了表示模拟频率上的功率谱密度,必须将 PSD 估计器修改为:

Sx[k]=Sx[k]fs
在哪里fs是采样频率。

这个分析正确吗?

这是验证这一点的 MATLAB 代码段:

clear all
clc

N = 4096;   % FFT size
fs = 200e6; % Sampling frequency in Hz

Px = 4;     % Target total power

x = sqrt(Px)*randn(N,1);    % Gaussian noise with power Px

% Verify signal variance
fprintf('Signal total power: %d\n', var(x))

X = fft(x,N);   

Sx = (abs(X).^2)/N;  % Simplest PSD estimator

deltaF = 1/N;        % Digital frequency spacing

figure
plot((0:N-1)*deltaF, 10*log10(Sx))
xlabel('Digital Frequency')
grid on

% Verify total power
Px = sum(Sx*deltaF)

Sx_analog = Sx/fs;

deltaf = fs/N;        % Analog frequency spacing

figure
plot((0:N-1)*deltaf, 10*log10(Sx_analog))
xlabel('Analog Frequency (Hz)')
grid on

% Verify total power
Px_2 = sum(Sx_analog*deltaf)
0个回答
没有发现任何回复~