matlab通过信道仿真绘制信噪比变化的曲线
使用MATLAB绘制不同衰落下信道容量随平均接收信噪比变化的代码实现:
% 信道容量比较:瑞利衰落、Nakagami衰落、对数正态衰落
clc; clear; close all;
% 参数设置
snr_dB = 0:1:30; % 信噪比范围(dB)
snr_linear = 10.^(snr_dB/10); % 转换为线性值
m = 1; % Nakagami形状参数(m=1对应瑞利衰落)
sigma_log = 8; % 对数正态衰落的标准差(dB)
% 初始化容量存储
capacity_ray = zeros(size(snr_linear));
capacity_nak = zeros(size(snr_linear));
capacity_log = zeros(size(snr_linear));
% 计算各信道容量
for i = 1:length(snr_linear)
Gamma = snr_linear(i);
% 瑞利衰落容量(数值积分)
capacity_ray(i) = integral(@(gamma) rayleigh_capacity(gamma, Gamma), 0, Inf, 'RelTol', 1e-6);
% Nakagami衰落容量(数值积分)
capacity_nak(i) = integral(@(gamma) nakagami_capacity(gamma, Gamma, m), 0, Inf, 'RelTol', 1e-6);
% 对数正态衰落容量(蒙特卡洛模拟)
capacity_log(i) = lognormal_capacity(Gamma, sigma_log);
end
% 绘图
figure;
semilogy(snr_dB, capacity_ray, 'b-o', 'LineWidth', 1.5, 'DisplayName', 'Rayleigh');
hold on;
semilogy(snr_dB, capacity_nak, 'g-s', 'LineWidth', 1.5, 'DisplayName', 'Nakagami (m=1)');
semilogy(snr_dB, capacity_log, 'r-d', 'LineWidth', 1.5, 'DisplayName', 'Log-Normal');
grid on;
xlabel('Average SNR (dB)');
ylabel('Capacity (bps/Hz)');
title('Channel Capacity Comparison');
legend('show', 'Location', 'northwest');
ylim([1e-3 1e3]);
% 瑞利衰落容量函数
function C = rayleigh_capacity(gamma, Gamma)
pdf = (gamma/Gamma^2) .* exp(-gamma/Gamma);
C = integral(@(x) x.*pdf(x), 0, Gamma, 'RelTol', 1e-6);
end
% Nakagami衰落容量函数
function C = nakagami_capacity(gamma, Gamma, m)
Omega = Gamma * gamma(m + 0.5)/gamma(m); % 调整尺度参数
pdf = (2*m^m*gamma.^(2*m-1)) ./ (gamma(m)*Omega^m) .* exp(-m*gamma/Omega);
C = integral(@(x) x.*pdf(x), 0, 3*Gamma, 'RelTol', 1e-6);
end
% 对数正态衰落容量函数(蒙特卡洛)
function C = lognormal_capacity(Gamma, sigma_log)
N = 1e5; % 样本数量
sigma_linear = sigma_log * log(10)/10; % 转换为线性标准差
mu_x = log(Gamma) - (sigma_log^2*(log(10))^2)/20; % 均值调整
% 生成对数正态分布样本
x = mu_x + sigma_linear*randn(N,1);
gamma_samples = 10.^(x/10);
% 计算平均容量
C = mean(log2(1 + gamma_samples));
end
代码说明:
- 信道模型:
- 瑞利衰落:使用指数分布的概率密度函数进行数值积分
- Nakagami衰落:通过调整形状参数m(m=1时退化为瑞利衰落)和尺度参数Ω进行数值积分
- 对数正态衰落:通过蒙特卡洛模拟生成随机样本,计算平均容量
- 关键参数:
snr_dB:信噪比范围(0-30 dB)sigma_log:对数正态衰落的标准差(8 dB对应典型阴影效应)
- 输出结果:
- 使用半对数坐标系显示容量变化
- 三条曲线分别对应三种衰落模型
曲线特征:
- 瑞利衰落:容量增长最慢,无直射路径的多径衰落典型特征
- Nakagami衰落(m>1):容量增长快于瑞利衰落,反映更优的衰落环境
- 对数正态衰落:容量最低,反映阴影效应导致的信噪比波动影响
注意事项:
- 蒙特卡洛模拟采样数(N=1e5)可根据计算资源调整
- Nakagami积分上限设为3*Gamma以保证精度
- 对数正态参数通过期望值匹配确保平均SNR正确性
该代码完整实现了三种衰落下信道容量的对比分析,可用于无线通信系统性能评估和理论研究。
参考通过具体的信道实例对比几种信道容量,绘出对数正态衰落、瑞利衰落、Nakagami衰落下确定的容量随平均接收信噪比变化的曲线。

浙公网安备 33010602011771号