|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本人菜鸟,第一次接触matlab程序画流程图,不知道该如何按照这个程序画流程图, 尤其是这个程序里用了很多for循环, 比较迷茫……麻烦大神指点一下,非常感谢!' T8 {! m e y
%MRC_scheme.m
8 l9 i6 s2 k( j3 g8 H%接收分集-MRC
' K" M4 s# J* d/ d. wclear,clf8 v( a! M" \! i$ A# h3 U' L3 `
L_frame=130;1 ~" d# w; Z7 y
N_packet=4000;%130个编码后符号,仿真4000组3 ]1 ~$ ]% C! Q+ w9 @
b=4;%设置为1/2/3/4对应于BPSK/QPSK/8PSK/16-QAM3 f$ o1 [7 w, h5 A+ m
SNRdBs=[0:2:20];
! w' ~7 o* T( o0 n4 T( \sq2=sqrt(2);8 h% X3 c S1 C: @/ b
for iter=1:31 u4 J1 ^* k5 _0 {
if iter==1' A" q! H3 R7 K
NT=1;0
! p) r' I- X8 F) i( ~2 J2 e NR=1;%SISO
8 c4 Y. `0 d4 [, u gs='-kx';/ H- C8 _# n& m3 `% b+ n
elseif iter==28 }/ Y" k3 h2 I7 i2 ?) F0 E3 C
NT=1;7 j2 M% n& N3 z+ \$ f1 q7 T
NR=2;% 1发2收) i: B; i2 E, @* {) s8 q }
gs='-^';
' C' U% J/ \$ l% O _& s else6 h: T1 W% M& F$ j# \
NT=1;
0 j4 I, s; a' v. p x7 C5 \% e' v9 f NR=4;% 1发4收
5 L) u+ j+ u8 n8 G6 p( f; w gs='-ro';2 I% M% J) y- T' O* z! ~. H% P
end& O2 Q' I& [% |5 H+ C2 F9 U& x) `1 O
sq_NT=sqrt(NT);
c' Z+ s+ K9 r; z( q# m4 L for i_SNR=1:length(SNRdBs)" ]4 E/ q a( b- O8 y( Q" F: }) }
SNRdB=SNRdBs(i_SNR);8 @; w/ T8 B3 [6 s+ S' f
sigma=sqrt(0.5/(10^(SNRdB/10)));%瑞利分布参数,噪声标准差
9 Z6 s6 W9 e+ i7 T, P for i_packet=1:N_packet
: K& x* |& J- X3 a( j- D" l symbol_data=randint(L_frame*b,NT); %产生L_frame*b行NT列二进制信息7 e; f8 {5 W: s$ V
[temp,sym_tab,P]=modulator(symbol_data.',b);%调制6 s) V! P, K1 ~
X=temp.';%X为调制后序列(L_frame行1列)) I8 k U6 W7 B# y1 @# D% E; n: v
Hr=(randn(L_frame,NR)+j*randn(L_frame,NR))/sq2;%瑞利信道衰落系数( y; z9 e# z( d+ V2 f \
H=reshape(Hr,L_frame,NR);%重置Hr行列(L_frame行NR列)1 d& v& Y% l& v5 S9 Y5 N0 h* S
Habs=sum(abs(H).^2,2); q8 ?8 h, i2 T5 b& F
Z=0;
9 F9 g, G: u! Y' n for i=1:NR2 e# Z2 u5 A7 H' w% g" B
R(:,i)=sum(H(:,i).*X,2)/sq_NT+...9 \3 O3 m/ z# D' C! m4 K) |* X
sigma*(randn(L_frame,1)+j*randn(L_frame,1)); %经过瑞利信道并加复高斯白噪声
! w* b1 O% B* X4 M: i Z=Z+R(:,i).*conj(H(:,i));%MRC合并,合并系数为conj(H(:,i))2 X: z0 K, n0 ~* s4 r
end: C6 r, J1 w6 G6 ]$ G2 Z u
for m=1 %最大似然译码* w/ D& T# U9 ?" P& z
dl(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+... z& B; Z5 q4 J1 O( _: ]! E
(-1+sum(Habs,2))*abs(sym_tab(m))^2;
6 Q1 f6 o3 {0 z" K( T) t6 _ end
) p( [$ l9 }# E [y1,i1]=min(dl,[],2);
/ P! h" z4 ?0 P9 ~. v! n) y Xd=sym_tab(i1).';
. I: b# k) M% q4 @4 j `% `$ | temp1=X>0;
" i6 U' k0 @' F% p, H temp2=Xd>0;
9 o1 u" Z$ h! w noeb_p(i_packet)=sum(sum(temp1~=temp2));%累加错误比特
' T# ^1 [" I; I: Q end- |0 i7 a4 Y& Q' n$ e2 P
BER(iter,i_SNR)=sum(noeb_p)/(N_packet*L_frame*b);%计算误比特率6 O) x5 m& @. Z8 M) [1 V7 x
end
' Z: T: N1 W0 Y! y3 } semilogy(SNRdBs,BER(iter, ,gs),hold on
0 y F C0 P& Y$ l/ f$ G axis([SNRdBs([1 end]) 0.5*10^(-4) 1e0])2 ~4 W! \) ^& \% o
end
7 T: m c g6 ?: Otitle('BER peRFoemancde of MRC Scheme')
9 x1 X L( ^ U+ \, `; [9 Xxlabel('SNR[dB]'),ylabel('BER')
) `' s8 E* N$ E1 C4 d" \. E, q/ xgrid on,set(gca,'fontsize',9)
6 v2 q* T6 d; D- L. V+ C- f( ]legend('SISO','MRC(Tx:1,Rx:2)','MRC(Tx:1,Rx:4)')- F4 l1 `5 a* s1 O% K* H$ Y% _
|
|