bpsk.m

来自「用MATLAB生成bpsk信号」· M 代码 · 共 60 行

M
60
字号
clear

length=100;                                  %序列长度
samp=100;                                    %采样点数
sequence=randint(1,length);                  %序列生成
sequence1=2*sequence-1;                      %极性变换

%-------------------------------------将信息源信号抽样----------------------
data1=zeros(1,samp*length);              
for i1=1:length  
    data1(samp*(i1-1)+1:samp*i1)=sequence1(i1);
end

%-------------------------------------对余弦载波抽样------------------------
for j1=1:samp*length                     
    a1(j1)=cos((j1-1)*pi/50);
end

%---------------------------------------调制-------------------------------
data2=data1.*a1;                             %调制  
data3=awgn(data2,10,'measured');             %经过AWGN信道

%---------------------------------------解调-------------------------------
data4=data3.*a1;

%---------------------------------------判决-------------------------------
out=zeros(1,length);
 
for i=1:length;
    aa(i)=sum(data4((i-1)*samp+1:i*samp));
   if aa(i)>0;
       out(i)=1;
   else out(i)=-1;
   end
end

%---------------------------------------画图-------------------------------
                                        %信源的信号
   
subplot(4,1,1);
x1=0+0.01:0.01:100;
plot(x1,data1);axis([0 100 -1.5 1.5]);title('原始信号波形');

                                        %画调制后的信号波形

subplot(4,1,2);
plot(x1,data2);axis([0 100 -1.5 1.5]);title('调制后的信号波形');
         
                                        %画经过高斯信道后的信号波形

subplot(4,1,3);
plot(x1,data3);title('经过高斯信道后的信号波形');

                                        %解调后的接受到的信号波形
                                    
subplot(4,1,4);
plot(x1,data4);title('解调后的信号波形');
% subplot(4,2,8);
% x2=0+1:1:100;
% stem(x2,out);axis([0 100 -1.5 1.5]);

⌨️ 快捷键说明

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