|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本人菜鸟,第一次接触matlab程序画流程图,不知道该如何按照这个程序画流程图, 尤其是这个程序里用了很多for循环, 比较迷茫……麻烦大神指点一下,非常感谢!' i! P8 L4 `( q+ _
%MRC_scheme.m
# w& v6 m, T- U%接收分集-MRC
4 @" {$ L0 p& {* B( Qclear,clf( U$ L2 S' L$ ~3 O
L_frame=130;
i* Y8 U/ ], E* z# r) R( ?% g0 ]N_packet=4000;%130个编码后符号,仿真4000组
6 P- d! s" P! xb=4;%设置为1/2/3/4对应于BPSK/QPSK/8PSK/16-QAM& L- ^6 ]7 X; b b
SNRdBs=[0:2:20];8 ^" r# N. d) z7 t+ ?; o% L: S
sq2=sqrt(2);
: ?* ?1 s J0 xfor iter=1:3
/ M; h5 ]4 @( w$ {% f/ i if iter==1
0 @9 Y% N; }6 z+ P NT=1;0" ~8 ~3 J e6 t
NR=1;%SISO8 X( q' R- Q" e1 @2 X) j) x9 E
gs='-kx';
7 I8 t9 D. o0 c }9 T( I elseif iter==2
2 b, |1 ]4 ]# M- g; C5 |) a NT=1;- O3 c, e( ?% U# @" n
NR=2;% 1发2收
% N4 b% ]1 ~2 i+ v6 X7 L x0 s) c gs='-^';
2 b1 O8 w, @, _: F$ n k+ n else$ t0 k1 Z+ F: W4 j1 S4 S0 h$ p
NT=1;
& Z. }4 a! F: Y4 O. P# ` NR=4;% 1发4收
x Z. ^9 J5 Q0 \ gs='-ro';
7 o) J1 Q9 n% G) c8 S0 C. H8 p# m end
' Q5 @1 ~$ G- m! g7 l% A5 t sq_NT=sqrt(NT);
( l5 }' C* e2 r X$ J for i_SNR=1:length(SNRdBs)
/ M ?- A: K% A& v V) ? SNRdB=SNRdBs(i_SNR);
# x$ G. m* L7 V sigma=sqrt(0.5/(10^(SNRdB/10)));%瑞利分布参数,噪声标准差5 | F' B: V p2 Z) u2 M
for i_packet=1:N_packet( p! a) R$ _$ ?, |% y7 o
symbol_data=randint(L_frame*b,NT); %产生L_frame*b行NT列二进制信息# I0 A, q0 x0 G5 f# q; M, V
[temp,sym_tab,P]=modulator(symbol_data.',b);%调制- Y& a0 z' V i( }8 |
X=temp.';%X为调制后序列(L_frame行1列)' H9 n6 Y$ O* X9 P2 u: A
Hr=(randn(L_frame,NR)+j*randn(L_frame,NR))/sq2;%瑞利信道衰落系数
" q+ Q0 I8 N, ]+ f( v( S9 I H=reshape(Hr,L_frame,NR);%重置Hr行列(L_frame行NR列)1 L' t [, E8 V" ^+ f5 N. J
Habs=sum(abs(H).^2,2);& S! V* F3 G0 L1 P6 `4 E/ B6 i
Z=0;1 f' P* a# H" I$ M0 C; |6 X
for i=1:NR1 b/ N% w: `. n- O1 T M
R(:,i)=sum(H(:,i).*X,2)/sq_NT+...* f% z1 J2 d6 t7 w3 A
sigma*(randn(L_frame,1)+j*randn(L_frame,1)); %经过瑞利信道并加复高斯白噪声
# ?) I" x8 C6 z+ \" Y' f7 v Z=Z+R(:,i).*conj(H(:,i));%MRC合并,合并系数为conj(H(:,i))
3 _3 \7 r/ w& {2 I+ D end
. L8 R* B/ E% {: J ]% N, E for m=1 %最大似然译码+ q3 f/ e+ i# h9 k, y
dl(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+...7 s) ^! d3 c8 D
(-1+sum(Habs,2))*abs(sym_tab(m))^2;, {% D. ]$ c8 G/ |6 ^# W" \
end
2 t9 T( P4 H0 D' a; N) M' v [y1,i1]=min(dl,[],2);
6 b8 E% \$ r& t- D& B5 N0 { Xd=sym_tab(i1).';
3 Y* o/ n* P9 ^# x3 s4 \ temp1=X>0;3 ?# I& e* k- ^! E2 U
temp2=Xd>0;1 i4 _9 y& E: T6 M
noeb_p(i_packet)=sum(sum(temp1~=temp2));%累加错误比特- ~. P0 N; A) Q' e+ h! k' N
end
5 {) B( D! @: c1 @* h. j BER(iter,i_SNR)=sum(noeb_p)/(N_packet*L_frame*b);%计算误比特率8 X( K% d; ^0 J( w
end
& a5 e& Z! W$ C7 C5 d m1 W semilogy(SNRdBs,BER(iter, ,gs),hold on
) O. h$ J; n% z# |* f: B axis([SNRdBs([1 end]) 0.5*10^(-4) 1e0])
" }9 s$ l8 ]8 }+ |* K1 uend" J, \! y3 |8 Q; @( k' x# q# @. G
title('BER peRFoemancde of MRC Scheme')
~4 S, L. \/ yxlabel('SNR[dB]'),ylabel('BER')
8 R( c8 W: k" K% a- ugrid on,set(gca,'fontsize',9)
- ~. @. F7 @7 k( @+ Glegend('SISO','MRC(Tx:1,Rx:2)','MRC(Tx:1,Rx:4)')
- Q8 s0 a# j' ?6 [ |
|