以ASK调制解调为例观察采样与成型滤波的MATLAB仿真

发布于:2022-12-22 ⋅ 阅读:(687) ⋅ 点赞:(0)

目录

1.二进制ASK调制信号产生

 2.二进制ASK信号解调

2.1相干解调

2.2非相干解调

3.ASK调制信号的matlab仿真

4.ASK信号解调的MATLAB仿真

原文链接:ASK调制与解调_爱吃蛋挞的Dolly的博客-CSDN博客_ask调制

1.二进制ASK调制信号产生

调制信号为二进制数字信号时,这种调制称为二进制数字调制。在2ASK调制中,载波的幅度只有两种变化状态,即利用数字信息0或1的基带矩形脉冲去键控一个连续的载波,使载波时断时续输出。有载波输出时表示发送1,无载波输出时表示发送0.
由于2ASK信号可以认为是一个单极性的矩形脉冲序列与一个载波相乘,即

 式中,g(t)是持续时间为Ts的矩形脉冲,而ak的取值服从下述关系

  由频率卷积定理可得*s(t)*的频谱为

 由上式可知,由于基带矩形脉冲序列的频谱宽度是无限宽的,因此直接采用键控方式产生的ASK信号的频谱带宽也是无限宽的。随着偏离载波中心频率处越远,信号功率衰减越大,且90%的信号功率均集中在主瓣带宽内。当传输信道不存在其他频带干扰时,可以直接使用键控方式产生ASK信号。然而大多数情况为了避免干扰,需要在信号进入功放前增加一级带通滤波器,保证信号的绝大部分能量通过,同时滤除带外频率分量。

频带资源紧张时,为降低信号带宽,在调制前增加成形滤波,故2ASK信号的产生模型如下:

 2.二进制ASK信号解调

2.1相干解调

相干解调原理图如下,且接收端必须提供一个与ASK信号的载波保持同频同相的相干载波,否则会造成解调后的波形失真。然而相干载波的实现实现比较复杂,故实际设备中更常使用包络检波法实现解调。

2.2非相干解调

由于包络检波法不需要提取相干载波,因此是一种非相干解调法,其原理如下图所示

 经过整流电路,交流信号转换成直流信号,而后通过低通滤波器即可滤出基带信号的包络,最后经判决输出,完成ASK信号的解调功能。相干与非相干解调ASK信号的误码率性能对比如下图所示:

3.ASK调制信号的matlab仿真

Len=1000;    %数据长度为1000

Rb=1*10^6;          %码元速率
Fs=8*Rb;            %采样频率
LenData=Len*Fs/Rb;  %数据长度
Fc=70*10^6;         %载波频率
Qn=8;               %量化位数
a=0.8;              %成形滤波器滚降因子

%产生载波信号
t=0:1/Fs:Len/Rb;
carrier=cos(2*pi*Fc*t);
carrier=carrier(1:LenData);

%产生随机分布的二进制数据
code_2ask=randint(1,Len,2);
%对基带数据以Fs速率采样
code_2ask_upsamp=rectpulse(code_2ask,Fs/Rb);
%对基带数据进行成形滤波,同时进行Fs/Rb倍采样
code_2ask_filter=rcosflt(code_2ask,1,Fs/Rb);
%产生未进行成形滤波的2ASK信号
ASK2=carrier.*code_2ask_upsamp;
%产生成形滤波后的2ASK信号
ASK2_filter=carrier.*code_2ask_filter(1:LenData)';

%获取2ASK信号的频谱
ASK2_Spec=20*log10(abs(fft(ASK2,1024)));
ASK2_Spec=ASK2_Spec-max(ASK2_Spec);
ASK2_filter_Spec=20*log10(abs(fft(ASK2_filter,1024)));
ASK2_filter_Spec=ASK2_filter_Spec-max(ASK2_filter_Spec);


%产生随机分布的四进制数据
code_4ask=randint(1,Len,4);
%对基带数据以Fs速率采样
code_4ask_upsamp=rectpulse(code_4ask,Fs/Rb);
%对基带数据进行成形滤波,同时进行Fs/Rb倍采样
code_4ask_filter=rcosflt(code_4ask,1,Fs/Rb);
%产生未进行成形滤波的4ASK信号
ASK4=carrier.*code_4ask_upsamp;
%产生成形滤波后的4ASK信号
ASK4_filter=carrier.*code_4ask_filter(1:LenData)';

%获取4ASK信号的频谱
ASK4_Spec=20*log10(abs(fft(ASK4,1024)));
ASK4_Spec=ASK4_Spec-max(ASK4_Spec);
ASK4_filter_Spec=20*log10(abs(fft(ASK4_filter,1024)));
ASK4_filter_Spec=ASK4_filter_Spec-max(ASK4_filter_Spec);

%绘图
    figure(1);x=0:200;x=x/Fs*(10^6);
    subplot(221);plot(x,ASK2(100:300));xlabel('时间(us)');ylabel('幅度(v)');
    title('未经成形滤波的2ASK时域波形');grid on;
    subplot(222);plot((0:200),ASK2_filter(100:300));;xlabel('时间(us)');ylabel('幅度(v)');
    title('成形滤波后的2ASK时域波形');grid on;
    subplot(223);plot((0:200),ASK4(100:300));;xlabel('时间(us)');ylabel('幅度(v)');
    title('未经成形滤波的4ASK时域波形');grid on;
    subplot(224);plot((0:200),ASK4_filter(100:300));;xlabel('时间(us)');ylabel('幅度(v)');
    title('成形滤波后的4ASK时域波形');grid on;

    figure(2);x=0:length(ASK2_Spec)-1;x=x/length(x)*Fs/10^6;
    subplot(221);plot(x,ASK2_Spec);xlabel('频率(MHz)');ylabel('幅度(dB)');
    title('未经成形滤波的2ASK频谱');grid on;
    subplot(222);plot(x,ASK2_filter_Spec);xlabel('频率(MHz)');ylabel('幅度(dB)');
    title('成形滤波后的2ASK频谱');grid on;
    subplot(223);plot(x,ASK4_Spec);xlabel('频率(MHz)');ylabel('幅度(dB)');
    title('未经成形滤波的4ASK频谱');grid on;
    subplot(224);plot(x,ASK4_filter_Spec);xlabel('频率(MHz)');ylabel('幅度(dB)');
    title('成形滤波后的4ASK频谱');grid on;

程序中分别产生2ASK和4ASK,未经过成形滤波器和经过成形滤波器后的时域波形即频谱图

 

 显然,经过成形滤波器后的信号频率滤除了主瓣外的频率分量;2ASK和4ASK的频谱形状相同,主瓣宽度相同;滤波前后的信号频谱都含有明显的载波频率分量。

4.ASK信号解调的MATLAB仿真

本模块的解调的信号输入是上一节的调制信号,只需要将输入信号经过整流滤波即可输出基带信号。
源码:

Rb=1*10^6;          %码元速率
Fs=8*Rb;            %采样频率
a=0.8;              %成形滤波器滚降因子

[ASK2,ASK2_filter,ASK4,ASK4_filter]=AskMod();
figure(4);
subplot(211);plot(20*log10(abs(fft(ASK2))));
subplot(212);plot(20*log10(abs(fft(ASK2_filter))));
%整流
ASK2=abs(ASK2);
ASK2_filter=abs(ASK2_filter);
ASK4=abs(ASK4);
ASK4_filter=abs(ASK4_filter);

figure(5);
subplot(211);plot(20*log10(abs(fft(ASK2))));
subplot(212);plot(20*log10(abs(fft(ASK2_filter))));

%低通滤波
b=fir1(32,Rb*2/Fs);
d_ASK2=filter(b,1,ASK2);
d_ASK2_filter=filter(b,1,ASK2_filter);
d_ASK4=filter(b,1,ASK4);
d_ASK4_filter=filter(b,1,ASK4_filter);

%绘图
    figure(1);x=0:200;x=x/Fs*(10^6);
    subplot(221);plot(x,ASK2(100:300));xlabel('时间(us)');ylabel('幅度(v)');
    title('整流后的2ASK时域波形');grid on;
    subplot(222);plot((0:200),ASK2_filter(100:300));;xlabel('时间(us)');ylabel('幅度(v)');
    title('整流后的2ASK(成形滤波)时域波形');grid on;
    subplot(223);plot((0:200),ASK4(100:300));;xlabel('时间(us)');ylabel('幅度(v)');
    title('整流后的4ASK时域波形');grid on;
    subplot(224);plot((0:200),ASK4_filter(100:300));;xlabel('时间(us)');ylabel('幅度(v)');
    title('整流后的4ASK(成形滤波)时域波形');grid on;

    figure(2);x=0:200;x=x/Fs*(10^6);
    subplot(221);plot(x,d_ASK2(100:300));xlabel('时间(us)');ylabel('幅度(v)');
    title('解调2ASK的基带时域波形');grid on;
    subplot(222);plot((0:200),d_ASK2_filter(100:300));;xlabel('时间(us)');ylabel('幅度(v)');
    title('解调2ASK(成形滤波)的基带时域波形');grid on;
    subplot(223);plot((0:200),d_ASK4(100:300));;xlabel('时间(us)');ylabel('幅度(v)');
    title('解调4ASK的基带时域波形');grid on;
    subplot(224);plot((0:200),d_ASK4_filter(100:300));;xlabel('时间(us)');ylabel('幅度(v)');
    title('解调4ASK(成形滤波)的基带时域波形');grid on;
    
    figure(3);
    freqz(b);

对于2ASK信号,解调出的信号呈现比较规则的基带信号波形,取信号峰值的一般作为判决门限,很容易恢复出原始的传输数据。解调出的4ASK信号呈现比较规则的基带信号波形,明显看出有4种电平,合理设置判决门限,也能很容易恢复原始的传播数据。

 

 

本文含有隐藏内容,请 开通VIP 后查看