EDA365电子论坛网

标题: 第一次接触matlab程序画流程图,不知道该如何按照这个程序画流程图。 [打印本页]

作者: shyw559    时间: 2021-1-29 16:46
标题: 第一次接触matlab程序画流程图,不知道该如何按照这个程序画流程图。
本人菜鸟,第一次接触matlab程序画流程图,不知道该如何按照这个程序画流程图, 尤其是这个程序里用了很多for循环, 比较迷茫……麻烦大神指点一下,非常感谢!
# D5 n% N1 s. e* E* V%MRC_scheme.m  Y8 y' q9 {1 W' R( }
%接收分集-MRC
( l- N  B. i/ o6 b( ~1 u( dclear,clf( a1 P% E/ \6 I2 D/ D8 q, h+ A
L_frame=130;( E; W* b. \$ t8 r# B8 G, @
N_packet=4000;%130个编码后符号,仿真4000组4 ?6 S! i# U! a2 T3 O
b=4;%设置为1/2/3/4对应于BPSK/QPSK/8PSK/16-QAM
4 f. h! W/ G( @2 Y3 @* r- mSNRdBs=[0:2:20];
6 ]; B* {: f% Y( tsq2=sqrt(2);9 z) _5 [5 `; K/ @( P; H' T
for iter=1:37 |& g& ]& |: U' \# \2 C! z
    if iter==1
- w; M: Z3 ]* L0 K7 h1 x. V# e& a        NT=1;0' y3 u  d+ B* [( z- y; [1 ]
        NR=1;%SISO7 L- m+ c- n" N% b/ D8 \+ c, k
        gs='-kx';9 ~" |! o; @7 H5 B* ]7 n7 ?
    elseif iter==2
! w. X7 i% |' P. v7 o9 w        NT=1;
) e9 U+ g% y. E7 a        NR=2;% 1发2收3 n6 ~) D, R. d7 D4 ]- j
        gs='-^';
4 E3 [: T3 j9 I% b    else
8 C# r/ b* K7 J( _        NT=1;) Z' B1 ~' E: ]) E) a. s
        NR=4;% 1发4收* v. f& ~6 l! o7 K# g1 o' b
        gs='-ro';
) \/ Z( H$ U. ?# |) \2 b; N& H    end2 x* I+ P9 s* @' b' x
    sq_NT=sqrt(NT);) r, _3 N4 z9 M$ p0 b
    for i_SNR=1:length(SNRdBs)6 I" g2 g" |# f4 _5 o6 J2 b* W6 t; Q
        SNRdB=SNRdBs(i_SNR);
0 P2 d& `2 {9 U( Z        sigma=sqrt(0.5/(10^(SNRdB/10)));%瑞利分布参数,噪声标准差
; A- ^" M2 k" `        for i_packet=1:N_packet* z$ Q: ?9 @/ N$ H4 }/ D
            symbol_data=randint(L_frame*b,NT); %产生L_frame*b行NT列二进制信息8 N0 O( G( d+ T9 ?' p
            [temp,sym_tab,P]=modulator(symbol_data.',b);%调制- a" r  S5 M$ F( r$ Q
            X=temp.';%X为调制后序列(L_frame行1列)
8 Z; E- T2 F& n' d' Q( G/ o            Hr=(randn(L_frame,NR)+j*randn(L_frame,NR))/sq2;%瑞利信道衰落系数
& Z) L# w0 ~8 t' D            H=reshape(Hr,L_frame,NR);%重置Hr行列(L_frame行NR列)& V# @% ~8 f$ K2 B" p" j7 w  o
            Habs=sum(abs(H).^2,2);
: l, y6 B4 ^& l. s' w            Z=0;. n6 J* s. o( P+ |' O$ n
            for i=1:NR
" B% [" A. u; l6 P! U8 l                R(:,i)=sum(H(:,i).*X,2)/sq_NT+...3 r  h0 J9 R( U
                    sigma*(randn(L_frame,1)+j*randn(L_frame,1)); %经过瑞利信道并加复高斯白噪声
& D2 J( a( ^2 X& \- [% b                Z=Z+R(:,i).*conj(H(:,i));%MRC合并,合并系数为conj(H(:,i))0 n- z* m6 a6 _' q, K
            end& C) a; L1 f3 p/ l5 m. G0 [
            for m=1 %最大似然译码8 [( K. |- C1 o8 F3 K$ J/ ^5 A  w
                dl(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+...
1 C* T4 i& ]$ e6 _* U- t; H3 g! c* r                    (-1+sum(Habs,2))*abs(sym_tab(m))^2;3 H4 `) L1 a' c' a6 k6 B6 D
            end
/ p. a, g: X  |& u' Y            [y1,i1]=min(dl,[],2);
3 @1 g6 r2 |' _8 i& v# ]2 Y            Xd=sym_tab(i1).';% D1 c+ `. C2 l9 ]0 n
            temp1=X>0;
( O4 S9 k7 k* h1 P  }2 S# g2 {" q            temp2=Xd>0;
+ j; _; E# M0 `+ p" ?6 f! f# o            noeb_p(i_packet)=sum(sum(temp1~=temp2));%累加错误比特) F) l% I8 t: j% }2 h$ n
        end# j$ i5 g5 }/ D- b& }+ q; }) @
        BER(iter,i_SNR)=sum(noeb_p)/(N_packet*L_frame*b);%计算误比特率( K$ l6 l) c# M
    end
7 x0 [) {; U7 H    semilogy(SNRdBs,BER(iter,,gs),hold on
" w' W4 H$ X% n- n    axis([SNRdBs([1 end]) 0.5*10^(-4) 1e0]): l; V+ t/ p3 P1 N
end) N* I8 Y8 j# E! p5 ?& I* T
title('BER perfoemancde of MRC Scheme')9 y; U! J. m6 x
xlabel('SNR[dB]'),ylabel('BER')
5 c/ n. K/ F6 T0 S+ ggrid on,set(gca,'fontsize',9): H- G2 I& A9 D5 `
legend('SISO','MRC(Tx:1,Rx:2)','MRC(Tx:1,Rx:4)')) P1 z+ z; k/ P! a7 c

作者: wu68aq    时间: 2021-1-29 17:05
这个其实很简单。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2