|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本人菜鸟,第一次接触matlab程序画流程图,不知道该如何按照这个程序画流程图, 尤其是这个程序里用了很多for循环, 比较迷茫……麻烦大神指点一下,非常感谢!
u. d$ p2 [0 G5 O2 `! W9 G%MRC_scheme.m
, S. }- l& K- K! T$ Y. e%接收分集-MRC! H9 F. M$ b% E" j0 u
clear,clf
( V3 G, k0 W$ u3 l8 tL_frame=130;' O: l+ F0 |1 F$ B7 C$ s, [
N_packet=4000;%130个编码后符号,仿真4000组
1 o& i( `2 g5 Mb=4;%设置为1/2/3/4对应于BPSK/QPSK/8PSK/16-QAM& u1 @4 d8 j3 T; \
SNRdBs=[0:2:20];
7 V, K0 M& Y4 N. ?9 isq2=sqrt(2);
, s7 p1 \/ c! hfor iter=1:3
# p+ z8 ?( ^5 ^( B* l1 D6 V if iter==1 d9 H$ b7 _4 K- _7 u& I8 R
NT=1;07 E* _ V5 i( J f, t
NR=1;%SISO- O- s) W7 U3 w) M3 k. {
gs='-kx';' |8 B) c( {# ?
elseif iter==2! G) {! O+ `* M. ^! l, A3 G
NT=1;
( M4 h5 [3 w0 X+ A2 o1 H NR=2;% 1发2收
+ s T$ S0 }& z/ [( q. ^ gs='-^';
' K2 P; r2 @3 V& g else; ^8 J* c8 y# X! r
NT=1;
& N {5 ~! Q' C0 U3 A9 Z- v NR=4;% 1发4收# T+ k5 j+ K7 q% \: O$ L
gs='-ro';
9 D0 b8 U! k3 S* Q end& }# U( ^ k0 x! _6 L" o& { s5 ~. w
sq_NT=sqrt(NT);9 w7 q' f' y: t8 w7 Q
for i_SNR=1:length(SNRdBs)" ?, q1 ] k* [+ s) p
SNRdB=SNRdBs(i_SNR);8 @/ m; w4 Q' l
sigma=sqrt(0.5/(10^(SNRdB/10)));%瑞利分布参数,噪声标准差
8 ^1 m1 u' d9 b; G/ M for i_packet=1:N_packet( M! d' [8 F: R: F" |
symbol_data=randint(L_frame*b,NT); %产生L_frame*b行NT列二进制信息) R9 p# v& \. q' u/ P b6 w+ N
[temp,sym_tab,P]=modulator(symbol_data.',b);%调制
7 Z2 l( z- ?, X# {' Z( V% ? X=temp.';%X为调制后序列(L_frame行1列)
/ ~1 o- W. D0 y& @; d/ v Hr=(randn(L_frame,NR)+j*randn(L_frame,NR))/sq2;%瑞利信道衰落系数
; |* Q, q4 V; V* G; G4 G) S; \ H=reshape(Hr,L_frame,NR);%重置Hr行列(L_frame行NR列)* Q" z" T+ O# X4 A0 y4 N
Habs=sum(abs(H).^2,2);4 }* |! J* x: o- Y$ s* N
Z=0;
, T2 _5 g' a( C& g- Z for i=1:NR
; ?$ i, L# d; M$ O! H4 z& A R(:,i)=sum(H(:,i).*X,2)/sq_NT+...
; A% M- c! G$ ^1 k" Y sigma*(randn(L_frame,1)+j*randn(L_frame,1)); %经过瑞利信道并加复高斯白噪声
, u. D2 |/ N3 K/ G+ j Z=Z+R(:,i).*conj(H(:,i));%MRC合并,合并系数为conj(H(:,i))
* f& R i7 L; E6 e5 M5 q5 Q! b! ` end8 {5 W' I( N* o+ ?. Y; n$ B
for m=1 %最大似然译码( W) l8 U( b& w7 W' j8 X
dl(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+...& c: W6 W# y8 v8 v. G' J
(-1+sum(Habs,2))*abs(sym_tab(m))^2;6 A2 h; \3 S( ]! y
end
' M4 H: J2 ?; L+ y: ?# m4 K& H [y1,i1]=min(dl,[],2);
5 E- l, H1 j* ] Xd=sym_tab(i1).';
7 f4 O+ R; ~+ {) @ temp1=X>0;
3 m H$ n! U7 C+ k0 e temp2=Xd>0;# ~9 x2 c- [" y' G, M
noeb_p(i_packet)=sum(sum(temp1~=temp2));%累加错误比特! G; h" m( Z# Y8 G: c5 X
end2 J4 h& g2 D. R- p) @
BER(iter,i_SNR)=sum(noeb_p)/(N_packet*L_frame*b);%计算误比特率/ p9 T5 o- o1 W3 U
end# V! r2 x+ M7 T3 T+ J
semilogy(SNRdBs,BER(iter, ,gs),hold on! u0 U% {( z' i4 U/ }
axis([SNRdBs([1 end]) 0.5*10^(-4) 1e0])3 |" m' x8 i. }9 w) Y
end0 I* i5 A8 y/ u. M& T% f
title('BER peRFoemancde of MRC Scheme')6 x( l! c2 {; `
xlabel('SNR[dB]'),ylabel('BER') _, ^: o0 ?1 K' m( i- w
grid on,set(gca,'fontsize',9)
& ^! j! O6 s6 E' [( flegend('SISO','MRC(Tx:1,Rx:2)','MRC(Tx:1,Rx:4)')1 }, }6 ^" i5 o2 v, Q
|
|