MATLAB实现AM、DSB、SSB调制

一、AM调制(常规调幅)

AM调制模型:

代码实现:

fs=1000; %采样频率
N=1000;  %采样点数
n=0:N-1;
t=n/fs;
sig=cos(2*pi*20*t); %调制信号
A=2;  %直流分量
carry=cos(2*pi*50*t);  %载波
sam=(A+sig).*carry; %已调信号

%绘制已调信号波形
figure(1);
subplot(211)
plot(t,sam);
xlabel('t')
ylabel("sam")

%绘制已调信号频谱图
sam_fft=fft(sam);
mag=abs(sam_fft/N);
f=n*fs/N; %生成频率轴,fs/N是频域上的分辨率
subplot(212)
plot(f,mag)
xlabel('t')
ylabel("sam_fft")
title('AM调制');

二、DSB调制(抑制双边带调幅)

DSB调制模型:

代码实现:

%绘制已调信号波形图
figure(2);
sam2=sig.*carry;
subplot(211)
plot(t,sam2);
xlabel('t')
ylabel("sam2")

%绘制已调信号频谱图
sam2_fft=fft(sam2);
mag2=abs(sam2_fft/N);
f=n*fs/N;
subplot(212)
plot(f,mag2)
xlabel('t')
ylabel("sam2_fft")
title('DSB调制');
%axis([0,100,0,1])

三、SSB调制(单边带调幅)

SSB调制模型:

代码实现:

figure(3)
Wp=30/(fs/2);  %带通频率
Ws=50/(fs/2);  %带阻频率
Rp=1;  %通带纹波系数
Rs=30; %阻带衰减系数
[g,Wn]=buttord(Wp,Ws,Rp,Rs);
[b,a]=butter(g,Wn);
sam3=filter(b,a,sam2);

%绘制滤波器函数波形图
subplot(211)
[q,w]=freqz(b,a,256);
plot(w*fs/(2*pi),abs(q))
title('滤波器函数')
axis([0,100,0,1.2])

%绘制已调信号频谱图
sam3_fft=fft(sam3);
mag3=abs(sam3_fft/N);
f=n*fs/N;
subplot(212)
plot(f,mag3)
title('SSB调制')

AM调制有直流分量(载波分量),载波分量不携带信息,导致调制效率低;DSB调制在AM调制的基础上去掉了直流分量,调制效率为100%;双边带的每一个边带都携带了信号的全部信息,而单边带调制,其实就是滤除掉频谱当中的重复部分,只保留一个边带,SSB调制占用带宽减少了一半,提高了频带利用率。

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值