1. 问题描述
信号处理中,对于较为负复杂的信号,我们有时候需要提取包络线分析。如下图:
2. 技术背景
提取包络线,在信号处理中往往采用Hilbert变换。
3. 解决方案
h = hilbert(V);
4. 实施示例
4.1 波形参数设置
%% 基本参数
A = 1; % 激励信号幅值
N = 15; % cycle数,即激励信号波峰数
fck = 100; % 激励中心频率 kHz
fc = 100e3; % 激励信号中心频率,Hz
T0 = 1e-4; % 导波传播时间
T = 4.0*T0; % 激励持续时长
dt = 1/(20*fc)/2; % 时间步长,在最大步长基础上除以2
t = [0:dt:T]'; % 时间序列
4.2 波形构造与Hilbert变换
V = A*[heaviside(t)-heaviside(t-N/fc)].*... % 时域输入信号求解
(1-cos(2*pi*fc*t/N)).*sin(2*pi*fc*t);
h = hilbert(V); % Hilbert变换
4.3 包络绘制
%% 包络绘制
figure
hold on
plot(t,V)
plot(t,abs(h),'-.')
grid on
此处注意,对变换后的变量h取范数(绝对值)。
5. 常见问题
对于较复杂的波形,包络效果可能不理想。
本文用时 30 m