Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2012-03-19
帖子: 1
声望力: 0 ![]() |
![]()
fs = 10000;
w = 100; A = 1; Symbol_Time = 0.02; Unit_Symbol = fs*Symbol_Time; High = ones ( 1,Unit_Symbol ); Low = zeros ( 1,Unit_Symbol ); Signal = [0,1,1,0,0,1,1,0,1] Signal_length = length ( Signal ); Modulation = zeros ( 1,Unit_Symbol*Signal_length ); Original_signal = zeros ( 1, Unit_Symbol*Signal_length ); Demodulated_signal = zeros ( 1,Unit_Symbol*Signal_length ); t = 0:1/fs:Symbol_Time*Signal_length-1/fs; for I = 1:Signal_length if Signal(I) == 1 Original_signal((I-1)*Unit_Symbol + 1:I*Unit_Symbol) = High; else Original_signal((I-1)*Unit_Symbol + 1:I*Unit_Symbol) = Low; end end for I = 1 : Signal_length if Signal(I) == 1 Modulation((I-1)*Unit_Symbol+1:I*Unit_Symbol)=A*cos(2*pi*w*t((I-1)*Unit_Symbol+1: I*Unit_Symbol ) ); else Modulation((I-1)*Unit_Symbol+1:I*Unit_Symbol)= -A*cos(2*pi*w*t( (I-1)*Unit_Symbol + 1:I*Unit_Symbol ) ); end end figure subplot (2,1,1) plot(t, Original_signal ,'b'); axis( [0,Symbol_Time *(Signal_length+1), - (A/2), A + (A/2)] ); title ( '原始信号' ); grid subplot (2,1,2); plot ( t, Modulation ,'-b'); axis( [0,Symbol_Time*(Signal_length +1), - 3*(A/2),3*(A/2)] ); title ( '调制后的信号' ); grid N=1024; y=fft(Modulation,N); mag=abs(y);%求幅值 f=(0:length(y)-1)'*fs/length(y); figure subplot(2,1,1); plot(f,mag); axis([-1000,11000,0,120]); title ( 'BPSK信号频谱图' ); grid; Carrier = Modulation .*cos (2*pi*w*t ); Local_Carrier =A* cos (2*pi*w*t) subplot(2,1,2) plot (t,Local_Carrier ,'-b'); axis( [0 ,Symbol_Time *( Signal_length+1), -3*(A/2),3*(A/2) ] ); title ( '本地载波' ); grid figure subplot(2,1,1) plot (t,Carrier ,'-b'); axis( [0 ,Symbol_Time *( Signal_length+1), -3*(A/2),3*(A/2) ] ); title ( '相乘后的波形' ); grid [N,Wn] = buttord(2*pi*50,2*pi*150,5,30,'s'); [b,a]=butter(N,Wn,'s'); [bz,az]=impinvar(b,a,fs); Carrier = filter(bz,az,Carrier); subplot(2,1,2) plot ( t, Carrier ,'-b'); axis( [0,Symbol_Time *(Signal_length+1), - 3*(A/2), 3*(A/2) ] ); title ( '低通滤波后的波形' ); grid for I =1:Signal_length if Carrier((2*I-1)*Unit_Symbol/2) < 0.25 Demodulated_signal( (I-1)*Unit_Symbol +1: I*Unit_Symbol) =Low; else Demodulated_signal( (I-1)*Unit_Symbol + 1: I*Unit_Symbol) =High; end end figure subplot(2,1,1) plot ( t, Demodulated_signal ,'b'); axis( [ 0 , Symbol_Time *( Signal_length+1), - (A/2), 3*(A/2) ] ); title ( '解调后的波形' ); grid |
![]() |
![]() |