Matlab程序注译

Matlab程序注译,第1张

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=310^4; %三乘以十的四次幂

for i=1:4

for ee=1:length(EbN0)

for s=1:N_loop

H=randn(n(i),n(i))+jrandn(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=Wlog2(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<x<30,0<y<100;

AX=gca;%没有提到过gca估计你抄错了

set(AX,'fontsize',14);%把AX的字体设为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;%图不要清理掉,再有plot不会清理已经有的图。

grid on;%加网格线

end

legend('n1=1','n2=2','n3=4','n4=8');%设置图例,一般默认在右上角

希望能帮到你!

你是不是在编辑器里面直接运行的?

这是一个函数,需要提供输入参数才可以。

看代码内容,和百度知道的一个问题“用matlab进行BPSK调制和解调的仿真”有点接近,不过,更像是pudn中mimo_ofdmrar的函数(但guiyi那一行的具体数据不同)。

如果你下载的是有多个文件的工具包,请尝试运行其它文件,例如vblast_QPSK、vblast_Cor之类的,这些文件中都调用了本函数。

matlab自带了一个百mimo信道的模块,在block

simulink里,这度个简短不了;

部分参考如下:

SNR=0;

%定义信噪知比为0HZ

A=10^(SNR/10);

%信噪比的道单位转换关系式

Im=eye(1);

%这里回的"1"为发射天线和接收天线两者数目少答的根数

sum=0;

以上就是关于Matlab程序注译全部的内容,包括:Matlab程序注译、matlab程序运行报错Not enough input arguments.、如何使用matlab仿真信道容量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10034903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存