|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本人菜鸟,第一次接触matlab程序画流程图,不知道该如何按照这个程序画流程图, 尤其是这个程序里用了很多for循环, 比较迷茫……麻烦大神指点一下,非常感谢!
( }$ j! L9 _% O6 s- t%MRC_scheme.m1 b$ ?6 W2 s/ C
%接收分集-MRC
+ F2 R* y* c8 ]8 J9 O1 eclear,clf/ |: _0 O- [) Z! e
L_frame=130;' c) E& n/ Z. Z' Q% A; F- U7 }
N_packet=4000;%130个编码后符号,仿真4000组
3 m8 l" c3 h' vb=4;%设置为1/2/3/4对应于BPSK/QPSK/8PSK/16-QAM% @5 ?1 e! a7 ]7 T/ r, Q
SNRdBs=[0:2:20];5 f: n' v( w( u( m
sq2=sqrt(2);
7 S- `5 m% e! i( Cfor iter=1:3
% Y8 v9 ?- a* r0 a+ H1 k5 B1 x$ j& b" c if iter==1) d! z d. A7 o: N
NT=1;01 U' T' U# b7 q' E# q/ F
NR=1;%SISO q, _7 ]3 }+ u5 b+ |$ c* t6 k
gs='-kx';) J! q T; Q0 Y# G1 C( J$ H* h
elseif iter==2
% |6 b, v' G2 V% A NT=1;
4 N2 u# Q& j) }4 O- P( { NR=2;% 1发2收) d6 v7 u- o0 t) _/ N8 C$ H8 g L
gs='-^';
: [+ ]( w* q. U+ M' d" s% M7 P else
9 \/ f3 _0 C x- b5 w& k NT=1;- Z2 `! V3 M- }: q2 `2 z
NR=4;% 1发4收
0 _$ P) H+ G1 E _ gs='-ro';
8 O5 T3 z( ^0 } end
( q' E2 c$ f$ I" z* B sq_NT=sqrt(NT);
$ c! W; c1 T6 z, e for i_SNR=1:length(SNRdBs)
4 v" D& c6 O" K- y& ^6 j4 h SNRdB=SNRdBs(i_SNR);. x0 i6 f. c+ j7 V5 F0 q6 D# t. ]
sigma=sqrt(0.5/(10^(SNRdB/10)));%瑞利分布参数,噪声标准差0 q2 n$ f/ P0 C1 u9 S3 U6 \
for i_packet=1:N_packet+ c, l" Z3 y7 J/ A
symbol_data=randint(L_frame*b,NT); %产生L_frame*b行NT列二进制信息2 ^9 [$ r, y8 ^* \
[temp,sym_tab,P]=modulator(symbol_data.',b);%调制+ Z, R& o& j* i! X; K* D- J
X=temp.';%X为调制后序列(L_frame行1列)
& T1 [$ i6 [ I. D Hr=(randn(L_frame,NR)+j*randn(L_frame,NR))/sq2;%瑞利信道衰落系数1 }2 Q# X( R2 L |1 t, ^, a
H=reshape(Hr,L_frame,NR);%重置Hr行列(L_frame行NR列)
2 I J1 G7 @) r+ ^, L2 v+ u t Habs=sum(abs(H).^2,2);* ?+ R( s+ @& {7 y/ |
Z=0;
! f) Y- T! t7 U0 G; C3 L for i=1:NR& L; g7 [0 n" Z( q- P2 n
R(:,i)=sum(H(:,i).*X,2)/sq_NT+...
. b+ ~. j, M, G) ~/ F: z sigma*(randn(L_frame,1)+j*randn(L_frame,1)); %经过瑞利信道并加复高斯白噪声
& h n* p4 l3 Y; g! d0 F Z=Z+R(:,i).*conj(H(:,i));%MRC合并,合并系数为conj(H(:,i))
1 |8 B' [+ l9 G# g- Z end5 X- d9 Q5 C' a/ `" w0 y! o) ~
for m=1 %最大似然译码5 M+ {: q& y+ x2 J. t, I% o
dl(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+...; e* j0 t, Q1 q5 P/ V
(-1+sum(Habs,2))*abs(sym_tab(m))^2;0 |) U+ j) [5 V+ y& H' a$ L
end
" l& {7 g5 r* I- { [y1,i1]=min(dl,[],2);
6 L- i4 I% o( V+ ?6 b( I Xd=sym_tab(i1).';* d1 u+ p3 U3 \' i8 u$ C3 S
temp1=X>0;9 F* A$ W; {0 Y/ m. R2 s( d
temp2=Xd>0;
2 }4 Y" K. b2 A noeb_p(i_packet)=sum(sum(temp1~=temp2));%累加错误比特
0 Y T1 z( o5 O: L end
" J& D/ x8 d7 i. E9 w/ u5 p7 A: \: b BER(iter,i_SNR)=sum(noeb_p)/(N_packet*L_frame*b);%计算误比特率* a* Z% A( |4 p* c. V4 u
end
4 L. V5 Q- l- A- h semilogy(SNRdBs,BER(iter, ,gs),hold on6 G u; E5 O, y9 ]
axis([SNRdBs([1 end]) 0.5*10^(-4) 1e0]). k, ^( G4 r# u+ K% Z
end) k2 N, e. s8 M, P; G6 [. ]
title('BER peRFoemancde of MRC Scheme')# H# K P5 X$ H X
xlabel('SNR[dB]'),ylabel('BER')! Q- M- O9 ]1 b- s
grid on,set(gca,'fontsize',9)" X! Q, I9 l6 Y$ h7 H! f
legend('SISO','MRC(Tx:1,Rx:2)','MRC(Tx:1,Rx:4)')
* N/ q; j* H1 o) ^# B i |
|