Matlab程序注译close all;clear all;clc;N_loop=100;EbN0=0:5:25;N0=1;Eb=10.^(EbN0/10)*N0;normalized=sqrt(1/2);C_norm=zeros(1,length(EbN0));D=zeros(1,N_loop);n=[1,2,4,8]; W=3*10^4; for i=1:4for ee=1:length(EbN0)for s=1:N_loopH=randn(n(i),n(i))+j*rand

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 22:38:44

Matlab程序注译close all;clear all;clc;N_loop=100;EbN0=0:5:25;N0=1;Eb=10.^(EbN0/10)*N0;normalized=sqrt(1/2);C_norm=zeros(1,length(EbN0));D=zeros(1,N_loop);n=[1,2,4,8]; W=3*10^4; for i=1:4for ee=1:length(EbN0)for s=1:N_loopH=randn(n(i),n(i))+j*rand
Matlab程序注译
close all;
clear all;
clc;
N_loop=100;
EbN0=0:5:25;
N0=1;
Eb=10.^(EbN0/10)*N0;
normalized=sqrt(1/2);
C_norm=zeros(1,length(EbN0));
D=zeros(1,N_loop);
n=[1,2,4,8];
W=3*10^4;
for i=1:4
for ee=1:length(EbN0)
for s=1:N_loop
H=randn(n(i),n(i))+j*randn(n(i),n(i));
Q=H'*H;
m=n(i);
I=eye(m,m);
SNR=Eb(ee)/N0;
C=W*log2(det(I+SNR/n(i)*Q));
D(s)=C;
end
C_avg=sum(D)/N_loop;
C_normal=C_avg/W;
C_norm(ee)=C_normal;
disp(['When SNR is ',num2str(EbN0(ee)),'dB:C_avg',int2str(i),' = ',num2str(C_avg),'; C_normal ',int2str(i),' = ',num2str(C_normal)]);
end
P=plot(EbN0,C_norm,'r-d');
set(P,'linewidth',[2]);
axis([0 30 0 100]);
AX=gca;
set(AX,'fontsize',14);
title('\fontsize{12}\bfMIMO ÐŵÀÈÝÁ¿');
X=xlabel('Eb/N_0 [dB]£¨ÐÅÔë±È£©');
set(X,'fontsize',12);
Y=ylabel('Capacity bit/s/Hz£¨ÐŵÀÈÝÁ¿£©');
set(Y,'fontsize',12);
hold on;
grid on;
end
legend('n1=1','n2=2','n3=4','n4=8');
这个程序是怎么运作,该语句是表达什么,在语句后面注译一下可以么.本人纯新手,真的不太懂.

Matlab程序注译close all;clear all;clc;N_loop=100;EbN0=0:5:25;N0=1;Eb=10.^(EbN0/10)*N0;normalized=sqrt(1/2);C_norm=zeros(1,length(EbN0));D=zeros(1,N_loop);n=[1,2,4,8]; W=3*10^4; for i=1:4for ee=1:length(EbN0)for s=1:N_loopH=randn(n(i),n(i))+j*rand
close all;%关闭当前打开的matlab窗口,如画图窗口等
clear all;%清理workspace空间的所有变量
clc;%清空commond
N_loop=100;
EbN0=0:5:25;
N0=1;
Eb=10.^(EbN0/10)*N0;%.^表示矩阵对应元素的幂
normalized=sqrt(1/2);%求平方根
C_norm=zeros(1,length(EbN0));%生成1行,6列(EbN0的的长度)的全零阵.
D=zeros(1,N_loop);%生成1行N_loop列的全零矩阵
n=[1,2,4,8];
W=3*10^4; %三乘以十的四次幂
for i=1:4
for ee=1:length(EbN0)
for s=1:N_loop
H=randn(n(i),n(i))+j*randn(n(i),n(i));%randn(m,n)是随机生成服从正态分布的m行n列的矩阵
Q=H'*H;%H的转置和H做矩阵乘法
m=n(i);
I=eye(m,m);%生成m行m列的单位矩阵
SNR=Eb(ee)/N0;
C=W*log2(det(I+SNR/n(i)*Q));%det(H)是求矩阵H的行列式的值
D(s)=C;%D中的第S个元素赋值为C
end
C_avg=sum(D)/N_loop;%求D的和再除以N_loop就是平均值.其实可以直接用C_avg=mean(D)的.
C_normal=C_avg/W;
C_norm(ee)=C_normal;
disp(['When SNR is ',num2str(EbN0(ee)),'dB: C_avg',int2str(i),' = ',num2str(C_avg),'; C_normal ',int2str(i),' = ',num2str(C_normal)]);%disp()是显示
end
P=plot(EbN0,C_norm,'r-d');%画图.'r-d‘表示画红色的直线菱形小图标的意思
set(P,'linewidth',[2]);%把画的图的线宽设为2像素
axis([0 30 0 100]);%设定图的范围0