|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本人菜鸟,第一次接触matlab程序画流程图,不知道该如何按照这个程序画流程图, 尤其是这个程序里用了很多for循环, 比较迷茫……麻烦大神指点一下,非常感谢! Q1 h* e6 f" M9 e) Q& j
%MRC_scheme.m' c0 l, U0 G& L- D
%接收分集-MRC
+ N- R/ v' O$ N! eclear,clf
3 @2 F' q" t5 T' pL_frame=130;" F& m9 v4 k Q- G
N_packet=4000;%130个编码后符号,仿真4000组
3 U1 B* d7 [" t! g# t! A: {b=4;%设置为1/2/3/4对应于BPSK/QPSK/8PSK/16-QAM
9 D( }# T# X; C0 B; ]2 A) SSNRdBs=[0:2:20]; K1 T9 C; L3 `! @6 r! I4 V& U
sq2=sqrt(2);5 v8 P8 C# B- T _6 H1 g$ z
for iter=1:3
' m4 q0 O7 U) ?% a7 G' q, Q if iter==1
% p8 I: [" V. a1 P) M$ K NT=1;0; R) u6 P1 ?. E7 x
NR=1;%SISO6 M" L# a+ t- a/ I4 O1 I
gs='-kx';
- o( }- C" k/ h6 T+ U+ {6 _ elseif iter==2+ Q& Z8 u, x* e; E# n
NT=1;# r6 J6 U$ G/ G6 i3 S$ ^1 ^0 y
NR=2;% 1发2收
6 d( N; n" v8 n8 O) l0 q gs='-^';. c: G/ x: ?' ^. ~3 P6 p
else- q$ N% \: m- b2 T! a5 l
NT=1;# V- V( z5 Z6 z( x; ^5 S" c8 x
NR=4;% 1发4收5 ^/ ~( p) i5 v7 O ~3 g3 F3 P
gs='-ro';' R! {$ J1 q2 b. Z
end1 q% E4 C1 G5 g6 S
sq_NT=sqrt(NT);, |- I% {" _% a# h' |- Y
for i_SNR=1:length(SNRdBs)
$ F8 b8 x/ A' f1 y( s SNRdB=SNRdBs(i_SNR);
+ U) I6 u6 z! L sigma=sqrt(0.5/(10^(SNRdB/10)));%瑞利分布参数,噪声标准差: t4 X9 s6 T! [, U/ V r
for i_packet=1:N_packet' O8 s( a* G3 ]. T/ o& X
symbol_data=randint(L_frame*b,NT); %产生L_frame*b行NT列二进制信息
7 O* \: V/ x q( t2 t1 m1 s [temp,sym_tab,P]=modulator(symbol_data.',b);%调制! @$ a" o& ~! N/ k9 K
X=temp.';%X为调制后序列(L_frame行1列)
- _8 j* D: h |) \! {5 p Hr=(randn(L_frame,NR)+j*randn(L_frame,NR))/sq2;%瑞利信道衰落系数- Q4 n: X8 s( G) n- S
H=reshape(Hr,L_frame,NR);%重置Hr行列(L_frame行NR列)2 n4 w( S" D2 E+ z
Habs=sum(abs(H).^2,2);
+ p, [; i; b* L: H# O9 H! n" W8 X Z=0;9 @, O% D5 Z7 d) B3 J+ d
for i=1:NR
; S$ g; r$ Q" A& `) B9 @ R(:,i)=sum(H(:,i).*X,2)/sq_NT+...) I5 D5 C/ D3 h$ c
sigma*(randn(L_frame,1)+j*randn(L_frame,1)); %经过瑞利信道并加复高斯白噪声) s: d q" X8 d& `6 T% X S
Z=Z+R(:,i).*conj(H(:,i));%MRC合并,合并系数为conj(H(:,i))$ i% Z: X$ ]7 U. v7 C' g/ d' _
end
6 {/ J; M0 b/ a1 l1 v Q for m=1 %最大似然译码
! ^# q4 C' g1 o+ ?( a! @2 l dl(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+...
4 G7 D2 [1 j- ^* F& O6 E (-1+sum(Habs,2))*abs(sym_tab(m))^2;. O7 |$ X, M2 Y' I4 Z8 {
end1 @( `( k$ N: p& T; K8 l( m2 G; F
[y1,i1]=min(dl,[],2);* m# |8 {0 {: r7 j0 [6 J
Xd=sym_tab(i1).';, Y. r: P( ?- A+ ]6 K. E
temp1=X>0;: ~+ }* D% [& a, O* Q/ p( i
temp2=Xd>0;1 h& T: `9 w, i% c7 E) y" u4 k5 ]; [
noeb_p(i_packet)=sum(sum(temp1~=temp2));%累加错误比特3 D9 H5 g" L( M: I5 c2 j6 J
end
6 q: R$ [2 F8 h" {+ y i BER(iter,i_SNR)=sum(noeb_p)/(N_packet*L_frame*b);%计算误比特率' b9 @, [& j2 `! B
end
- H! c/ D6 b/ t# q7 x- O% M* s: d semilogy(SNRdBs,BER(iter, ,gs),hold on
& k3 ~1 G ~5 W( } axis([SNRdBs([1 end]) 0.5*10^(-4) 1e0])
2 p x) F1 ? @* Oend) [- Y. N- l- x# ~, n; P+ k
title('BER peRFoemancde of MRC Scheme')# B# m. B' z! `# v' z5 }9 F
xlabel('SNR[dB]'),ylabel('BER')- O: B& s* M, f# V9 g- M) J: S, v
grid on,set(gca,'fontsize',9)
4 {" X- ?9 I% I! K* S9 X! Hlegend('SISO','MRC(Tx:1,Rx:2)','MRC(Tx:1,Rx:4)')
( T ]/ Y+ y) n4 ^ |
|