»ùÓÚMATLABµÄÊý×ÖƵ´øͨÐÅϵͳµÄ·ÂÕæ - ͼÎÄ

·¢²¼Ê±¼ä : ÐÇÆÚËÄ ÎÄÕ»ùÓÚMATLABµÄÊý×ÖƵ´øͨÐÅϵͳµÄ·ÂÕæ - ͼÎĸüÐÂÍê±Ï¿ªÊ¼ÔĶÁ

±±¾©Óʵç´óѧÊÀ¼ÍѧԺ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£©

²Î¿¼ÎÄÏ×

[1] ·®²ýÐÅ£¬Õ²µÀÓ¹£¬Ðì±þÏ飬Îâ³É¿Â£®Í¨ÐÅÔ­Àí[M]£®±±¾©£º¹ú·À¹¤Òµ³ö°æÉ磬

1980£º171~260£®

[2] ѦÅôå¹£®µç×ÓÓëͨÐŵç·¼ÆËã»ú·ÂÕæ[M]£®±±¾©£ºÃºÌ¿¹¤Òµ³ö°æÉ磬2003£º

113~144£®

[3] µË»ª£®MATLABͨÐÅ·ÂÕæ¼°Ó¦ÓÃʵÀýÏê½â[M]£®±±¾©£ºÈËÃñÓʵç³ö°æÉ磬2003£º

99~115£®

[4] ³Â»³è¡£®MATLAB¼°ÆäÔÚÀí¹¤¿Î³ÌÖеÄÓ¦ÓÃÖ¸ÄÏ[M]£®Î÷°²£ºÎ÷°²µç×ӿƼ¼´óѧ

³ö°æÉ磬2002£º146~180£®

[5] ÕÅÇ«£®Í¨ÐÅϵͳÖÐMATLAB»ù´¡Óë·ÂÕæÓ¦ÓÃ[M]£®Î÷°²£ºÎ÷°²µç×ӿƼ¼´óѧ³ö°æ

É磬2010£º85~109£®

[6] ËïÒÙ£®MATLABͨÐÅ·ÂÕ濪·¢ÊÖ²á[M]£®±±¾©£º¹ú·À¹¤Òµ³ö°æÉ磬2005£º138~168£® [7] ÍõÁ¢Äþ£¬ÀÖ¹âУ¬Õ²·Æ£®MATLABÓëͨÐÅ·ÂÕæ[M]£®±±¾©£ºÈËÃñÓʵç³ö°æÉ磬2000£º

74~86£®

[8] Ô¼º²¡¤G¡¤ÆÕÂÞ¿Ë˹£®ÏÖ´úͨÐÅϵͳµÄʹÓÃMATLAB[M]£®Î÷°²£ºÎ÷°²½»Í¨Ñ§³ö°æ

É磬2001£º95~121£®

[9] ³ÂƼ£®ÏÖ´úͨÐÅʵÑéϵͳµÄ¼ÆËã»ú·ÂÕæ[M]£®±±¾©£º¹ú·À¹¤Òµ³ö°æÉ磬2003£º

171~260£®

[10] ËïÁÁ£®MATLABÓïÑÔÓë¿ØÖÆϵͳ·ÂÕæ[M]£®±±¾©£º±±¾©¹¤Òµ´óѧ³ö°æÉ磬2001£º

64~83£®

[11] William A Shay£®Understanding Data Communications and Networks[M]£º

Wadsworth Publishing Company£¬1998£º162~164£®

[12] William Stallings£®Data and Computer Communications£¬Seventh Edition[M]:

Prentice Hall£¬2003£º201~207£®

30

±±¾©Óʵç´óѧÊÀ¼ÍѧԺ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£©

¸½Â¼

MATLAB·ÂÕæ³ÌÐò£º Ò»£®QPSK·ÂÕæ

clear;

T=1; fc=10/T; ml=2; nb=100;

delta_T=T/200; fs=1/delta_T; SNR=0;

t=0:delta_T:nb*T-delta_T; N=length(t);

data=randn(1,nb)>0.5; datanrz=data.*2-1;

data1=zeros(1,nb/delta_T); for q=1:nb

data1((q-1)/delta_T+1:q/delta_T)=datanrz(q); end

% ½«»ù´øÐźű任³É¶ÔÓ¦²¨ÐÎÐźŠdata0=zeros(1,nb/delta_T); for q=1:nb

data0((q-1)/delta_T+1:q/delta_T)=data(q); % end

% ·¢ÉäµÄÐźÅ

data2=abs(fft(data1));

% ´®²¢×ª»»£¬½«ÆæżλÊý¾Ý·Ö¿ª idata=datanrz(1:ml:(nb-1)); qdata=datanrz(2:ml:nb); % QPSKÐźŵĵ÷ÖÆ

ich=zeros(1,nb/delta_T/2); for i=1:nb/2

ich((i-1)/delta_T+1:i/delta_T)=idata(i); end

for ii=1:N/2

a(ii)=sqrt(2/T)*cos(2*pi*fc*t(ii)); end

31

±±¾©Óʵç´óѧÊÀ¼ÍѧԺ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£©

idata1=ich.*a; qch=zeros(1,nb/2/delta_T); for j1=1:nb/2

qch((j1-1)/delta_T+1:j1/delta_T)=qdata(j1); end

for jj=1:N/2

b(jj)=sqrt(2/T)*sin(2*pi*fc*t(jj)); end

qdata1=qch.*b;

s=idata1+qdata1; ss=abs(fft(s));

% ÈðÀûË¥ÂäÐŵÀ

ray_ich=raylrnd(0.8,1,nb/2/delta_T); ray_qch=raylrnd(0.8,1,nb/2/delta_T); Ray_idata=idata1.*ray_ich; Ray_qdata=qdata1.*ray_qch; Ray_s=Ray_idata+Ray_qdata;

%%%%%%%%%%%%%%%%%%%%%%%%%% % ¸ß˹ÐŵÀ

s1=awgn(s,SNR); % ͨ¹ý¸ß˹ÐŵÀÖ®ºóµÄÐźÅ

s11=abs(fft(s1)); % ¿ìËÙ¸µÀïÒ¶±ä»»µÃµ½ÆµÆ× s111=s1-s; % ¸ß˹ÔëÉùÇúÏß %%%%%%%%%%%%%%%%%%%%%%%%%%

Awgn_s=awgn(Ray_s,SNR); % ͨ¹ý¸ß˹ÐŵÀÔÙͨ¹ýÈðÀûË¥ÂäÐŵÀ % QPSK ½âµ÷²¿·Ö

% ½âµ÷²¿·Ö£¨¸ß˹ÐŵÀ£©

idata2=s1.*a; % ÕâÀïÃæÆäʵÒþ²ØÁËÒ»¸ö´®²¢×ª»»µÄ¹ý³Ì qdata2=s1.*b; % ¶ÔÓ¦µÄÐźÅÓëÕýÓàÏÒÐźÅÏà³Ë

idata3=zeros(1,nb/2); % ½¨Á¢1*nbÊý×飬ÒÔ´æ·Å½âµ÷Ö®ºóµÄÐźŠqdata3=zeros(1,nb/2);

% ³éÑùÅоöµÄ¹ý³Ì£¬Óë0×÷±È½Ï£¬data>=0,ÔòÖÃ1£¬·ñÔòÖÃ0 for n=1:nb/2

% A1(n)=sum(idata2((n-1)/delta_T+1:n/delta_T)); if sum(idata2((n-1)/delta_T+1:n/delta_T))>=0 idata3(n)=1;

else idata3(n)=0; end

% A2(n)=sum(qdata2((n-1)/delta_T+1:n/delta_T)); if sum(qdata2((n-1)/delta_T+1:n/delta_T))>=0

32

±±¾©Óʵç´óѧÊÀ¼ÍѧԺ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£©

qdata3(n)=1; else qdata3(n)=0; end end

% ΪÁËÏÔʾÐÇ×ùͼ,½«ÐźŽøÐд¦Àí idata4=zeros(1,nb/2); qdata4=zeros(1,nb/2); for n=1:nb/2

Awgn_ichsum(n)=sum(idata2((n-1)/delta_T+1:n/delta_T))*delta_T; if Awgn_ichsum(n)>=0 idata4(n)=1; else idata4(n)=0; end

Awgn_qchsum(n)=sum(qdata2((n-1)/delta_T+1:n/delta_T))*delta_T; if Awgn_qchsum(n)>=0 qdata4(n)=1; else qdata4(n)=0; end end

% ½«ÅоöÖ®ºóµÄÊý¾Ý´æ·Å½øÊý×é demodata=zeros(1,nb);

demodata(1:ml:(nb-1))=idata3; % ´æ·ÅÆæÊýλ demodata(2:ml:nb)=qdata3; % ´æ·ÅżÊýλ

%ΪÁËÏÔʾ£¬½«Ëü±ä³É²¨ÐÎÐźţ¨¼´´«ÊäÒ»¸ö1´ú±íµ¥Î»¿í¶ÈµÄ¸ßµçƽ£© demodata1=zeros(1,nb/delta_T); % ´´½¨Ò»¸ö1*nb/delta_TµÄÁã¾ØÕó for q=1:nb

demodata1((q-1)/delta_T+1:q/delta_T)=demodata(q); % ½«¼«ÐÔÂë±ä³É¶ÔÓ¦µÄ²¨ÐÎÐźŠend

% ÀÛ¼ÆÎóÂëÊý

% abs(demodata-data)Çó½ÓÊն˺ͷ¢Éä¶Ë

% Êý¾Ý²îµÄ¾ø¶ÔÖµ£¬ÀÛ¼ÆÖ®ºó¾ÍÊÇÎóÂë¸öÊý Awgn_num_BER=sum(abs(demodata-data))

%%%%%%%%%%%%%%%%%%% % ½âµ÷²¿·Ö£¨ÈðÀû+¸ß˹£©

Ray_idata2=Ray_s.*a; Ray_qdata2=Ray_s.*b;

% Ray_idata3=zeros(1,nb/2); % Ray_qdata3=zeros(1,nb/2);

33

ÁªÏµºÏͬ·¶ÎÄ¿Í·þ£ºxxxxx#qq.com(#Ì滻Ϊ@)