|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本人菜鸟,第一次接触matlab程序画流程图,不知道该如何按照这个程序画流程图, 尤其是这个程序里用了很多for循环, 比较迷茫……麻烦大神指点一下,非常感谢!
% \8 e' D" \* l) d+ C. [0 b%MRC_scheme.m
Q! ?8 p$ s5 D4 R4 [& I- L%接收分集-MRC; o# {8 [7 ^+ k3 w3 O, u
clear,clf
4 t0 D% N6 R: e2 i xL_frame=130;9 ?, l; S0 [- D5 N1 T w! K
N_packet=4000;%130个编码后符号,仿真4000组
* Z; M& ^0 u$ s" S0 q# }b=4;%设置为1/2/3/4对应于BPSK/QPSK/8PSK/16-QAM
7 @& V8 M8 p) {SNRdBs=[0:2:20];
( C% D3 I: u" y3 L8 l. p: lsq2=sqrt(2);
/ ?2 ^/ @3 ]0 i1 Xfor iter=1:3; M% ~9 L. u; c! X5 [
if iter==1- n' O2 \7 M% J
NT=1;0
0 r. G* k4 j6 t8 a/ r NR=1;%SISO
& x+ K( I* Z! [0 f# P+ y, [ gs='-kx';
" f# S. p/ F- ?3 d elseif iter==2
! i/ Y7 b! }1 W& p z Q ? NT=1;% i9 I" F! u$ m- ?; U: {' P
NR=2;% 1发2收. ~3 X# L U, P" p0 O7 T
gs='-^';
7 T0 \# m# r! v5 B* O3 N" K6 S7 m% U else
0 c: X0 J- O' d0 p l NT=1;
4 F6 ], ? H, ?+ [: p NR=4;% 1发4收
; O. X, G- y* ^' [+ N7 D3 f gs='-ro';* \1 v! C9 m: j3 q' a$ _
end9 r+ J$ J D) V1 f
sq_NT=sqrt(NT);
# B& |; Y9 K1 g* N ` Y j for i_SNR=1:length(SNRdBs)4 z* x2 J' `# ~( {4 v
SNRdB=SNRdBs(i_SNR);0 Z3 X9 P$ B+ ^) O& m l. P7 D4 s. m
sigma=sqrt(0.5/(10^(SNRdB/10)));%瑞利分布参数,噪声标准差) l5 ~0 `" p! `) ]' R) }
for i_packet=1:N_packet
2 A# N5 y& `. b/ X% O) e: m symbol_data=randint(L_frame*b,NT); %产生L_frame*b行NT列二进制信息
/ Z! i, @" c: f [temp,sym_tab,P]=modulator(symbol_data.',b);%调制
8 X% c* I; w# J6 ]: S! \" ` X=temp.';%X为调制后序列(L_frame行1列)
. O( {: p4 X# _' I6 u( t Hr=(randn(L_frame,NR)+j*randn(L_frame,NR))/sq2;%瑞利信道衰落系数
* M0 B: t- J" L2 Z9 l H=reshape(Hr,L_frame,NR);%重置Hr行列(L_frame行NR列)1 c9 |3 n! u; Y' S0 y+ C8 z
Habs=sum(abs(H).^2,2); f7 Z% ], R$ I5 w
Z=0;# N" U+ y# S1 T# B" H
for i=1:NR
. o' `" W: ]) v R(:,i)=sum(H(:,i).*X,2)/sq_NT+...
, f. O0 ?/ [. o8 W& g sigma*(randn(L_frame,1)+j*randn(L_frame,1)); %经过瑞利信道并加复高斯白噪声
3 f) d' x! h6 \7 ~% I! S/ V5 j Z=Z+R(:,i).*conj(H(:,i));%MRC合并,合并系数为conj(H(:,i))
! y& G ?" |# \& [ end0 N2 @: ?* A; [8 m# l+ t, a& s; s: m
for m=1 %最大似然译码" S6 M+ t) F; n t$ y
dl(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+...9 X5 T3 z: u; _8 W2 x$ T
(-1+sum(Habs,2))*abs(sym_tab(m))^2;- Z2 H( d4 r) G* m
end( Z4 u% }: o# c5 E
[y1,i1]=min(dl,[],2);
- F1 P' W: N1 a2 _0 c. i Xd=sym_tab(i1).';
( d9 [ R H2 A' [6 z8 D8 X: n temp1=X>0;
/ v2 q. D; y# g( Y# V& e temp2=Xd>0;. u ?7 }+ f& O$ m0 k# \
noeb_p(i_packet)=sum(sum(temp1~=temp2));%累加错误比特- G5 V6 C7 I% m. S( F8 U
end
: u& c7 b6 c1 c BER(iter,i_SNR)=sum(noeb_p)/(N_packet*L_frame*b);%计算误比特率
* P, B) m/ x& Y5 ? end( F% f* B+ m1 B! N; z3 \/ z; S
semilogy(SNRdBs,BER(iter, ,gs),hold on7 ^% r% o) w8 w. o
axis([SNRdBs([1 end]) 0.5*10^(-4) 1e0])
; v1 t* C! ?5 N% vend
7 R$ l, n' A V& H* h3 ttitle('BER peRFoemancde of MRC Scheme'); R8 U' B1 Q% e# o3 D* }4 S
xlabel('SNR[dB]'),ylabel('BER')' [) o0 f& u$ T& ~
grid on,set(gca,'fontsize',9)
- n( r ?/ r3 } y3 X2 Wlegend('SISO','MRC(Tx:1,Rx:2)','MRC(Tx:1,Rx:4)')7 _6 a2 M, |; ^' e& R
|
|