文章目录
AM的基本原理:标准AM信号包含载波、上边带(USB)和下边带(LSB),带宽为基带信号带宽的两倍,且大部分功率集中在载波上(载波不携带信息),导致调制效率低
1. AM(幅度调制)的基本原理
AM通过将基带信号 ( m ( t ) m(t) m(t) ) 叠加到载波上,保留载波分量和两个边带:
- 时域表达式:
s AM ( t ) = [ A 0 + m ( t ) ] cos ( ω c t ) = A 0 cos ( ω c t ) + m ( t ) cos ( ω c t ) s_{\text{AM}}(t) = [A_0 + m(t)] \cos(\omega_c t) = A_0 \cos(\omega_c t) + m(t) \cos(\omega_c t) sAM(t)=[A0+m(t)]cos(ωct)=A0cos(ωct)+m(t)cos(ωct)- ( A 0 cos ( ω c t ) A_0 \cos(\omega_c t) A0cos(ωct) ):载波项(不携带信息,功率占比高)。
- ( m ( t ) cos ( ω c t ) m(t) \cos(\omega_c t) m(t)cos(ωct) ):边带项(携带信息)。
import numpy as np
import matplotlib.pyplot as plt
from scipy.fft import fft, fftfreq
# 参数设置
fs = 1000 # 采样频率 (Hz)
t = np.linspace(0, 1, fs) # 时间轴 (1秒)
fm = 10 # 基带信号频率 (Hz)
fc = 100 # 载波频率 (Hz)
A0 = 1 # 直流分量
Ma = 0.5 # 调制指数
# 生成基带信号和载波
m_t = np.sin(2 * np.pi * fm * t) # 基带信号
c_t = np.cos(2 * np.pi * fc * t) # 载波信号
s_am = (A0 + Ma * m_t) * c_t # AM调制信号
# 绘制时域波形
plt.figure(figsize=(12, 4))
plt.plot(t, s_am, label='AM信号')
plt.plot(t, A0 + Ma * m_t, 'r--', label='包络线')
plt.xlabel('时间 (s)')
plt.ylabel('幅度')
plt.title('AM信号时域波形 (调制指数=0.5)')
plt.legend()
plt.grid()
plt.show()
频域表达式:
AM(幅度调制)的频域表达式揭示了信号在频率域的结构特性,其核心是通过傅里叶变换将时域信号转换为频域表示,从而分析频谱成分和带宽需求。
S AM ( ω ) = π A 0 [ δ ( ω + ω c ) + δ ( ω − ω c ) ] + 1 2 [ M ( ω + ω c ) + M ( ω − ω c ) ] S_{\text{AM}}(\omega) = \pi A_0 [\delta(\omega + \omega_c) + \delta(\omega - \omega_c)] + \frac{1}{2} [M(\omega + \omega_c) + M(\omega - \omega_c)] SAM(ω)=πA0[δ(ω+ωc)+δ(ω−ωc)]+21[M(ω+ωc)+M(ω−ωc)]- 带宽:( 2 f m 2f_m 2fm )(( f m f_m fm )为基带信号最高频率)。
- 调制效率低(≤33%),因载波功率冗余。
载波分量:( π A 0 [ δ ( ω + ω c ) + δ ( ω − ω c ) ] \pi A_0 \left[\delta(\omega + \omega_c) + \delta(\omega - \omega_c)\right] πA0[δ(ω+ωc)+δ(ω−ωc)]) 表示载波频率 ( ω c \omega_c ωc) 处的冲激函数,对应直流分量 ( A 0 A_0 A0) 的贡献。
边带分量:( 1 2 [ M ( ω + ω c ) + M ( ω − ω c ) ] \frac{1}{2} \left[M(\omega + \omega_c) + M(\omega - \omega_c)\right] 21[M(ω+ωc)+M(ω−ωc)]) 是调制信号 (m(t)) 的频谱 ( M ( ω ) M(\omega) M(ω)) 搬移到载波两侧的结果,形成上边带(USB)和下边带(LSB)。
载波与边带:AM信号的频谱包含三部分:
- 载波:位于 ( ± ω c \pm \omega_c ±ωc) 的离散谱线,功率为 ( A 0 2 / 2 A_0^2/2 A02/2),不携带信息。
- 上边带(USB):频谱结构与 ( M ( ω ) M(\omega) M(ω)) 相同,位于 ( ω c \omega_c ωc) 右侧。
- 下边带(LSB):是上边带的镜像,位于 ( ω c \omega_c ωc) 左侧。
带宽:若基带信号带宽为 ( f H f_H fH),则AM带宽为 ( B A M = 2 f H B_{AM} = 2f_H BAM=2fH)(双边带)。
调制效率与功率分配
- 功率分配:AM信号总功率 ( P A M P_{AM} PAM) 包含载波功率 ( P c = A 0 2 / 2 P_c = A_0^2/2 Pc=A02/2) 和边带功率 ( P s = m 2 ( t ) ‾ / 2 P_s = \overline{m^2(t)}/2 Ps=m2(t)/2)。
- 调制效率:定义为边带功率与总功率之比:
η A M = P s P A M = m 2 ( t ) ‾ A 0 2 + m 2 ( t ) ‾ \eta_{AM} = \frac{P_s}{P_{AM}} = \frac{\overline{m^2(t)}}{A_0^2 + \overline{m^2(t)}} ηAM=PAMPs=A02+m2(t)m2(t)
当调制信号为单频信号时,最大效率仅33%,说明大部分功率浪费在载波上。
物理意义
- 频谱搬移:AM通过乘法器将基带信号频谱线性搬移到载波频率附近,实现频带适配。
- 冗余性:上下边带携带相同信息,载波无信息,导致频谱和功率利用率低,但解调简单(包络检波)。
对 [ A 0 + m ( t ) ] cos ( ω c t ) [A_0 + m(t)] \cos(\omega_c t) [A0+m(t)]cos(ωct)包络检波的目标是提取 [ A 0 + m ( t ) ] [A_0 + m(t)] [A0+m(t)],二极管峰值包络检波器:输入信号 → 二极管 → RC并联(R=10kΩ, C=0.1μF) → 输出低频信号
import numpy as np
import matplotlib.pyplot as plt
# 生成AM信号
fs = 1000 # 采样率
t = np.linspace(0, 1, fs)
fm, fc = 5, 50 # 基带和载波频率
m_t = 0.5 * np.sin(2 * np.pi * fm * t) # 调制信号
am_signal = (1 + m_t) * np.cos(2 * np.pi * fc * t) # AM信号
# 模拟二极管半波整流
rectified = np.maximum(am_signal, 0) # 半波整流
# RC低通滤波(时间常数τ=RC需满足1/fc ≪ τ ≪ 1/fm)
alpha = 0.01 # 滤波系数(与RC相关)
envelope = np.zeros_like(rectified)
envelope[0] = rectified[0]
for i in range(1, len(rectified)):
envelope[i] = alpha * rectified[i] + (1 - alpha) * envelope[i-1] # 一阶低通滤波
# 可视化
plt.figure(figsize=(12, 6))
plt.plot(t, am_signal, label='AM信号')
plt.plot(t, envelope, 'r', linewidth=2, label='包络检波输出')
plt.xlabel('时间 (s)')
plt.ylabel('幅度')
plt.legend()
plt.grid()
plt.show()
检波输出为 [ A 0 + m ( t ) ] [A_0 + m(t)] [A0+m(t)],去除直流分量 A0 后即为原始信号 m(t)(如AM广播中的音频信号)
2. DSB(双边带调制)的改进
DSB抑制载波,仅保留两个边带,提升功率效率:
- 时域表达式:
s DSB ( t ) = m ( t ) cos ( ω c t ) s_{\text{DSB}}(t) = m(t) \cos(\omega_c t) sDSB(t)=m(t)cos(ωct)- 直接由AM去掉直流分量 ( A_0 ) 得到。
- 频域表达式:
S DSB ( ω ) = 1 2 [ M ( ω + ω c ) + M ( ω − ω c ) ] S_{\text{DSB}}(\omega) = \frac{1}{2} [M(\omega + \omega_c) + M(\omega - \omega_c)] SDSB(ω)=21[M(ω+ωc)+M(ω−ωc)]- 带宽仍为 ( 2f_m ),但调制效率达100%(无载波功率浪费)。
- 需相干解调(包络检波失效,含负值(如正弦波),包络检波会丢失符号信息,导致输出失真。)。
DSB信号需通过相干解调(同步检波)恢复原始信号,步骤如下:
信号混频:将DSB信号与同频同相的载波相乘。
低通滤波:滤除高频分量,保留基带信号。
# 完整DSB相干解调代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import butter, filtfilt
# 参数设置
fs, fm, fc, Am = 1000, 5, 50, 0.8
t = np.linspace(0, 1, fs)
# 1. 生成DSB信号,DSB信号由基带信号与载波直接相乘生成,频谱中无载波分量,仅保留上下边带
m_t = Am * np.sin(2 * np.pi * fm * t)
s_dsb = m_t * np.cos(2 * np.pi * fc * t)
# 2. 相干解调,本地载波(假设完美同步)
local_carrier = np.cos(2 * np.pi * fc * t)
demodulated = s_dsb * local_carrier# 输出含基带与高频分量
# 3. 低通滤波,设计低通滤波器(截止频率略高于fm)
b, a = butter(5, fm * 1.2 / (fs / 2), 'low')
m_recovered = filtfilt(b, a, demodulated) * 2
# 4. 绘图
fig, axs = plt.subplots(3, 1, figsize=(12, 8))
axs[0].plot(t, s_dsb)
axs[0].set_title('DSB调制信号')
axs[1].plot(t, demodulated)
axs[1].set_title('混频后信号')
axs[2].plot(t, m_recovered, 'g', label='解调输出')
axs[2].plot(t, m_t, 'r--', label='原始信号')
axs[2].set_title('恢复的基带信号')
axs[2].legend()
plt.tight_layout()
plt.show()
3. SSB(单边带调制)的进一步优化
SSB通过滤除一个冗余边带,节省带宽和功率:
- 实现方法:
- 滤波法:生成DSB后,用带通滤波器滤除一个边带(需陡峭截止特性)。
- 相移法:利用希尔伯特变换构造正交分量,(希尔伯特变换构造调制信号的正交分量(即原信号的90°相移版本),再与载波的正交分量混合),数学表达式为:
- 上边带(USB):
s SSB-USB ( t ) = 1 2 [ m ( t ) cos ( ω c t ) − m ^ ( t ) sin ( ω c t ) ] s_{\text{SSB-USB}}(t) = \frac{1}{2} [m(t) \cos(\omega_c t) - \hat{m}(t) \sin(\omega_c t)] sSSB-USB(t)=21[m(t)cos(ωct)−m^(t)sin(ωct)] - 下边带(LSB):
s SSB-LSB ( t ) = 1 2 [ m ( t ) cos ( ω c t ) + m ^ ( t ) sin ( ω c t ) ] s_{\text{SSB-LSB}}(t) = \frac{1}{2} [m(t) \cos(\omega_c t) + \hat{m}(t) \sin(\omega_c t)] sSSB-LSB(t)=21[m(t)cos(ωct)+m^(t)sin(ωct)] - 其中 ( m ^ ( t ) \hat{m}(t) m^(t) ) 为 ( m ( t ) m(t) m(t) ) 的希尔伯特变换。
- 上边带(USB):
- 频域特性:
- 带宽:( f_m )(比DSB减少50%)。
- 功率效率100%,且抗干扰能力更强。
希尔伯特变换构造正交分量演示:
import numpy as np
from scipy.signal import hilbert
import matplotlib.pyplot as plt
# 参数设置
fs = 1000 # 采样率
t = np.linspace(0, 1, fs) # 时间轴
fm, fc = 5, 50 # 基带频率和载波频率
m_t = np.sin(2 * np.pi * fm * t) # 基带信号(示例为正弦波)
# 1. 计算希尔伯特变换
analytic_signal = hilbert(m_t) # 解析信号(复数)
m_hilbert = np.imag(analytic_signal) # 提取正交分量(希尔伯特变换结果)
# 2. 生成SSB信号(以下边带LSB为例)
ssb_lsb = m_t * np.cos(2 * np.pi * fc * t) + m_hilbert * np.sin(2 * np.pi * fc * t)
# 3. 可视化
plt.figure(figsize=(12, 8))
plt.subplot(3, 1, 1)
plt.plot(t, m_t, label='基带信号')
plt.plot(t, m_hilbert, 'r--', label='希尔伯特变换输出')
plt.legend()
plt.title('基带信号及其希尔伯特变换')
plt.subplot(3, 1, 2)
plt.plot(t, np.real(analytic_signal), label='解析信号实部(原始信号)')
plt.plot(t, np.imag(analytic_signal), label='解析信号虚部(正交分量)')
plt.legend()
plt.title('解析信号的实部与虚部')
plt.subplot(3, 1, 3)
plt.plot(t, ssb_lsb, 'g', label='SSB-LSB信号')
plt.legend()
plt.title('生成的单边带信号(下边带)')
plt.tight_layout()
plt.show()
希尔伯特变换
希尔伯特变换生成的解析信号hilbert(m_t)
的实部与虚部具有明确的物理意义,尤其在信号处理和通信系统中至关重要。
1. 实部与虚部的定义
- 实部:即原始信号
m_t
本身,表示实际采集或传输的物理信号。- 虚部:通过希尔伯特变换得到的正交分量
np.imag(hilbert(m_t))
,是原始信号的90°相移版本。
数学表达:
解析信号 ( z ( t ) = m ( t ) + j m ^ ( t ) z(t) = m(t) + j\hat{m}(t) z(t)=m(t)+jm^(t) ),其中 ( m ^ ( t ) \hat{m}(t) m^(t) ) 为虚部(希尔伯特变换结果)。
2. 物理意义
(1) 实部(原始信号)- 物理含义:代表信号的瞬时幅值随时间的变化,是实际可观测的物理量。例如,声波的压力变化或电磁波的电场强度。
- 频域特性:实信号的频谱是共轭对称的,包含正负频率分量,但负频率无独立物理意义,仅数学对称性体现。
(2) 虚部(希尔伯特变换结果)- 物理含义:
- 正交分量:虚部与实部相位差90°,构成信号的“正交通道”,用于完整描述信号的瞬时特性(如包络和相位)。
- 单边频谱构造:解析信号 ( z(t) ) 的频谱仅保留正频率分量,消除负频率的冗余信息,便于频域分析和调制解调。
- 频域操作:希尔伯特变换在频域等效于对正频率乘 (-j)(相移-90°),对负频率乘 (j)(相移+90°)。
4. 示例验证
以正弦信号 ( m ( t ) = sin ( 2 π f t ) m(t) = \sin(2\pi f t) m(t)=sin(2πft) ) 为例:- 希尔伯特变换:虚部为 ( − cos ( 2 π f t ) -\cos(2\pi f t) −cos(2πft)),与实部构成解析信号 ( z ( t ) = sin ( 2 π f t ) − j cos ( 2 π f t ) = − j e j 2 π f t z(t) = \sin(2\pi f t) - j\cos(2\pi f t) = -je^{j2\pi f t} z(t)=sin(2πft)−jcos(2πft)=−jej2πft )。
- 频谱效果:( z(t) ) 仅保留正频率分量 ( f ),验证了单边谱特性。
通过解析信号实部与虚部的协同作用,希尔伯特变换将一维实信号扩展至复平面,为信号分析提供了更丰富的维度。
# SSB相移法完整代码
import numpy as np
from scipy.signal import hilbert, butter, filtfilt
import matplotlib.pyplot as plt
# 1. 生成信号
fs, fm, fc = 1000, 5, 50
t = np.linspace(0, 1, fs)
m_t = np.sin(2 * np.pi * fm * t)
c_t = np.cos(2 * np.pi * fc * t)
# 2. 希尔伯特变换与SSB调制
m_hilbert = np.imag(hilbert(m_t))
ssb_lsb = m_t * c_t + m_hilbert * np.sin(2 * np.pi * fc * t)
# 3. 解调
demod_lsb = ssb_lsb * c_t
b, a = butter(4, fm/(fs/2), 'low')
m_recovered = filtfilt(b, a, demod_lsb)
# 4. 绘图
fig, axs = plt.subplots(3, 1, figsize=(12, 10))
axs[0].plot(t, m_t, label='基带信号')
axs[0].plot(t, ssb_lsb, 'r', label='SSB-LSB信号')
axs[0].legend()
axs[1].plot(np.fft.fftfreq(len(ssb_lsb), 1/fs)[:fs//2],
np.abs(np.fft.fft(ssb_lsb)[:fs//2]))
axs[1].set_title('SSB-LSB频谱')
axs[2].plot(t, m_t, 'b', label='原始信号')
axs[2].plot(t, m_recovered, 'g--', label='解调输出')
axs[2].legend()
plt.tight_layout()
plt.show()
4. 三者的优化关系总结
特性 | AM | DSB | SSB |
---|---|---|---|
数学公式 | ( [ A 0 + m ( t ) ] cos ( ω c t ) [A_0 + m(t)] \cos(\omega_c t) [A0+m(t)]cos(ωct) ) | ( m ( t ) cos ( ω c t ) m(t) \cos(\omega_c t) m(t)cos(ωct) ) | ( 1 2 [ m ( t ) cos ( ω c t ) ∓ m ^ ( t ) sin ( ω c t ) ] \frac{1}{2} [m(t) \cos(\omega_c t) \mp \hat{m}(t) \sin(\omega_c t)] 21[m(t)cos(ωct)∓m^(t)sin(ωct)] ) |
带宽 | ( 2f_m ) | ( 2f_m ) | ( f_m ) |
功率效率 | ≤33% | 100% | 100% |
解调方式 | 包络检波 | 相干解调 | 相干解调 |
应用场景 | 广播等简单系统 | 过渡技术或特殊需求 | 短波通信、频分复用系统 |
5 接收SSB后CW、FT8、WSPR、RTTY模式需要解码
CW(连续波)
- 调制类型:CW属于数字调制模式,通过正弦波载波的通断(On-Off Keying, OOK)传递莫尔斯电码信息。
- 数学含义:数学上表示为载波幅度在“1”(通)和“0”(断)之间的切换,可视为幅移键控(ASK)的特例,公式为:
( s ( t ) = A ⋅ cos ( 2 π f c t ) ⋅ m ( t ) s(t) = A \cdot \cos(2\pi f_c t) \cdot m(t) s(t)=A⋅cos(2πfct)⋅m(t) ),其中 ( m(t) ) 为二进制码(0或1)。 - 互通性:CW需通过SSB接收(通常用USB或LSB),但需手动或软件解码莫尔斯电码,无法直接与其他模式互通。
SSB(单边带)
SSB可解调语音或部分数字信号(如RTTY需通过音频耦合),但无法直接解码FT8/WSPR等专用数字模式。
FT8
- 调制类型:FT8为数字操作模式,使用8-FSK(频移键控)调制,属于弱信号通信协议。
- 数学含义:采用8个离散频率音调(间隔6.25 Hz)编码信息,数学形式为:
( s ( t ) = A cos [ 2 π ( f c + k ⋅ Δ f ) t ] s(t) = A \cos[2\pi (f_c + k \cdot \Delta f) t] s(t)=Acos[2π(fc+k⋅Δf)t] ),其中 ( k ) 为符号索引(0-7)。 - 互通性:需专用软件(如WSJT-X)解码,无法通过SSB或CW接收机直接解调,但可通过SSB接收后输入软件处理。
WSPR
- 调制类型:WSPR是数字信标模式,使用4-FSK调制,专为极弱信号设计。
- 数学含义:类似FT8但仅用4个频率音调,编码效率更低但容错性更强,公式与FT8类似但参数不同。
- 互通性:需专用软件解码,与其他模式不兼容,但可通过SSB接收后转发至解码软件[citation:2][citation:6]。
RTTY(无线电传)
- 调制类型:RTTY使用FSK(频移键控),通过两个频率(MARK/SPACE)表示二进制数据。
- 数学含义:信号表示为:
( s ( t ) = A cos [ 2 π ( f c + Δ f ⋅ m ( t ) ) t ] s(t) = A \cos[2\pi (f_c + \Delta f \cdot m(t)) t] s(t)=Acos[2π(fc+Δf⋅m(t))t] ),其中 ( m(t) ) 为±1的二进制数据。 - 互通性:可通过SSB接收后由软件解码(如MMTTY),但需注意边带设置(通常用LSB),与CW/FT8/WSPR不直接兼容。
总结:互通性对比
模式 | 可接收方式 | 需专用设备/软件 |
---|---|---|
CW | SSB接收后手动/软件解码 | 是(莫尔斯解码器) |
SSB | 直接接收语音或音频数据 | 否(但数字模式需额外处理) |
FT8 | SSB接收后软件解码 | 是(WSJT-X) |
WSPR | 同FT8 | 是(WSPR软件) |
RTTY | SSB接收后软件解码 | 是(如MMTTY) |
注意:所有数字模式(FT8/WSPR/RTTY)均可通过SSB接收机的音频输出接入计算机处理,但需正确设置边带和频率偏移。CW和SSB是传统模式,而FT8/WSPR/RTTY需依赖现代数字技术实现互通。