常规双边带调幅(AM)仿真

一、调制原理
常规双边带调幅又叫标准调幅,简称调幅(AM)。假设调制信号 m(t) 的平均值为 0,将其加上一个直流分量 A0 后与载波相乘就可以得到AM信号。
调制模型如下图所示:在这里插入图片描述
二、解调原理
对于AM信号来说,使用两种解调方式:相干解调和非相干解调均可。在通常情况下,因为其包络与调制信号 m(t)的形状、波形起伏完全一致。故可以使用实现较为简便的包络检波法来恢复原信号。
包络检波器如下图所示:
在这里插入图片描述
其中,利用的原理分别是二极管的单向导通性、电容的高频旁路特性和电容的隔直特性。

三、仿真程序
调制部分:

clear all
clc;
close all;
dt = 0.001;         %时间采样频率
fm = 1;             %信源最高频率
fc = 10;            %载波中心频率
t = 0:dt:5-dt;      %时间向量
fs = 1/dt;          %抽样频率
df = fs/length(t);  % fft的频率分辨率
msg = sqrt(2)*cos(2*pi*fm*t);  %模拟消息信号
A = 2;            %直流分量
sig_AM_modu = (A+msg).*cos(2*pi*fc*t);  %AM信号
B = 2*fm;
subplot(3,1,1)
plot(t,msg,'b');          %画出消息信号
xlabel('时间/s');ylabel('幅度/V'); 
title('模拟消息信号')
subplot(3,1,2)
plot(t,sig_AM_modu,'g');hold on;   %画出AM信号
plot(t,A+msg,'r--');                %画出包络
xlabel('时间/s');ylabel('幅度/V');
title('AM调制信号及其包络')

解调部分:

demodu_sig = abs(hilbert(sig_AM_modu))-A;       %包络检波,并且去掉直流分量。
subplot(3,1,3)
plot(t,demodu_sig,'b')                    %画出解调后的信号
xlabel('时间/s');ylabel('幅度/V');grid on;
title('AM解调信号')

频域:

subplot(2,1,1)
Pm=fft(msg)/fs;                %求消息信号的频谱
f=-fs/2:df:fs/2-df;
plot(f,fftshift(abs(Pm)),'r')       %画出消息信号频谱
title('发送信号频谱');
xlim([-20 20]);ylim([0 8])
xlabel('频率/Hz');ylabel('幅度/V');grid on;
subplot(2,1,2)
Pam=fft(sig_AM_modu)/fs;                %已调信号频谱
plot(f,fftshift(abs(Pam)),'g')      %画出已调信号频谱
title('AM调制信号频谱');
xlim([-20 20])
xlabel('频率/Hz');ylabel('幅度/V');grid on;

过调幅情况:

msg_1 = 3*cos(2*pi*fm*t);     %改变调幅系数,令其大于1
A = 2;
s_am_1 = (A+msg_1).*cos(2*pi*fc*t);
B = 2*fm;
subplot(2,1,1)
plot(t,s_am_1,'g');hold on;
plot(t,A+msg_1,'r--');
xlabel('时间/s');ylabel('幅度/V');grid on;
title('AM调制信号及其包络')
demodu_sig_1 = abs(hilbert(s_am_1))-A;       %包络检波,并且去掉直流分量。
subplot(2,1,2)
plot(t,demodu_sig_1,'b');hold on;  %画出解调后的信号
plot(t,msg_1,'r--','linewidth',2)
xlabel('时间/s');ylabel('幅度/V');grid on;
title('过调幅时的解调信号与原信号')

加噪

SNR = 0:10:30;                  %信噪比依次赋值0 10 20 30
for ii = 1:length(SNR)
    
    recv_sig = awgn(sig_AM_modu,SNR(ii),'measured');      %调制信号通过AWGN信道
    demodu_sig_noisy = abs(hilbert(recv_sig))-A;        %包络检波,并且去掉直流分量。
    subplot(4,1,4)                 
    plot(t,demodu_sig_noisy,'k')
    xlabel('时间/s');ylabel('幅度/V');grid on;
    title(strcat('信噪比为',num2str(SNR(ii)),'dB时的AM解调信号'))
    str = {'r','g','b','k'};
    subplot(length(SNR),1,ii)
    plot(t,demodu_sig_noisy,str{ii})      %画出加噪解调波形
    xlabel('时间/s');ylabel('幅度/V');grid on;
    title(strcat('信噪比为',num2str(SNR(ii)),'dB时的AM解调信号'))

end

四、仿真结果
时域:
在这里插入图片描述
频域:
在这里插入图片描述
过调幅:
在这里插入图片描述
加噪:在这里插入图片描述

  • 13
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常规双边调幅(DSB-SC)调制是一种常用的调制技术,将模拟信号通过通滤波器进行调制,然后经过双边调幅器进行调制,最终得到有重复频谱的双边调幅信号。 在MATLAB的Simulink中,可以使用几个基本组件来实现DSB-SC调制与解调。 首先,使用信号源组件来生成模拟信号。然后,将信号通过通滤波器进行调制,滤波器的中心频率要与信号的频率匹配。调制后的信号通过幅度调制组件进行DSB-SC调制。 为了解调DSB-SC信号,可以通过将调制后的信号通过理想通滤波器来滤除其中的频谱副本,然后通过包络检测或乘法检测来得到解调后的信号。 具体步骤如下: 1. 在Simulink中创建信号源组件,设置生成模拟信号的参数。 2. 添加通滤波器组件,设置滤波器的中心频率和宽。 3. 将信号源组件连接到通滤波器组件的输入端口。 4. 添加幅度调制组件,并将通滤波器组件的输出连接到幅度调制组件的模拟信号输入端口。 5. 添加理想通滤波器组件,设置滤波器的中心频率和宽,确保与调制时的参数一致。 6. 将幅度调制组件的输出连接到理想通滤波器组件的输入端口。 7. 添加包络检测或乘法检测组件,将理想通滤波器组件的输出连接到解调组件的输入端口。 8. 运行模型,在Simulink中观察到解调后的信号。 通过上述步骤,可以在MATLAB的Simulink中实现常规双边调幅与解调功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值