文章目录
- 前言
- 一、希尔伯特变换
- 二、相位调制
- 1.基本原理
- 2.调制特点
- 3.应用
- 三、使用希尔伯特变换进行相位解调的原理
- 1. 解调原理
- 2.算法优点
- 四、MATLAB仿真
- 1. 仿真代码
- 2. 仿真结果
- 总结
前言
本文首先介绍了相位调制技术,然后说明了使用希尔伯特变换进行调相信号解调的原理,接着给出了基于Hilbert(希尔伯特)变换的调相信号解调的MATLAB仿真代码。最后给出了仿真结果。
一、希尔伯特变换
关于希尔伯特变换,参考:
(68)希尔伯特变换、解析信号,与瞬时幅度、频率和相位的提取
二、相位调制
相位调制(Phase Modulation, PM)是一种通过改变载波信号的相位来传输信息的调制技术。在相位调制中,信息的携带是通过改变载波信号的相位来实现的,而载波的幅度和频率保持不变。
1.基本原理
在相位调制中,调制信号(通常是基带信号)会影响载波信号的相位。具体来说,调制信号m(t) 的变化会导致载波信号Accos(ωct+ϕ(t)) 的相位ϕ(t) 发生变化,其中:
• Ac 是载波的幅度。
• ωc 是载波的角频率。
• ϕ(t) 是载波的相位,它是时间的函数,由调制信号决定。
相位调制的一般表达式可以写为:
PM(t)= Accos (ωct+ϕm(t))
其中, ϕm(t) 是由调制信号引起的相位偏移,通常与调制信号的积分有关:
ϕm(t)=kp∫m(t)dt
其中, kp 是相位偏移常数,它决定了调制深度,即调制信号对载波相位的影响程度。
2.调制特点
• 幅度不变:与幅度调制(AM)不同,PM中载波的幅度 Ac 保持不变。
• 频率不变:与频率调制(FM)不同,PM中载波的频率ωc 也保持不变。
• 相位变化:信息通过载波相位的变化来传输。
• 带宽:PM信号的带宽取决于调制信号的带宽和调制指数。理论上,PM的带宽是无限的,但实际上,通过适当的带通滤波,可以限制带宽。
3.应用
相位调制广泛应用于多种通信系统中,特别是在以下情况:
• 无线通信:如FM广播、卫星通信等。
• 数字通信:相位键控(PSK)是PM的一种形式,广泛用于数字通信系统。
• 音频传输:高质量的音频传输通常使用PM或其变体。
三、使用希尔伯特变换进行相位解调的原理
1. 解调原理
使用希尔伯特变换进行相位解调的原理如下:
- 希尔伯特变换:首先,对实信号x(t) 进行希尔伯特变换,得到x_H (t)。
- 构造解析信号:将原始信号x(t) 和其希尔伯特变换x_H (t) 结合,构造出解析信号xa(t)。
- 计算包络和相位:解析信号的包络A(t) 和相位ϕ(t) 可以通过以下方式计算:
包络:A(t) = sqrt{x(t)^2 + x_H(t)^2}
相位: ϕ(t)=arctan(x_H(t)/x(t)) - 提取相位信息:通过计算得到的相位ϕ(t),可以提取出相位调制信号中的信息。
2.算法优点
• 相位信息提取:希尔伯特变换可以准确地提取出信号的相位信息,这对于相位调制信号的解调非常重要。
• 计算效率:希尔伯特变换可以通过高效的算法实现,如快速傅里叶变换(FFT)。
四、MATLAB仿真
1. 仿真代码
% 接收机关于载波频率和初相的信息
ReceiverKnowsCarrier= 'False'; % 如果接收机知道载波频率和初相,则设置为True% 载波
fc = 200; % 载波频率
beta_c = pi/5; % 载波的初相% 调制信号
f = 10; % 调制信号频率
alpha = 10; % 调制信号幅度
theta_m = pi/4; % 调制信号的初相
fs = 10 * fc; % 采样频率
duration = 0.3; % 信号持续时间
t = 0:1/fs:duration-1/fs; % 采样时刻序列
m = alpha*sin(2*pi*f*t + theta_m); % 调制信号% 相位调制
x = cos(2*pi*fc*t + beta_c + m ); % 已调信号figure();
subplot(3,1,1); plot(t,m, 'LineWidth', 1); grid on; % 绘图调制信号
title('Modulating signal'); xlabel('t'); ylabel('m(t)')
subplot(3,1,2); plot(t,x, 'LineWidth', 1); grid on; % 绘图调制信号
title('Modulated signal'); xlabel('t');ylabel('x(t)')% AWGN信道传输
nMean = 0; % 噪声均值
nSigma = 0.01; % 噪声标准差
n = nMean + nSigma*randn(size(t)); % awgn噪声
r = x + n; % 带噪接收信号% 带噪调相信号的解调
% z = hilbert(r); % 生成带噪接收信号的解析信号
z = Generate_analytic_signal(r); % 生成带噪接收信号的解析信号
z = z.'; % 转置不取共轭
inst_phase = unwrap(angle(z)); % 瞬时相位% 载波瞬时相位
if strcmpi(ReceiverKnowsCarrier,'True') % 接收机完全知道载波频率/相位offsetTerm = 2*pi*fc*t + beta_c;
else % 接收机不知道载波频率/相位,则估计载波瞬时相位作为减法项p = polyfit(t,inst_phase,1); % 求载波瞬时相位的线性拟合系数estimated = polyval(p,t); % 拟合估计载波瞬时相位offsetTerm = estimated;
enddemodulated = inst_phase - offsetTerm; % 解调
subplot(3,1,3); plot(t,demodulated, 'LineWidth', 1); grid on; % 解调信号
title('Demodulated signal'); xlabel('t'); ylabel('hat m(t) ');
2. 仿真结果
总结
希尔伯特变换是一种强大的工具,可以用于相位解调,尤其是在分析相位调制信号时。通过构造解析信号并计算其相位,可以有效地提取出相位调制信号中的信息。然而,这种方法在实际应用中需要考虑信号的性质和噪声的影响。