Matlab版本:R09b
%对二元序列10110010,画出BPSK波形,设载波频率为码元频率的2倍
%本程序实现BPSK
%s-输入二进制序列,f-载波信号的频率
s=[1 0 1 1 0 0 1 0]; %初始化二进制序列
b=s(1);
f=2; %初始化载波频率
t=0:2*pi/99:2*pi;
cp=[]; %初始化载波
mod=[];%初始化调制信号
bit=[];%初始化二进制信号部分
%matlab从1开始数
for n=1:length(s)
if s(n)==0
bit1=zeros(1,100);
cp1=-ones(1,100);
else s(n)==1
bit1=ones(1,100);
cp1=ones(1,100);
end
c=sin(f*t);
cp=[cp cp1];
mod=[mod c];
bit=[bit bit1];
% 点乘的定义是:对于两个同维度的向量,它们的点乘结果是这两个向量对应分量的乘积之和
bpsk=cp.*mod;
end
subplot(211);
plot(bit,'LineWidth',1.5);grid on;
title('输入的二进制序列');
axis([0,100*length(s) -2.5 2.5]);
subplot(212);
title('BPSK调制后的信号图');
axis([0 100*length(s) -2.5 2.5]);
plot(bpsk,'LineWidth',1.5);grid on;
运行结果