平台:matlab r2021b
本文知识内容摘自《软件无线电原理和应用》
调幅就是使载波的振幅随调制信号的变化规律而变化。用音频信号进行调幅时,其数学表达式可以写为:
式中,为调制音频信号,为调制指数,它的范围在(0,1)之间,如果>1,已调波的包络会出现严重的失真,而不能恢复原来的调制信号波形,也就是产生过量调幅。如要实现正交调制,只要令:
对式子进行傅里叶变换可得:
式中,为的频谱。上式说明,由正弦波调制的调幅信号由三种频率成分组成:载波、载波和调制频率的差频(下边带)、载波和调制频率的和频(上边带)。调幅波所占的频谱宽度等于调制信号最高频率的两倍。调幅信号的时域、频域波形如下图所示。
下面是AM调制的matlab实现
clc;
clear;
% 设置参数
fs = 312.5e6; % 采样率
fc = 1e6; % 载波频率
fm = 0.1e6; % 调制信号频率
Am = 1; % 调制信号幅度
Ac = 1; % 载波信号幅度
t1 = 0:1/fs:1e-3; % 时间序列,1微秒
t = t1(1:50000); %RW需要取整数计算出的频率是真实
% 生成调制信号
m = Am * cos(2*pi*fm*t);%正弦波
% m = Am *square(2*pi*fm*t);%方波
% m = Am *sawtooth(2*pi*fm*t, 0.5);%三角波
% m = Am *sawtooth(2*pi*fm*t);% 锯齿波
% 生成载波信号
c = Ac * cos(2*pi*fc*t);
% AM调制,幅度调制信号到高频载波上
kf = 0.5; % 调制指数
s = (1 + kf*m) .* c;
% 绘制时域波形
figure(1);
subplot(3,1,1);
plot(t*1e6, m);
title('调制信号');
xlabel('时间 (μs)');
ylabel('幅度');
subplot(3,1,2);
plot(t*1e6, c);
title('载波信号');
xlabel('时间 (μs)');
ylabel('幅度');
subplot(3,1,3);
plot(t*1e6, s);
title('调制后信号');
xlabel('时间 (μs)');
ylabel('幅度');
% 绘制频域波形
figure(2);
% 计算频谱
N = length(t);
f = (-fs/2:fs/N:fs/2-fs/N); % 频率向量
M = fftshift(fft(m));
C = fftshift(fft(c));
S = fftshift(fft(s));
subplot(3,1,1);
plot(f, abs(M)/N,'b');
title('调制信号频谱');
xlabel('频率 (GHz)');
ylabel('幅度');
subplot(3,1,2);
plot(f, abs(C)/N,'g');
title('载波信号频谱');
xlabel('频率 (GHz)');
ylabel('幅度');
subplot(3,1,3);
plot(f, abs(S)/N,'r');
title('调制后信号频谱');
xlabel('频率 (GHz)');
ylabel('幅度');
当调制波为正弦波时的时域波形
当调制波为方波时的时域波形
当调制波为三角波时的时域波形
当调制波为锯齿波时的时域波形
当调制波为正弦波时的频域波形