资源简介
针对不同的衰落(对数正态分布、瑞利衰落、Nakagami 衰落),发射端采用不同的功率分配方案,绘制出相应的平坦衰落信道容量随平均接受信噪比变化的曲线,并进行对比分析。具体曲线参照Andrea Goldsmith 的《WIRELESS COMMUNICATIONS》教材中Figure 4.6、Figure 4.7、Figure 4.8。由于水平有限,仅供初学者入门学习,部分程序在运行时会报错和警告,可能是由于matlab程序中使用的integral等求解积分方程的函数,建议在matlab2012a以上的版本运行,本代码是在matlab2017b的版本上运行。如过聪明的你能发现错误并代码优化,期待大神不吝赐教。
代码片段和文件信息
clc;close all;clear
Nsample = 100000;
Average_dB_SNR = 0:2.5:30;%average dB SNR: miu_dB
sigma_dB = 8;
Average_SNR_dB = Average_dB_SNR + sigma_dB.^2*log(10)/20; %average SNR in dB:10log_10(miu) = miu_dB + sigma_dB^2ln(10)/20 (2.46)
Average_SNR = 10.^(Average_SNR_dB/10);
%(1) AWGN_Capacity
AWGN_Capacity = log2(1+Average_SNR);
% flat fading Capacity
Shannon_Capacity_CSITR = zeros(size(Average_SNR_dB));
Shannon_Capacity_CSIR = zeros(size(Average_SNR_dB));
Maximum_Outage_Capcity = zeros(size(Average_SNR_dB));
Zero_Outage_Capcity = zeros(size(Average_SNR_dB));%for Rayleigh fading: Zero_Outage_Capcity = 0;
CSITR_gamma0 = zeros(size(Average_SNR_dB));%Shannon_Capacity_CSITR: waterfilling cutoff fade depth
TCI_gamma0 = zeros(size(Average_SNR_dB));%Maximum_Outage_Capcity: truncated channel inversion cutoff fade depth
%calculate CSITR_gamma0
pdfx = @(xmu_dBsigma_dB) 10/log(10)/sqrt(2*pi)./sigma_dB./x.*exp(-(10*log10(x)-mu_dB).^2/2./sigma_dB^2);
for index_snr0 = 1:length(Average_dB_SNR)
mu_dB = Average_dB_SNR(index_snr0);
gamma0 = 1e-3;
abserr = 1;
while(abserr>1e-2)
gamma0 = gamma0 + 1e-3;
abserr = abs(1 - integral(@(x)(1/gamma0 - 1./x).*pdfx(xmu_dBsigma_dB)gamma0Inf‘AbsTol‘1e-3‘RelTol‘1e-2)); % integral Introduced in R2012a
end
CSITR_gamma0(index_snr0) = gamma0;
end
% search TCI_gamma0
for index_snr1 = 1:length(Average_SNR)
Range_gamma0 = 1e-2:1:200;
accuracy = 1;
mu_dB = Average_dB_SNR(index_snr1);
while(accuracy >10^-2)
accuracy = accuracy/10;
E_gamma0 = zeros(size(Range_gamma0));
P1 = zeros(size(Range_gamma0));% P(gamma >= gamma0 )
C_Pout = zeros(size(Range_gamma0));
for index_gamma = 1:length(Range_gamma0)
gamma0 = Range_gamma0(index_gamma);
E_gamma0 = integral(@(x)1./x.*pdfx(xmu_dBsigma_dB)gamma0Inf‘AbsTol‘1e-3‘RelTol‘1e-2);
Pout = integral(@(x)pdfx(xmu_dBsigma_dB)0gamma0‘AbsTol‘1e-3‘RelTol‘1e-2);
C_Pout(index_gamma) = log2(1+1/E_gamma0)*(1-Pout);
end
[C_Pout_max index_gamma] = max(C_Pout);
snr1_gamma0 = Range_gamma0(index_gamma);
Range_gamma0 = max(Range_gamma0(index_gamma) - accuracy0): accuracy/10 :Range_gamma0(index_gamma) + accuracy;
end
TCI_gamma0(index_snr1) = snr1_gamma0;
Maximum_Outage_Capcity(index_snr1) = C_Pout_max;
end
%simulation: Shannon_Capacity_CSIRShannon_Capacity_CSITRZero_Outage_Capcity
E1 = zeros(size(Average_dB_SNR));
for i = 1:Nsample
gamma_i_dB = normrnd(Average_dB_SNRsigma_dB);
gamma_i = 10.^(gamma_i_dB/10);
Shannon_Capacity_CSIR = Shannon_Capacity_CSIR + log2(1+gamma_i);
S_gamma = zeros(size(Average_SNR_dB));
index = find(gamma_i >= CSITR_gamma0);% P(gamma)/Average_P (4.24)
S_gamma(index) = 1./CSITR_gamma0(index) - 1./gamma_i(index);
Shannon_Capacity_CSITR = Shannon_Capacity_CSITR + log2(1+ gamma_i .* S
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-22 11:56 matlab代码和运行结果\
文件 3827 2018-04-10 17:27 matlab代码和运行结果\Log_normal_capacity.m
目录 0 2018-08-22 11:55 matlab代码和运行结果\Matlab2017b运行结果图\
文件 21327 2018-04-10 17:24 matlab代码和运行结果\Matlab2017b运行结果图\log_normal.fig
文件 27211 2018-04-10 17:24 matlab代码和运行结果\Matlab2017b运行结果图\log_normal.png
文件 23218 2018-04-10 18:35 matlab代码和运行结果\Matlab2017b运行结果图\Nakagami.fig
文件 29308 2018-04-10 18:35 matlab代码和运行结果\Matlab2017b运行结果图\Nakagami.png
文件 22753 2018-04-10 18:30 matlab代码和运行结果\Matlab2017b运行结果图\rayleigh.fig
文件 26965 2018-04-10 18:30 matlab代码和运行结果\Matlab2017b运行结果图\rayleigh.png
文件 3577 2018-04-10 18:28 matlab代码和运行结果\Nakagami_capacity.m
文件 3342 2018-04-10 18:26 matlab代码和运行结果\Rayleigh_capacity.m
文件 532205 2018-08-22 11:55 无线信道容量仿真实验.pdf
相关资源
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MIMO-OFDM无线通信技术及MATLAB实现
- 使用 MATLAB 改变mimo无线通信设计
- 基于Matlab的IR-UWB无线通信信道模型仿
- MIMO-OFDM无线通信技术及MATLAB实现英文
- 基于无线通信基站的室内三维定位问
- MIMO-OFDM无线通信技术及MATLAB实现中文
- MIMO-OFDM无线通信技术及MATLAB实现中文
- MIMO-OFDM无线通信技术及MATLAB实现-书和
- MIMO-OFDM无线通信技术及MATLAB实现-书籍
- MIMO-OFDM无线通信技术及MATLAB实现中文
- 无线通信FPGA设计及源码.rar
- MIMO-OFDM无线通信技术及MATLAB实现(中
- 无线通信的MATLAB和FPGA实现书籍+完整光
- 任意信道容量的计算及MATLAB仿真与分
- 信道相关性对信道容量的影响
- MIMO-OFDM无线通信matlab代码
- MATLAB迭代法计算信道容量
- 信道容量的仿真代码
- 无线通信技术32QAM
- MIMO信道容量仿真matlab代码
- MISO信道容量仿真
- 信道编码程序matlab
- matlab编写信道容量
- 无线通信MIMO中STBC的matlab仿真
- 无线通信-预编码-MATLAB代码合集-毕设
- 《MIMO-OFDM无线通信技术及MATLAB实现》
- UWB无线通信系统采用脉冲位置调制P
- 信道容量迭代算法
- 无线通信MIMO VBLAST的matlab仿真
评论
共有 条评论