利用积分法实现bpsk解调.m

来自「MATLAB的源程序,包括产生随机传输数据data的子程序,eject_seq发」· M 代码 · 共 30 行

M
30
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%demodulate     解调子程序                利用积分法实现BPSK解调
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [demodulate_seq]=demodulate_seq(connections_1,begin_state_1,connections_2,begin_state_2)
echo on
modulate_seq=modulate_seq(connections_1,begin_state_1,connections_2,begin_state_2) ;
A=length(modulate_seq);
A1=A/30;
receive_seq=zeros(1,A);
receive_seq=modulate_seq;
d_sample_value=[0 0.5 0.5 0 -0.5 -0.5 0 0.5 0.5 0 -0.5 -0.5 0 0.5 0.5 0 -0.5 -0.5 0 0.5 0.5 0 -0.5 -0.5 0 0.5 0.5 0 -0.5 -0.5];
d=d_sample_value';
B=length(d_sample_value);
demodulate_seq=zeros(1,A1);
modulate=zeros(1,B);
for i=1:A1
    modulate=receive_seq(1,(i-1)*30+1:(i-1)*30+B);
    sum=0;
    sum= modulate*d;
    if sum>0                           %设定门限
       demodulate_seq (i)=1;
   elseif sum<0
       demodulate_seq (i)=-1;
  
   end
end
t=1:69192;
stairs(t,demodulate_seq);axis([0,69195,-2,2]);

    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?