我有点不确定加性高斯白噪声的产生,所以如果我做得正确,我会很高兴收到你的来信。
我的目标是生成与 -135 dbm/Hz 的本底噪声相对应的时域噪声
我采用的程序如下:
1 - 以 dbm/Hz 为单位将本底噪声转换为 Watts/Hz
2 - 从 PSD 获得平均总功率。
3 - 使用该平均总功率生成高斯噪声
4 - 对高斯噪声进行 FFT 并估计周期图,以验证它是否确实生成了具有正确 PSD 的噪声
以下是我如何执行上述 4 个步骤:
1 -
在哪里是以瓦特/赫兹为单位的 PSD 和是以 dBm/Hz 为单位的 PSD。
2 - 平均总功率由下式给出
在哪里是带宽
3 - 生成randn MATLAB 函数乘以.
4 -
4.1 对信号进行 FFT,比方说,.
4.2 得到能谱密度(ESD)为
4.3 通过简单地将 ESD 除以得到 PSD(FFT 长度) 4.4 我不简单地绘制,因为我相信这会以 dBm/副载波为单位绘制 PSD。而不是这个,我绘制, 试图将图绘制为 dBm/Hz。
下面的代码是我正在使用的。请指出我是否做错了。
clear all
clc
bandwidth = 106e6; % in Hz
sampleFrequency = 2*bandwidth; % in Hz
noiseFloor = -135; % in dBm/Hz
awgnPsd = (10.^(noiseFloor/10))*1e-3; % in Watts/Hz
noisePower = awgnPsd*2*bandwidth; % in Watts
% Generate noise signal:
N = 4096; % signal length
nSymbols = 1000; % number of symbols with length N to be generated
noise = randn(N,nSymbols)*sqrt(noisePower);
% Verify PSD
toneSpacing = sampleFrequency/N; % DFT tone spacing
ESD = mean(abs(fft(noise,N)).^2)/N; % Energy spectral density
PSD = ESD/N;
% plot PSD
figure
plot(10*log10((PSD/toneSpacing)*1e3))