»ùÓÚMATLABµÄBPSKµ÷ÖÆ·ÂÕæ¼°ÐÔÄÜ·ÖÎö ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/12/20 22:49:34ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

²Î¿¼ÎÄÏ×

[1] ²ÜÖ¾¸ÕµÈ±à£¬ÏÖ´úͨÐÅÔ­Àí[M]£¬Ç廪´óѧ³ö°æÉ磬2008 [2] ³ÌÅåÇà. Êý×ÖÐźŴ¦Àí½Ì³Ì[M].Ç廪´óѧ³ö°æÉç [3] ÁõÎÀ¹ú. MATLAB³ÌÐòÉè¼Æ½Ì³Ì[M].ÖйúË®ÀûË®µç³ö°æÉç

[4] É£ÁÖ£¬ºÂ½¨¾ü£¬Áõµ¤£¬Êý×ÖͨÐÅ[M].±±¾©Óʵç´óѧ³ö°æÉ磬2002 [5] ÃçÔÆ³¤µÈÖ÷±à£¬ÏÖ´úͨÐÅÔ­Àí¼°Ó¦ÓÃ[M]¡£µç×Ó¹¤Òµ³ö°æÉ磬2005 [6] ÎâΰÁ壬ÅÓÇß»ª£¬Í¨ÐÅÔ­Àí[M]£¬±±¾©Óʵç´óѧ³ö°æÉ磬2005 [7] ÕÅÊ¥ÇÚ£¬MATLAB7.0ʵÓý̳Ì[M]£¬»úÆ÷¹¤Òµ³ö°æÉ磬2006

[8] ÉÛÓñ±ó£¬Matlab/SimulinkͨÐÅÔ­Àí½¨Ä£Óë·ÂÕæÊµÀý·ÖÎö[M]£¬Ç廪´óѧ³ö°æÉ磬2008

[9]·®²ýÐÅ£¬Í¨ÐÅÔ­Àí(µÚ6°æ) [M].±±¾©:¹ú·À¹¤Òµ³ö°æÉç.2001£®

15

ÖÂл

ͨ¹ý±¾´Î¼ÆËã»úͨÐſγÌÉè¼Æ£¬ÈÃÎÒÔÚ³ýÁ˿α¾µÄ֪ʶ֮ÍâµÄ֪ʶÓÐÁ˸üºÃµÄÀí½â£¬¶Ô8PSKµ÷ÖÆ½âµ÷µÄ¹¤×÷Ô­ÀíÓÐÁ˸üºÃµÄÀí½â£¬ÔÚÉè¼ÆÖ®Ç°£¬ÊÕ¼¯Á˺ܶàµÄ²ÄÁÏ£¬µ«µ±ÕæÕýÉîÈëÉè¼ÆÊ±£¬È´Ò²Óöµ½ÁËÖî¶àµÄÎÊÌ⣬ÈÃÎÒÌå»áµ½ÁËÉè¼ÆµÄÒªÇóÔÚÓÚϵͳÐÔ£¬¿ÉÐÐÐÔ£¬×¼È·ÐÔ£¬Öî¶àÎÊÌâµÄ³öÏÖ¸øÎÒÃǵÄÉè¼Æ´øÀ´ÁËÄѶȣ¬Ò²Í¬Ê±ÊǸü´óµÄÒ»´ÎÌôÕ½£¬×îÖÕ£¬ÔÚÀÏʦÒÔ¼°Í¬Ñ§µÄ°ïÖúÏ£¬¿Ë·þÁËÖÖÖÖÀ§ÄÑ£¬Ë³ÀûµÄÍê³ÉÁ˱¾´ÎͨÐÅ·ÂÕæÑµÁ·µÄ¿Î³ÌÉè¼Æ£¬ÔÚ´Ë£¬Ê×ÏÈÒª¸ÐлѧУ°²ÅŴ˴ογÌÉè¼Æ£¬ÈÃÎÒÓлú»á¶Ô±¾´Î¿Î³ÌÉè¼ÆÄܹ»ÉîÈëÀí½âºÍÉè¼Æ£¬ÔٴθÐлÀÏʦµÄϸÐÄÖ¸µ¼ºÍ¸ÄÕý£¬»¹ÓÐͬ×éͬѧµÄÏ໥ÍŽáºÍ°ïÖú£¬Ê¹ÎÒÍê³ÉÁ˱¾´Î¼ÆËã»úͨÐſγÌÉè¼Æ£¬Ê¹ÎÒÔÚÇóѧµÄµÀ·ÉÏÓÐÁ˸ü¶à·½ÃæÖªÊ¶µÄ»ñµÃ¡£Éè¼Æ¹ý³ÌÖвéÔÄÁË´óÁ¿µÄÓйØPSKµ÷ÖÆ½âµ÷Éè¼ÆµÄÊé¼®£¬¹®¹ÌÁËÒÔǰËùѧ¹ýµÄ֪ʶ£¬¶øÇÒѧµ½Á˺ܶàÔÚÊé±¾ÉÏËùûÓÐѧµ½¹ýµÄ֪ʶ¡£Í¨¹ýÕâ´Î¿Î³ÌÉè¼ÆÊ¹ÎÒ¶®µÃÁËÀíÂÛÓëʵ¼ÊÏà½áºÏµÄ±ØÒªÐÔ£¬Ö»ÓÐÀíÂÛ֪ʶÊÇÔ¶Ô¶²»¹»µÄ£¬Ö»ÓаÑËùѧµÄÀíÂÛ֪ʶÓëʵ¼ùÏà½áºÏÆðÀ´£¬´ÓÀíÂÛÖеóö½áÂÛ£¬²ÅÄÜÕæÕýΪÉç»á·þÎñ£¬´Ó¶øÌá¸ß×Ô¼ºµÄʵ¼Ê¶¯ÊÖÄÜÁ¦ºÍ¶ÀÁ¢Ë¼¿¼µÄÄÜÁ¦¡£ÔٴθÐлѧУ£¬¸ÐлÀÏʦ£¬¸Ðлͬѧ¡£

16

¸½Â¼

clear all close all clc

num=10; %ÂëÔª¸öÊý tnum=200;%ÂëÔª³¤¶È

N=num*tnum;¸öÂëÔªÕûÌ峤¶È

a=randint(1,num,2); %²úÉú1ÐÐnumÁеľØÕ󣬾ØÕóÄÚ0ºÍ1Ëæ»ú³öÏÖ fc=0.25; %ÔØ²¨ÆµÂÊΪ0.5

t=0:0.05:9.99;%t´Ó0µ½9.99£¬¼ä¸ôΪ0.05 s=[];c=[];

for i=1:num %i´Ó1µ½10Ñ­»· if(a(i)==0)

A=zeros(1,tnum); %i=0ʱ£¬²úÉúÒ»¸öÂëÔª³¤¶ÈΪtnum£¨200£©µÄ0ÂëÔª else

A=ones(1,tnum); %i=1ʱ£¬²úÉúÒ»¸öÂëÔª³¤¶ÈΪtnum£¨200£©µÄ1ÂëÔª end

s=[s A]; %sÎªËæ»ú»ù´øÐźŠcs=sin(2*pi*fc*t);

c=[c cs]; %cÎªÔØ²¨ÐźŠend

%²ÉÓÃÄ£Äâµ÷ÖÆ·½·¨µÃµ½µ÷ÖÆÐźŠs_NRZ=[];

for i=1:num %i´Ó1µ½num£¨10£©Ñ­»· if(a(i)==0)

A=ones(1,tnum); %i=0ʱ£¬²úÉúÒ»¸öÂëÔª³¤¶ÈΪtnum£¨200£©µÄ1ÂëÔª else

A=-1*ones(1,tnum); %i·Ç0ʱ£¬²úÉúÒ»¸öÂëÔª³¤¶ÈΪtnum£¨200£©µÄ-1ÂëÔª end

17

s_NRZ=[s_NRZ,A]; %s_NRZΪ˫¼«ÐԷǹéÁãÂë end

e=s_NRZ.*c; %eΪBPSKµ÷ÖÆÐźŠfigure(1); %ͼ1

subplot(3,2,1); %ͼ1·ÖΪ3¡Á2²¿·ÖµÄµÚÒ»²¿·Ö plot(s); %×÷s£¨»ù´øÐźţ©µÄ²¨ÐÎͼ grid on;

axis([0 N -2 2]); %ºáÖ᳤¶ÈΪ0µ½N£¬×ÝÖ᷶ΧΪ-2µ½+2 xlabel('»ù´øÐźÅs(t)'); %xÖáµÄ×¢ÊÍ ylabel('»ù´øÐźŷùÖµ'); %yÖáµÄ×¢ÊÍ subplot(323);plot(c);grid on; axis([0 N -2 2]);

xlabel('BPSKÔØ²¨ÐźÅ');

ylabel('BPSKÔØ²¨ÐźŷùÖµ'); %×÷c£¨BPSKÔØ²¨Ðźţ©µÄ²¨ÐÎͼ subplot(325);plot(e);grid on; axis([0 N -2 2]);

xlabel('BPSKµ÷ÖÆÐźÅ');

ylabel('BPSKµ÷ÖÆÐźŷùÖµ'); %×÷e£¨BPSKµ÷ÖÆÐźţ©µÄ²¨ÐÎͼ %ÐÅºÅµÄÆµÆ× Fs=200; %²ÉÑùƵÂÊ n=length(s); %»ù´øÐźų¤¶È

f=[0:Fs/n:Fs-Fs/n]-Fs/2; %ÐÞÕýƵÂÊfµÄ·¶Î§ S=fft(s); %»ù´øÐźÅsµÄ¿ìËÙ¸µÀïÒ¶±ä»» E=fft(e); %»ù´øÐźÅeµÄ¿ìËÙ¸µÀïÒ¶±ä»» C=fft(c); %»ù´øÐźÅcµÄ¿ìËÙ¸µÀïÒ¶±ä»» subplot(322);

plot(f,abs(fftshift(S))); %»ù´øÐÅºÅµÄÆµÆ× title('»ù´øÐÅºÅÆµÆ×');

xlabel('f/hz');ylabel('S(w)'); grid on; subplot(324);

18

plot(f,abs(fftshift(C))); %ÔØ²¨ÐÅºÅµÄÆµÆ× title('ÔØ²¨ÐÅºÅÆµÆ×');

xlabel('f/hz');ylabel('C(w)'); grid on; subplot(326);

plot(f,abs(fftshift(E))); %µ÷ÖÆÐÅºÅµÄÆµÆ× title('µ÷ÖÆÐÅºÅÆµÆ×');

xlabel('f/hz');ylabel('E(w)'); grid on; %¼Ó¸ß˹ÔëÉù

am=0.7; %ÊäÈëÐźž­ÐŵÀºóÕñ·ùÓÉ1Ë¥¼õΪ0.7 SNR=5; %ÊäÈëÐÅÔë±È snr=10^(SNR/10);

N0=(am*am)/2/snr; %¼ÆËãÔëÉù¹¦ÂÊ

N0_db=10*log10(N0); %½«ÔëÉù¹¦ÂÊת»»ÎªdBW ni=wgn(1,N,N0_db); % ²úÉú1ÐÐNÁеĸß˹ÔëÉù

yi=e+ni; %BSKÒѵ÷ÐźÅÖмÓÈë°×ÔëÉù£¬ÊäÈëÐÅÔë±ÈΪSNR figure(2);subplot(2,1,1);plot(yi);grid on; xlabel('¼ÓÈë¸ß˹°×ÔëÉùµÄÒѵ÷ÐźÅyi(t)'); %´øÍ¨Â˲¨Æ÷

[b1,a1] = BUTTER(3,[2*pi*0.0001,2*pi*0.01]); %¼ÆËã´øÍ¨Â˲¨Æ÷µÄH(z)ϵÊý y=filter(b1,a1,yi); %¶ÔÐźÅyi½øÐÐÂ˲¨£¬µÃµ½ÐźÅy figure(2);subplot(2,1,2);plot(y);grid on; xlabel('¾­´øÍ¨Â˲¨Æ÷ºóÐźÅ'); %Óë»Ö¸´Ôز¨Ïà³Ë x1=2*c.*y;

figure(3);subplot(2,1,1);plot(x1);grid on xlabel('Óë»Ö¸´Ôز¨Ïà³ËºóµÄÐźÅx1(t)'); %µÍͨÂ˲¨Æ÷

[b2,a2]=butter(2,0.005); %¼ÆËãH(z)ϵÊý £¬ÆµÂÊΪ(1/200) x=filter(b2,a2,x1); %¶ÔÐźÅx1Â˲¨£¬µÃµ½ÐźÅx figure(3);subplot(2,1,2);plot(x);grid on

19