(68)希尔伯特变换、解析信号,与瞬时幅度、频率和相位的提取的MATLAB仿真


前言

希尔伯特变换(Hilbert transform)是信号处理中的一个重要概念,它能够为实值信号生成一个对应的解析信号。解析信号在通信、信号分析等领域有着广泛的应用。
本文首先介绍希尔伯特变换和信号的解析表示,然后给出一个从由实值调制信号构建的解析信号中提取瞬时幅度、频率和相位的MATLAB仿真例程。


一、希尔伯特变换

希尔伯特变换是一种线性积分变换,对于实值信号x(t),其希尔伯特变换 x^(t) 定义为:

在这里插入图片描述

在实际应用中,希尔伯特变换通常通过傅里叶变换来简化计算。希尔伯特变换在频域中的表现形式是将信号的负频率成分相位移动−90度,而正频率成分相位移动 +90度。

二、解析信号

解析信号z(t) 是由原始实值信号x(t) 和其希尔伯特变换hat{x}(t)构成的复值信号:
在这里插入图片描述

其中j 是虚数单位。解析信号具有以下特性:

  1. 解析性:解析信号的负频率分量为零,即它只包含正频率分量。

  2. 瞬时幅度和相位:解析信号的瞬时幅度 A(t) 和瞬时相位ϕ(t) 可以通过以下方式计算:
    在这里插入图片描述

  3. 包络和瞬时频率:解析信号的包络就是其瞬时幅度 A(t),而瞬时频率 f(t) 可以通过对瞬时相位求导得到:

在这里插入图片描述

三、希尔伯特变换和解析信号的应用

希尔伯特变换和解析信号在以下领域有着重要的应用:
通信系统:用于调制和解调信号,特别是在单边带调制(SSB)中。
信号分析:可以用来提取信号的瞬时特征,如瞬时频率和幅度。
地震勘探:用于地震数据的时间-频率分析。
生物医学信号处理:用于分析心电信号(ECG)等。

希尔伯特变换和解析信号为信号处理提供了一种强大的工具,使得我们可以从复数域的角度更深入地理解和分析实值信号。

四、构建解析信号并从中提取瞬时幅度、频率和相位的MATLAB仿真

1. 仿真代码

% (1)生成幅度调制信号
f = 4;                                      % 信息信号的频率,单位Hz
fs = 1000;                                  % 采样率,单位Hz
t = 0:1/fs:1-2/fs;                          % 采样时刻序列
mu = 1;                                     % 幅度调制中调制信号的直流偏置
sigma = 0.8;                                % 调制深度(也称调制度)
s = mu + sigma * sin(2*pi*f*t) ;            % 信息信号
c = chirp(t,10,t(end),50);                  % chirp载波
x = s .* c;                                 % 已调信号

figure()
subplot(2,2,1); plot(s, 'LineWidth', 1);
title('信息信号');
xlabel('n');ylabel('s(t)'); grid on;
subplot(2,2,2); plot(c, 'LineWidth', 1);
title('chirp载波');
xlabel('n');ylabel('c(t)'); grid on;
subplot(2,2,3); plot(x, 'LineWidth', 1);    % 已调信号画图
hold on;

% (2)从调制信号中构建解析信号并提取瞬时幅度、相位和频率
z = Generate_analytic_signal(x);            % 形成解析信号
inst_amplitude = abs(z);                    % 包络提取
inst_phase = unwrap(angle(z));              % 瞬时相位
inst_freq = diff(inst_phase)/(2*pi)*fs;     % 瞬时频率

% (3)从瞬时相位再生chirp载波
regenerated_carrier = cos(inst_phase);

plot(inst_amplitude, 'r', 'LineWidth', 1);  % 覆盖提取的包络
title('调制信号与其包络');
xlabel('n');ylabel('x(t) & |z(t)|'); grid on;
subplot(2,2,4); plot(cos(inst_phase), 'LineWidth', 1);
title('再生的chirp载波');
xlabel('n'); ylabel('cos[\omega(t)]'); grid on;

2. 仿真结果

在这里插入图片描述



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值