📜  使用MATLAB的单边带(SSB)调制(1)

📅  最后修改于: 2023-12-03 15:22:19.123000             🧑  作者: Mango

单边带调制(SSB)之MATLAB实现

单边带调制(Single SideBand Modulation, 简称SSB)是一种比调幅调制(AM)更高效的调制方法。SSB调制的核心思想是只传输信号的一个侧带,避免了传输冗余信号带来的浪费。

实现步骤
  1. 生成信号
  2. 计算频谱
  3. 进行滤波
  4. 映射到单边带
  5. 调制
  6. 解调

下面我们将依次介绍每一步的实现方法。

1. 生成信号

使用MATLAB生成一个简单的示波器信号:

fs = 100e3;  % 采样率
t = (0:1/fs:0.1)';
f1 = 2e3;  % 信号频率
f2 = 9e3;
s = sin(2*pi*f1*t) + 0.3*sin(2*pi*f2*t);  % 信号
2. 计算频谱

使用MATLAB计算信号的频谱:

N = length(s);  % 信号长度
f = (-N/2:N/2-1)*fs/N;  % 频率轴
S = fftshift(fft(s));  % FFT
3. 进行滤波

为了避免传输冗余信息,我们只传输信号的一个侧带。可以选择一个低通滤波器,把信号的一个侧带滤波出来。

[b, a] = butter(5, 2*pi*(f2-f1)/fs/2, 'low');  % 低通滤波器的系数
s_f = filter(b, a, s);  % 滤波后的信号
4. 映射到单边带

将信号映射到单边带,可以使用希尔伯特变换实现。

h = hilbert(s_f);  % 希尔伯特变换
s_f_h = s_f.*exp(-1j*2*pi*f1*t);  % 映射到单边带
5. 调制

使用载波进行调制:

fc = 100e3;  % 载波频率
x = real(s_f_h.*exp(1j*2*pi*fc*t));  % 调制信号
6. 解调

使用同频率的载波进行解调:

y = x.*cos(2*pi*fc*t);  % 解调信号
y_f = filter(b, a, y);  % 滤波

以上就是MATLAB实现单边带调制的所有步骤,可以根据需要进行调整和优化。