通信原理|基于Matlab的模拟调制系统仿真AM\DSB\SSB

本文详细介绍了调制技术,包括幅度调制AM、双边带调幅DSB和单边带调幅SSB的原理及其在时频域的表现,通过实例展示了信号的生成和频谱分析过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调制

所谓调制,就是在传送信号的一方将所要传送的信号附加在高频振荡上,再由天线发射出去。这里高频振荡波就是携带信号的运载工具,也叫载波。在线性调制系列中,最先应用的一种幅度调制是全调幅或常规调幅,简称为调幅(AM)。为了提高传输的效率,还有载波受到抑制的双边带调幅波(DSB)和单边带调幅波(SSB)。

1.调制信号的时频域分析

调制信号m = cos(2*pi*fm*t),频率为100Hz

Fs = 10000; % 采样率为10kHz
t = 0:1/Fs:0.1; % 1秒的时间序列
n=round(0.1*Fs); % 采样点数

fm = 100; % 调制信号频率为100Hz
A = 1; % 直流量

% 生成调制信号
m = cos(2*pi*fm*t);

f=linspace(-Fs/2,Fs/2-1,n+1); % 频域横坐标
% 绘制调制信号波形
subplot(2, 1, 1);
plot(t, m);
title('调制信号时域波形');
subplot(2, 1, 2);
X_fm = fftshift(fft(m./(n)));
plot(f, abs(X_fm));
title('调制信号频谱');

2.载波信号的时频域分析

载波信号c = cos(2*pi*fc*t)频率为1000Hz

fc = 1000; % 载波频率为1000Hz
% 生成载波信号
c = cos(2*pi*fc*t);

% 绘制载波信号波形
subplot(2, 1, 1);
plot(t, c);
title('载波信号时域图形');
subplot(2, 1, 2);
X_fc = fftshift(fft(c./(n)));
plot(f, abs(X_fc));
title('载波信号频谱');

3.AM信号的时频域分析

am = (m + A) .* c;

% AM调制
am = (m + A) .* c;

f=linspace(-Fs/2,Fs/2-1,n+1); % 频域横坐标

% 绘制AM调制信号波形
subplot(2, 1, 1);
plot(t, am);
title('AM调制信号');
subplot(2, 1, 2);
X_am = fftshift(fft(am./(n)));
plot(f, abs(X_am));
title('AM调制信号频谱');

4.DSB信号的时频域分析

dsb = m.* c ;

% DSB调制
dsb = m.* c ;

f=linspace(-Fs/2,Fs/2-1,n+1); % 频域横坐标

% 绘制DSB调制信号波形
subplot(2, 1, 1);
plot(t, dsb);
title('DSB调制信号');
subplot(2, 1, 2);
X_dsb = fftshift(fft(dsb./(n)));
plot(f, abs(X_dsb));
title('DSB调制信号频谱');

 m(t)的平均值为0,DSB的频谱与AM相近,只是没有了在±ω处的δ 函数。即不含有载波分量。调制效率是100%,全部功率都用于信息传输。

幅值减半。载波信号将调制信号搬移到了高频处,中心频点是100Hz,相应的DSB信号的带宽为20Hz。

5.SSB信号的时频域分析[相移法]

ssb = (m./2) .* c + imag(hilbert(m./2)) .* imag(hilbert(c));

单边带调制(SSB)信号是将双边带信号中的一个边带滤掉而形成的。根据滤波方法的不同,产生SSB信号的方法有:滤波法和相移法。

1.滤波法:

先产生一个双边带信号,然后让其通过一个边带滤波器,滤除不要的边带,即可得到单边带信号。

2.相移法:

% SSB调制 - 使用希尔伯特变换
 ssb = (m./2) .* c + imag(hilbert(m./2)) .* imag(hilbert(c));

f=linspace(-Fs/2,Fs/2-1,n+1); % 频域横坐标

% 绘制SSB调制信号波形
subplot(2, 1, 1);
plot(t, ssb);
title('SSB调制信号');
subplot(2, 1, 2);
X_ssb = fftshift(fft(ssb./(n)));
plot(f, abs(X_ssb));
title('SSB调制信号频谱');

 通过观察图像可看出,生成的SSB信号是DSB信号的上边带。幅值只有一半。

6.调制总体代码 

Fs = 10000; % 采样率为10kHz
t = 0:1/Fs:0.1; % 1秒的时间序列
n=round(0.1*Fs); % 采样点数

fc = 1000; % 载波频率为1000Hz
fm = 100; % 调制信号频率为100Hz
A = 1; % 直流量

% 生成调制信号
m = cos(2*pi*fm*t);

% 生成载波信号
c = cos(2*pi*fc*t);

% AM调制
am = (m + A) .* c;

% DSB调制
dsb = m.* c ;

% % SSB调制 - 使用希尔伯特变换
 ssb = (m./2) .* c + imag(hilbert(m./2)) .* imag(hilbert(c));


f=linspace(-Fs/2,Fs/2-1,n+1); % 频域横坐标
% 绘制调制信号波形
subplot(5, 2, 1);
plot(t, m);
title('调制信号时域波形');
subplot(5, 2, 2);
X_fm = fftshift(fft(m./(n)));
plot(f, abs(X_fm));
title('调制信号频谱');

% 绘制载波信号波形
subplot(5, 2, 3);
plot(t, c);
title('载波信号时域图形');
subplot(5, 2, 4);
X_fc = fftshift(fft(c./(n)));
plot(f, abs(X_fc));
title('载波信号频谱');

% 绘制AM调制信号波形
subplot(5, 2, 5);
plot(t, am);
title('AM调制信号');
subplot(5, 2, 6);
X_am = fftshift(fft(am./(n)));
plot(f, abs(X_am));
title('AM调制信号频谱');

% 绘制DSB调制信号波形
subplot(5, 2, 7);
plot(t, dsb);
title('DSB调制信号');
subplot(5, 2, 8);
X_dsb = fftshift(fft(dsb./(n)));
plot(f, abs(X_dsb));
title('DSB调制信号频谱');

% 绘制SSB调制信号波形
subplot(5, 2, 9);
plot(t, ssb);
title('SSB调制信号');
subplot(5, 2, 10);
X_ssb = fftshift(fft(ssb./(n)));
plot(f, abs(X_ssb));
title('SSB调制信号频谱');

调制总体效果图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南崔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值