2ASK非相干解调

matlab程序实现

目录

  • 2ASK信号产生
  • 2ASK信号非相干解调
  • 全波整流器
  • 低通滤波器
  • 抽样判决器

2ASK信号产生

  • 振幅键控是利用载波的幅度变化来传递数字信息,而其频率和初始相位保持不变。在2ASK中,载波的幅度只有两种变化状态,分别对应二进制信息“0”或“1”。一种常用的、也是最简单的二进制振幅键控方式称为通-断键控(On-Off Keying,OOK)。
%% 2ASK信号产生
clc;
clear;
s=[1 0 1 1 0 0 1 0];%二进制码元
f=2;%载波频率
t=0:2*pi/99:2*pi;%码元宽度:1-100
m1=[];c1=[];
for n=1:length(s)
    if s(n)==0
        m=zeros(1,100);%产生全为0的矩阵,长度为码元宽度
    else 
        m=ones(1,100);%产生全为1的矩阵,长度为码元宽度
    end
    c=sin(f*t);%一个码元宽度内的正弦载波信号
    m1=[m1 m];%二进制单极性不归零码
    c1=[c1 c];%所有码元的正弦载波信号
end
ask=c1.*m1;%相乘器法产生2ASK信号
figure(1)
subplot(311); plot(m1); title('原始信号'); 
axis([0 100*length(s) -0.1 1.1]);ylabel('幅度');
subplot(312); plot(c1); title('载波信号'); 
axis([0 100*length(s) -1.1 1.1]);ylabel('幅度');
subplot(313); plot(ask);title('2ASK信号');
axis([0 100*length(s) -1.1 1.1]);ylabel('幅度');

仿真结果:
2ASK调制

2ASK信号非相干解调

  • 抽样判决器的作用是:信号经过抽样判决器,即可确定接收码元是“1”还是“0”。假设抽样判决门限为,当信号抽样值大于时,判决为“1”码;信号抽样值小于时,判为“0”码。由于本实验为简化设计电路,在调制的输出端没有加带通滤波器,并且假设信道是理想的,所以在解调部分也没有加带通滤波器。
%% 2ASK信号非相干解调

%% 全波整流器
x=abs(ask);
figure(2)
subplot(311);plot(x);title('全波整流器');
axis([0 100*length(s) -0.1 1.1]);ylabel('幅度');

%% 低通滤波器
wp=4*pi*f*0.4;%通带截止频率
ws=4*pi*f*1.2;%阻带起始频率
rp=2;%通带最大衰减
rs=30;%阻带最小衰减
[N,wc]=buttord(wp,ws,rp,rs,'s');%buttord型模拟低通滤波器,s代表模拟,s省略代表数字,N为滤波器阶数,wc为3dB截频
[num,den]=butter(N,wc,'s');%由原型滤波器向实际滤波器转换,获得滤波器的分子系数num,分母系数den
h=tf(num,den);%获得滤波器传递函数
M=50;%一个正弦周期内的采样点数
L=length((kron(s,c)));
tau=(0:L-1)/(M-1)/f;
y=lsim(h,x,tau);
subplot(312);plot(tau,y);title('滤波后的波形');
axis([min(tau) max(tau) -0.1 0.8]);ylabel('幅度');

%% 抽样判决器
th=0.25;%抽样判决的阈值
t_judge=(0:8-1)*length(c)+length(c)/2;%抽样判决点的选取
z=(y(t_judge))';%抽样判决时刻的信号值
y_judge=1*(z>=th)+0*(z<=th);%抽样判决信号的0阶保持
y_value=kron(y_judge,ones(size(c)));%抽样判决后的数字信号波形
n_tau=tau+0.5/100;%抽样判决后的信号对应时间
subplot(313);plot(n_tau,y_value);title('抽样判决后的数字信号');
axis([0 8 -0.1 1.1]);ylabel('幅度');

2ASK信号非相干解调

完整代码

%% 2ASK信号产生
clc;
clear;
s=[1 0 1 1 0 0 1 0];%二进制码元
f=2;%载波频率
t=0:2*pi/99:2*pi;%码元宽度:1-100
m1=[];c1=[];
for n=1:length(s)
    if s(n)==0
        m=zeros(1,100);%产生全为0的矩阵,长度为码元宽度
    else 
        m=ones(1,100);%产生全为1的矩阵,长度为码元宽度
    end
    c=sin(f*t);%一个码元宽度内的正弦载波信号
    m1=[m1 m];%二进制单极性不归零码
    c1=[c1 c];%所有码元的正弦载波信号
end
ask=c1.*m1;%相乘器法产生2ASK信号
figure(1)
subplot(311); plot(m1); title('原始信号'); 
axis([0 100*length(s) -0.1 1.1]);ylabel('幅度');
subplot(312); plot(c1); title('载波信号'); 
axis([0 100*length(s) -1.1 1.1]);ylabel('幅度');
subplot(313); plot(ask);title('2ASK信号');
axis([0 100*length(s) -1.1 1.1]);ylabel('幅度');
%% 2ASK信号非相干解调
%% 全波整流器
x=abs(ask);
figure(2)
subplot(311);plot(x);title('全波整流器');
axis([0 100*length(s) -0.1 1.1]);ylabel('幅度');
%% 低通滤波器
wp=4*pi*f*0.4;%通带截止频率
ws=4*pi*f*1.2;%阻带起始频率
rp=2;%通带最大衰减
rs=30;%阻带最小衰减
[N,wc]=buttord(wp,ws,rp,rs,'s');%buttord型模拟低通滤波器,s代表模拟,s省略代表数字,N为滤波器阶数,wc为3dB截频
[num,den]=butter(N,wc,'s');%由原型滤波器向实际滤波器转换,获得滤波器的分子系数num,分母系数den
h=tf(num,den);%获得滤波器传递函数
M=50;%一个正弦周期内的采样点数
L=length((kron(s,c)));
tau=(0:L-1)/(M-1)/f;
y=lsim(h,x,tau);
subplot(312);plot(tau,y);title('滤波后的波形');
axis([min(tau) max(tau) -0.1 0.8]);ylabel('幅度');
%% 抽样判决器
th=0.25;%抽样判决的阈值
t_judge=(0:8-1)*length(c)+length(c)/2;%抽样判决点的选取
z=(y(t_judge))';%抽样判决时刻的信号值
y_judge=1*(z>=th)+0*(z<=th);%抽样判决信号的0阶保持
y_value=kron(y_judge,ones(size(c)));%抽样判决后的数字信号波形
n_tau=tau+0.5/100;%抽样判决后的信号对应时间
subplot(313);plot(n_tau,y_value);title('抽样判决后的数字信号');
axis([0 8 -0.1 1.1]);ylabel('幅度');
参考文献
[1] 周春梅.2ASK调制解调系统设计与研究[J].电子技术与软件工程,2014(20):46.
[2] 樊昌信,曹丽娜.通信原理(第六版)[M].国防工业出版社,2012
[3] 刘佳,许海霞.通信原理实验教程[M].中山大学出版社,2016
[4] 郭文彬,桑林.通信原理:基于Matlab的计算机仿真[M].北京邮电大学出版社,2006

猜你喜欢

转载自blog.csdn.net/qq_40668383/article/details/106822911