文章目录
一、二进制数字调制
1.1二进制数字幅度调制(2ASK)
1.2二进制数字频率调制(2FSK)
1.3二进制数字相位调制(2PSK)
二、多进制数字调制
2.1多进制数字幅度调制(MASK)
2.1多进制数字频率调制(MFSK)
2.1多进制相位频率调制(MPSK)
数字信号的传输方式有基带传输和频带传输。
通常把具有调制和解调过程的数字传输系统称为数字频带传输系统。
利用数字信号取值离散的特点通过开关键控载波,从而实现数字调制的方法称为键控法。
对载波振幅进行键控可获得振幅键控(ASK),对载波频率进行键控可获得频移键控(FSK),对载波相位进行键控可获得相移键控(PSK)。
一、二进制数字调制
用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。
调制信号为二进制数字基带信号时,这种调制称为二进制数字调制。
在二进制数字调制中,载波的幅度、频率或相位只有两种变化状态,对应于数字“0”和“1”。
1.1 二进制数字幅度调制
2ASK是利用代表数字信号“0”或“1”的基带矩形脉冲去键控一个连续的载波,使载波时断时续的输出。有载波输出时表示发送“1”,无载波输出时表示发送“0”。
根据幅度调制的原理,2ASK信号可表示为
式中,wc为载波角频率,s(t)为单极性NRZ矩形脉冲序列
function askdigital(s,f)
%本函数实现将输入的一段二进制代码调制成相应的ASK信号输出
%s为输入二进制码,f为载波频率,ASK为调制后输出信号
t=0:2*pi/99:2*pi;
m1=[];
c1=[];
for n=1:length(s)
if s(n)==0;
m=zeros(1,100);
else s(n)==1;
m=ones(1,100);
end
c=sin(f*t);
m1=[m1 m];
c1=[c1 c];
end
ask=c1.*m1;
subplot(211);
plot(m1);
title('原始信号');
axis([0 100*length(s) -0.1 1.1])
subplot(212);
plot(ask);
title('ASK信号');
在命令行窗口输入
在上面代码中如果把关于向量的拼接的部分去掉图形好像也没有什么变化。
s=[1 0 1 1 0 0 1 0];
f=2;
askdigital(s,f)
1.2二进制数字频率调制
数字频率调制又称为频移键控(FSK),二进制频移键控记作2FSK。数字频移键控是用载波的频率来传送数字信息,即用所传送的数字信息控制载波的频率。2FSK信号便是符号“1”对应于载频f1,而符号“0”对应于载频f2(与f1不用的另一载频)的已调波形,而且f1和f2之间的改变是瞬时完成的。
2FSK已调信号的数字表达式可以表示为:
其中s(n)为单极性非归零矩形脉冲序列:
g(t)是持续时间为Tb,高度为1的门函数:s(t)反——是对s(t)逐码元取反而形成的脉冲序列
由上式可以看出,一个2FSK信号可以看作是两路2ASK信号的合成,其中一路以s(t)为基带信号,w1为载频,另一路是以s(t)反 为基带信号,w2为载频。
function fskdigital(s,f1,f2)
%本函数实现将输入的一段二进制代码调制成相应的fsk信号输出
%s为输入二进制码,f1、f2分别为代码1、0对应的载波频率,FSK为调制后输出信号
t=0:2*pi/99:2*pi;
m1=[];
c1=[];
b1=[];
for n=1:length(s)
if s(n)==0;
m=ones(1,100);
c=sin(f2*t);
b=zeros(1,100);
else s(n)==1;
m=ones(1,100);
c=sin(f1*t);
b=ones(1,100);
end
m1=[m1 m];
c1=[c1 c];
b1=[b1 b];
end
fsk=c1.*m1;
subplot(211);
plot(b1);
title('b1原始信号10110010');
axis([0 100*length(s) -0.1 1.1])
subplot(212);
plot(fsk);
title('2FSK信号');
s=[1 0 1 1 0 0 1 0];
f1=200;
f2=100;
fskdigital(s,f1,f2)
注意:其中0信号所对应的载波频率与码元速率相同,1信号所对应的载波频率为码元速率的两倍(传码率Rb=1/Tb=fb)
1.3二进制数字相位调制
绝对相移是利用载波的相位(指出相)直接表示数字信号的相移方式。二进制相移键控中,通常用相位0和π来分别表示“0”或“1”。
2PSK已调信号的时域表达式为:
注意:这里的s(t)与2ASK和2FSK时不同,为双极性数字基带信号,
an= +1,概率为P
an = -1,概率为(1-P)
因此在一个码元持续时间Tb内观察时,有
φi=0或π
function pskdigital(s,f)
%本函数实现将输入的一段二进制代码调制成相应的psk信号输出
%s为输入二进制码,f为载波频率,PSK为调制后输出信号
t=0:2*pi/99:2*pi;
m1=[];
c1=[];
b1=[];
for n=1:length(s)
if s(n)==0;
m=-ones(1,100);
b=zeros(1,100);
else s(n)==1;
m=ones(1,100);
b=ones(1,100);
end
c=sin(f*t);
m1=[m1 m];
c1=[c1 c];
b1=[b1 b];
end
psk=c1.*m1;
subplot(211);
plot(b1);
title('b1原始信号10110010');
axis([0 100*length(s) -0.1 1.1])
subplot(212);
plot(psk);
title('2PSK信号');
grid on;
s=[1 0 1 1 0 0 1 0];
f=100;
pskdigital(s,f)
二、多进制数字调制
多进制数字调制,就是利用多进制数字基带信号去调制高频载波的某个参量,如幅度、频率或者相位的过程。根据被调参量的不同,多进制数字调制可分为多进制幅度键控(MASK)、多进制频移键控(MFSK)以及多进制相移键控(MPSK或MDPSK)。
2.1多进制数字幅度调制(MASK)
多进制数字幅度调制(MASK)又称为多电平调制,它是二进制数字幅度调制的推广。M进制幅度调制信号的载波振幅有M种取值,在一个码元周期Tb内,发送其中的一种幅度的载波调制。
MASK已调信号的表达式为:
这里,s(t)为M进制数字基带信号
其中g(t)是高度为1,宽度为Tb的门函数;an有M种取值,
下图为四进制数字基带信号s(t)和已调信号的波形:
注意:可以看作由时间上互不重叠的M-1个不同幅度的2ASK信号叠加而成,即
N=20;
f=2;
t=0:2*pi/99:2*pi;
m1=[];
c1=[];
for i=1:N/2
temp=rand; %rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组。
if (temp<0.25)
ak(i)=0;bk(i)=0;
elseif (temp<0.50)
ak(i)=0;bk(i)=1;
elseif (temp<0.75)
ak(i)=1;bk(i)=0;
else
ak(i)=1;bk(i)=1;
end
end
for i=1:N/2
if((ak(i)==0)&(bk(i)==0))
m=zeros(1,100);
elseif((ak(i)==0)&(bk(i)==1))
m=ones(1,100);
elseif((ak(i)==1)&(bk(i)==0))
m=2*ones(1,100);
else
m=3*ones(1,100);
end
c=sin(f*t);
m1=[m1 m];
c1=[c1 c];
end
ask=c1.*m1;
subplot(211);
plot(m1);
title('原始信号');
axis([0 50*N -0.1 4]);
subplot(212);
plot(ask);
title('4ASK信号');
axis([0 50*N -4 4]);
产生的4ASK图像(原信号是用随机数产生的,所以每次产生的图像都不相同):
2.1多进制数字频率调制(MFSK)
多进制数字频率调制(MFSK)简称多频制,是2FSK方式的推广。它是用M个不同的载波频率代表M种数字信息。
%产生4FSK调制信号
N=20;
f1=1;f2=2;f3=3;f4=4;
t=0:2*pi/99:2*pi;
m1=[];
c1=[];
b1=[];
for i=1:N/2
temp=rand; %rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组。
if (temp<0.25)
ak(i)=0;bk(i)=0;
elseif (temp<0.50)
ak(i)=0;bk(i)=1;
elseif (temp<0.75)
ak(i)=1;bk(i)=0;
else
ak(i)=1;bk(i)=1;
end
end
for i=1:N/2
if((ak(i)==0)&(bk(i)==0))
m=ones(1,100);
c=sin(f1*t);
b=zeros(1,100);
elseif((ak(i)==0)&(bk(i)==1))
m=ones(1,100);
c=sin(f2*t);
b=ones(1,100);
elseif((ak(i)==1)&(bk(i)==0))
m=ones(1,100);
c=sin(f3*t);
b=2*ones(1,100);
else
m=ones(1,100);
c=sin(f4*t);
b=3*ones(1,100);
end
m1=[m1 m];
c1=[c1 c];
b1=[b1 b];
end
fsk=c1.*m1;
subplot(211);
plot(b1);
title('原始信号');
axis([0 50*N -0.1 4]);
subplot(212);
plot(fsk);
title('4FSK信号');
axis([0 50*N -1 1]);
2.3多进制数字相位调制(MPSK)
多进制数字相位调制又称为多相制,是二相制的推广。它是利用载波的多种不同相位状态来表征数字信号的调制方式。与二进制数字相位调制相同,多进制数字相位调制也有绝对相位调制(MPSK)和相对相位调制(MDPSK)两种。
设载波为coswct,则M进制数字相位调制信号可表示为
其中g(t)是高度为1,宽度为Tb的门函数;Tb为M进制码元的持续时间,即k(k=log2M)比特二进制码元的持续时间:φn为第n个码元对应的相位,共有M种不同取值。
载波相位φn可有M种取值,一般都是在0-2π范围内等间隔划分相位的
令下式进行变换,
其中,I(t)和Q(t)称为多电平信号。
称为同相分量,同理,后面那一项称为正交分量。
由此可见,MPSK信号可以看作是两个正交载波进行多电平双边带调试所得的两路MASK信号的叠加。在实际中,常用正交调制的方法产生MPSK信号。
四进制绝对相移键控4PSK(又称为QPSK)和四进制差分相移键控4DPSK(又称为QDPSK)是应用的要广泛一些。
OPSK利用载波的四种不同相位来表征数字信息。由于每一种载波相位代表两个比特信息,故每个四进制码元又被称为双比特码元。
QPSK信号的产生一般有相位选择法和直接调相法。
%产生QPSK信号
f=100;
t=0:2*pi/99:2*pi;
s=[1 1 0 0 1 1 0 0 1 0 0 1 1 1]
m1=[];
c1=[];
b1=[];
for i=1:2:length(s)
if (s(i)==0&s(i+1)==0)
ak(i)=0;bk(i)=0;
elseif (s(i)==0&s(i+1)==1)
ak(i)=0;bk(i)=1;
elseif (s(i)==1&s(i+1)==0)
ak(i)=1;bk(i)=0;
else
ak(i)=1;bk(i)=1;
end
end
for i=1:2:length(s)
if((ak(i)==0)&(bk(i)==0))
m=ones(1,100);
c=sin(f*t);
b=zeros(1,100);
elseif((ak(i)==0)&(bk(i)==1))
m=ones(1,100);
c=sin(f*t+pi/2);
b=ones(1,100);
elseif((ak(i)==1)&(bk(i)==0))
m=ones(1,100);
c=sin(f*t+pi);
b=2*ones(1,100);
else
m=ones(1,100);
c=sin(f*t+3/2*pi);
b=3*ones(1,100);
end
m1=[m1 m];
c1=[c1 c];
b1=[b1 b];
end
qpsk=c1.*m1;
subplot(211);
plot(b1);
title('原始信号');
axis([0 50*length(s) -0.1 4]);
subplot(212);
plot(qpsk);
title('QPSK信号');
axis([0 50*length(s) -2 2]);