|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本人菜鸟,第一次接触matlab程序画流程图,不知道该如何按照这个程序画流程图, 尤其是这个程序里用了很多for循环, 比较迷茫……麻烦大神指点一下,非常感谢!
% G! L) g( W3 L2 \' Q2 W5 h%MRC_scheme.m( b) q5 C c) } k7 \
%接收分集-MRC0 {. D5 N1 [# L2 J# \
clear,clf; Q$ L4 |5 G+ ?2 o3 E. a- [
L_frame=130;9 C3 I# X+ t& _4 T
N_packet=4000;%130个编码后符号,仿真4000组
2 z1 p3 T8 w$ W, Ib=4;%设置为1/2/3/4对应于BPSK/QPSK/8PSK/16-QAM# w* i5 e3 `% q; r
SNRdBs=[0:2:20];( n! t: L* |* i/ A
sq2=sqrt(2);9 ?6 A0 G' W9 e3 ~
for iter=1:3
, ? V: E; H5 y' C; z4 l- S/ Z if iter==1
' u6 Z' f [1 b NT=1;0& I/ P, H( Z" p2 V ^
NR=1;%SISO
7 j- M- S6 |( ~6 H gs='-kx';+ c5 a. @5 }- C6 {- j
elseif iter==26 z1 F6 ~9 l, ^+ }; l5 x
NT=1;% U* B2 K! A- Y: r) v( E; T
NR=2;% 1发2收
# L& u D6 l3 x5 P gs='-^';
; @5 _* W; c1 T7 f8 \8 G; M else
5 C. j! M' G J" ]0 C+ {2 o% ^ NT=1;
" c+ G1 D8 r3 E3 Y( f NR=4;% 1发4收
2 T Q% e$ @* j1 I" O; Q& l) m4 I gs='-ro';
0 ~ C8 _ A z! r- Y5 I4 } end3 f# }( \' k; |$ {. o9 y' D
sq_NT=sqrt(NT);0 A! K! W2 x4 H; H
for i_SNR=1:length(SNRdBs)
1 f3 A: v* K/ J SNRdB=SNRdBs(i_SNR);
! _5 b. b# T f0 c3 F( Y6 { sigma=sqrt(0.5/(10^(SNRdB/10)));%瑞利分布参数,噪声标准差/ i( [) e* ?$ o+ I$ @7 b' o
for i_packet=1:N_packet
" C1 c% m, {( A) ? symbol_data=randint(L_frame*b,NT); %产生L_frame*b行NT列二进制信息
0 }1 s& X" G' h0 v7 K5 o/ S% ^0 W [temp,sym_tab,P]=modulator(symbol_data.',b);%调制. ~2 `# V9 @& L: i
X=temp.';%X为调制后序列(L_frame行1列)
: o* x8 Q" G3 t8 R Hr=(randn(L_frame,NR)+j*randn(L_frame,NR))/sq2;%瑞利信道衰落系数
) i) ?- ]+ }$ Z; _ H=reshape(Hr,L_frame,NR);%重置Hr行列(L_frame行NR列)
( h, J0 H8 h8 T Habs=sum(abs(H).^2,2);3 F. G" K6 H" k; T2 {: a
Z=0;
4 f5 A) g' |: w( u2 { for i=1:NR
, Y: A2 @. O# i1 n R(:,i)=sum(H(:,i).*X,2)/sq_NT+...: I) K7 R" m4 M* Y& T. W( y; U7 S- N/ D
sigma*(randn(L_frame,1)+j*randn(L_frame,1)); %经过瑞利信道并加复高斯白噪声5 t* F3 P4 j7 Z( h' d ]4 ]
Z=Z+R(:,i).*conj(H(:,i));%MRC合并,合并系数为conj(H(:,i))+ o$ T& W3 p4 R" j0 Q
end1 h& A6 H0 c1 ?. C( P8 v2 r2 Q! G
for m=1 %最大似然译码
! s1 ~! T$ `* ]: X6 Z dl(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+...
5 P; f. M" O" V) s9 ] (-1+sum(Habs,2))*abs(sym_tab(m))^2;
( B' q% G$ V0 k. | ] end
: m- d, K7 w9 ?& y. T- J/ S) J [y1,i1]=min(dl,[],2);
) Q4 C0 S, d5 \ Xd=sym_tab(i1).';7 H( | F* K+ h G9 T' Q* u; E
temp1=X>0;: W& e: R1 G' C9 T
temp2=Xd>0;6 k5 J5 ?" U. ?) W1 K
noeb_p(i_packet)=sum(sum(temp1~=temp2));%累加错误比特2 f8 w( J+ ?# x4 F* v- Z, J
end+ D6 v2 y* ?2 [" _. f: G1 Z' F
BER(iter,i_SNR)=sum(noeb_p)/(N_packet*L_frame*b);%计算误比特率
! ]# ~$ P3 P2 t" M( I8 t. O end. e5 `& y" k2 W1 p' H8 G
semilogy(SNRdBs,BER(iter, ,gs),hold on% o7 k/ F" e# y: z2 ?& ?0 m4 q- d
axis([SNRdBs([1 end]) 0.5*10^(-4) 1e0])0 i0 K9 O+ Z0 B- a
end$ a# } k2 Z9 Y" A
title('BER peRFoemancde of MRC Scheme')1 y4 S" D, ?) l- y6 [
xlabel('SNR[dB]'),ylabel('BER')2 ^ a3 h- n$ b" h) v& V
grid on,set(gca,'fontsize',9)
+ ?3 L! |( b# F0 O' Tlegend('SISO','MRC(Tx:1,Rx:2)','MRC(Tx:1,Rx:4)')
. f% [- B7 k& _" U K% j |
|