这个帖子最后由wuchen160在2019-5-21 22:09编辑
当第一次接触matlab程序并绘制流程图时,不知道该如何根据该程序绘制流程图。 特别是在这个程序中使用了很多for循环,很迷茫……想向大人物请教
%MRC_scheme.m
%接收分集-MRC
clear,clf
L_frame=130;
N_packet=4000; 0个编码后符号,模拟4000组
b=4; 如果将%设置为1/2/3/4,则表示支持BPSK/QPSK/8PSK/16-QAM
SNRdBs=[0:2:20];
SQ2=sqrt(2;
for iter=1:3
if iter==1
NT=1; 0
NR=1; %SISO
gs='-kx ';
elseif iter==2
NT=1;
NR=2; % 1发2收到
gs='-^ ';
else
NT=1;
NR=4; % 1发4收到
gs='-ro ';
结束
sq_nt=sqrt(nt;
forI_SNR=1:length(SNRDBS ) )。
SNRdb=SNRDBS(I_SNR );
sigma=sqrt(0.5/) 10 ^ (SNR db/10 ) ); %动人毛衣分布参数,杂色标准差
for i_packet=1:N_packet
symbol_data=randiNT(l_frame*b,nt ); %将生成L_frame*b行NT列二进制信息
[temp,sym_tab,p]=modulator(symbol_data.',b ); %调制
X=temp.'; %X是调制后的序列(L_frame行第1列) )
HR=(Randn(L_Frame,NR ) j * randn (l _ frame,NR ) )/sq2; %感动的毛衣频道衰减系数
h=reshape(HR,L_frame,NR ); 重置%HR矩阵(L_frame行NR列) ) ) ) )。
HABS=sum(ABS(h ).^ 2,2 );
Z=0;
for i=1:NR
R(:I )=sum(h65:I ).*X,2 )/sq_NT .
Sigma*(Randn(L_Frame,1 ) J*Randn ) L_Frame,1 ); %感动的毛衣频道和高斯白噪声
z=zr(:I ).*conj ) h ) :I ); %MRC合并,合并系数为conj(h ) :I ) )
结束
for m=1:P %最大似然解码
dl(3360,m )=ABS(sum(z,2 )-sym_tab(m ).^2 .
(-1sum(habs,2 ) ) ABS ) sym_tab ) m ) ) 2;
结束
[y1,I1]=min(dl,[],2 );
xd=sym_tab(I1 ).';
temp1=X0;
temp2=Xd0;
noeb_p(I_packet )=sum ) sum ) temp1)=temp2); %累积错误位
结束
ber(ITER,i_SNR )=sum(noeb_p )/)/(N_packet*L_frame*b ); %计算误比特率
结束
SemiLogy(SNRDBS,ber(ITER, ),gs ),hold on
axis([SNRDBS(1end ) ]0.5*10^(-4 )1E0 ) ) )。
结束
标题(berperfoemancdeofmrcscheme ) )。
xlabel(SNR[db] )、ylabel )和(ber ) )。
栅格on,set(GCA,' fontsize ',9 ) )。
legend(Siso )、) MRC ) tx:1、Rx:2 )、) MRC ) tx:1、Rx:4 )