峰均值在AWGN中生成 matlab代码
时间: 2024-04-17 19:24:55 浏览: 70
Nouveau-dossier.rar_通讯编程_matlab_
在AWGN(加性高斯白噪声)中生成峰均值的Matlab代码如下:
```matlab
% 设置参数
N = 1000; % 生成的信号长度
SNR_dB = 10; % 信噪比(以dB为单位)
% 生成原始信号
x = randn(1, N); % 生成均值为0,方差为1的高斯分布随机数
% 计算信噪比对应的噪声方差
SNR = 10^(SNR_dB / 10);
sigma = sqrt(var(x) / SNR);
% 生成噪声
n = sigma * randn(1, N); % 生成均值为0,方差为sigma^2的高斯分布随机数
% 添加噪声到原始信号
y = x + n;
% 计算峰值和均值
peak = max(abs(y)); % 计算峰值
average = mean(abs(y)); % 计算均值
% 显示结果
fprintf('峰值:%f\n', peak);
fprintf('均值:%f\n', average);
```
这段代码首先生成长度为N的原始信号x,然后根据给定的信噪比SNR_dB计算噪声的标准差sigma。接下来,生成方差为sigma^2的高斯分布随机数n,并将其加到原始信号x中得到带噪声的信号y。最后,计算y的峰值和均值,并将结果显示出来。
阅读全文