调制
所谓调制,就是在传送信号的一方将所要传送的信号附加在高频振荡上,再由天线发射出去。这里高频振荡波就是携带信号的运载工具,也叫载波。在线性调制系列中,最先应用的一种幅度调制是全调幅或常规调幅,简称为调幅(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调制信号频谱');
调制总体效果图