⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simo_capacity.m

📁 单输入输出的系统的系统容量的仿真程序。对学习MIMO技术很有帮助。
💻 M
字号:
% 程序-3 (2008.毕业设计-MIMO系统信道容量分析)
% 平均功率分配的MIMO信道容量——SIMO的信道容量
% SIMO_Capacity.m

clear all;clc;

Nt = 1;											          % 8.发射天线的数目为1
Nr = 1;											          % 9.接收天线的数目为1                                      
SampleNum = 10000;                                        % 10.蒙特卡洛仿真时的抽样数量
SNR_dB =2:2:20;                                          % 11.信噪比(单位dB)

for nSNR = 1:length(SNR_dB)
    SNR_dB(nSNR)
	rho = 10^(SNR_dB(nSNR)/10);                           % 13-15.完成信噪比的单位转换

    for nSample = 1:SampleNum
        H = (randn(Nr,Nt)+sqrt(-1)*randn(Nr,Nt))/sqrt(2); % 18.瑞利衰落信道矩阵
        Cn(nSNR,nSample) = log2(real(det(1+rho*H'*H)));
    end
    
    Capacity1(nSNR) = mean( Cn(nSNR,:) );                  % 22.求遍历信道容量
    tempC1 = sort(Cn(nSNR,:));
end

Nt = 1;											          % 26-42.接收天线的数目为3
Nr = 3;											                                                 
SampleNum = 10000;                                        
SNR_dB =2:2:20;                                          

for nSNR = 1:length(SNR_dB)
    SNR_dB(nSNR)
	rho = 10^(SNR_dB(nSNR)/10);                           

    for nSample = 1:SampleNum
        H = (randn(Nr,Nt)+sqrt(-1)*randn(Nr,Nt))/sqrt(2); 
        Cn(nSNR,nSample) = log2(real(det(1+rho*H'*H)));
    end
    
    Capacity2(nSNR) = mean( Cn(nSNR,:) );                  
    tempC2 = sort(Cn(nSNR,:));
end

Nt = 1;											          % 44-60.接收天线的数目为5
Nr = 5;											                                                
SampleNum = 10000;                                        
SNR_dB =2:2:20;                                        

for nSNR = 1:length(SNR_dB)
    SNR_dB(nSNR)
	rho = 10^(SNR_dB(nSNR)/10);                           

    for nSample = 1:SampleNum
        H = (randn(Nr,Nt)+sqrt(-1)*randn(Nr,Nt))/sqrt(2); 
        Cn(nSNR,nSample) = log2(real(det(1+rho*H'*H)));
    end
    
    Capacity3(nSNR) = mean( Cn(nSNR,:) );                  
    tempC3 = sort(Cn(nSNR,:));
end

Nt = 1;											          % 62-78.接收天线的数目为7
Nr = 7;											                                                 
SampleNum = 10000;                                        
SNR_dB = 2:2:20; 
for nSNR = 1:length(SNR_dB)
    SNR_dB(nSNR)
	rho = 10^(SNR_dB(nSNR)/10);                           

    for nSample = 1:SampleNum
        H = (randn(Nr,Nt)+sqrt(-1)*randn(Nr,Nt))/sqrt(2); 
        Cn(nSNR,nSample) = log2(real(det(1+rho*H'*H)));
    end
    
    Capacity4(nSNR) = mean( Cn(nSNR,:) );                  
    tempC4 = sort(Cn(nSNR,:));
end

Nt = 1;											          % 80-96.接收天线的数目为9
Nr = 9;											                                                 
SampleNum = 10000;                                        
SNR_dB = 2:2:20;                                           

for nSNR = 1:length(SNR_dB)
    SNR_dB(nSNR)
	rho = 10^(SNR_dB(nSNR)/10);                          

    for nSample = 1:SampleNum
        H = (randn(Nr,Nt)+sqrt(-1)*randn(Nr,Nt))/sqrt(2); 
        Cn(nSNR,nSample) = log2(real(det(1+rho*H'*H)));
    end
    
    Capacity5(nSNR) = mean( Cn(nSNR,:) );                 
    tempC5 = sort(Cn(nSNR,:));
end

figure(1)                                                 % 98.开始仿真作图

nSNR = length(SNR_dB);
plot(tempC1, (1:SampleNum)/SampleNum, 'r-');
hold on;
plot(tempC2, (1:SampleNum)/SampleNum, 'b-');
hold on;
plot(tempC3, (1:SampleNum)/SampleNum, 'g-');
hold on;
plot(tempC4, (1:SampleNum)/SampleNum, 'k-');
hold on;
plot(tempC5, (1:SampleNum)/SampleNum, 'm-');
hold on;

xlabel('信道容量 (bit/s/Hz)');
ylabel('概率分布');
text(0.9,0.9,'平均功率分配的SIMO的信道容量');
text(0.9,0.8,'从左向右接收天线数依次为1,3,5,7,9');
grid on;

figure(2)

plot(SNR_dB, Capacity1, 'r-');
hold on;
plot(SNR_dB, Capacity2, 'b-');
hold on;
plot(SNR_dB, Capacity3, 'g-');
hold on;
plot(SNR_dB, Capacity4, 'k-');
hold on;
plot(SNR_dB, Capacity5, 'm-');
hold on;
xlabel('信噪比(dB)');
ylabel('遍历容量');
text(5,11,'信噪比对SIMO信道容量的影响');
legend('1X1','1X3','1X5','1X7','1X9');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -