ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 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