雷达回波仿真(三)—— 添加复高斯白噪声

% 1. 定位和通道峰值位置 (距离门索引与脉冲索引)
[~, maxLinearIdx]           =  max(abs(dataSum(:)));
[maxRangeIdx, maxPulseIdx]  =  ind2sub(size(dataSum), maxLinearIdx);
halfLen                     =  param.LenModel;  % 匹配滤波后的主瓣脉冲宽度 / 2
rangeIdx                    =  max(1, maxRangeIdx - halfLen) : min(size(dataSum, 1), maxRangeIdx + halfLen);

% 2. 截取峰值脉冲的主瓣回波并计算平均信号功率 Ps
tempSignal = dataSum(rangeIdx, maxPulseIdx);
Ps         = (tempSignal' * tempSignal) / (param.rate * halfLen * 2);

% 3. 根据预设 SNR 计算噪声功率 Pn 与标准差
Pn       = 10^(- 0.1 * param.SNR) * Ps;
noiseStd = sqrt(Pn/2); % 实虚各自分配一半方差

% 4. 为和通道、方位差通道、俯仰差通道分别注入独立复高斯白噪声
dataSize = size(dataSum);
dataSum  = dataSum + noiseStd * (randn(dataSize) + 1j * randn(dataSize));
dataAzi  = dataAzi + noiseStd * (randn(dataSize) + 1j * randn(dataSize));
dataEle  = dataEle + noiseStd * (randn(dataSize) + 1j * randn(dataSize));

说明:这里采用的信噪比为和通道平均信噪比,也可以采用峰值信噪比.


Last edited at 2026-11-03

posted @ 2026-11-02 14:38  Star_Wind  阅读(3)  评论(0)    收藏  举报