瑞利分布和莱斯分布仿真

我们使用raylrnd函数生成服从瑞利分布的随机变量rayleighSamples。其中,sigma是瑞利分布的尺度参数。然后使用histogram函数绘制瑞利分布的直方图。

我们先生成服从Rayleigh分布的随机变量rayleighSamples,然后生成服从标准高斯分布的随机变量gaussianSamples。接下来,使用这两个随机变量的乘积和平方根来构造服从莱斯分布的随机变量ricianSamples。最后,使用histogram函数绘制莱斯分布的直方图,并设置'Normalization'参数为'pdf'以绘制概率密度函数。

% 瑞利分布和莱斯分布仿真
% 设置仿真参数
N = 10000;  % 仿真次数
SN = 55;%序号
K_dB = [-20*(1+SN/130), 0, 15];  % 分别对应 -20*(1+55/130)dB, 0dB, 15dB
K_linear = 10.^(K_dB/10);  % 将信道增益转换为线性比例

% 初始化结果数组
rayleigh_result = zeros(N, length(K_dB));
rice_result = zeros(N, length(K_dB));

% 执行仿真
for i = 1:length(K_dB)
    % 生成高斯随机信道
    complex_channel = (randn(N, 1) + 1i*randn(N, 1))/sqrt(2);
    
    % 计算瑞利分布信道
    rayleigh_channel = complex_channel;
    
    % 计算莱斯分布信道
    rice_channel = sqrt(K_linear(i)/(K_linear(i)+1)) + sqrt(1/(K_linear(i)+1)) * complex_channel;
    
    % 记录仿真结果
    rayleigh_result(:,i) = abs(rayleigh_channel).^2;
    rice_result(:,i) = abs(rice_channel).^2;
end

% 绘制仿真结果的直方图
figure;
for i = 1:length(K_dB)
    subplot(length(K_dB), 2, 2*i-1);
    hist(rayleigh_result(:,i), 100);
    title(sprintf('瑞利分布(K = %.2f dB)', K_dB(i)));
    xlabel('Channel Gain');
    ylabel('频率');
    
    subplot(length(K_dB), 2, 2*i);
    hist(rice_result(:,i), 100);
    title(sprintf('莱斯分布 (K = %.2f dB)', K_dB(i)));
    xlabel('Channel Gain');
    ylabel('频率');
end

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值