希尔伯特变换及其在Matlab中的两种实现方法
创作时间:
作者:
@小白创作中心
希尔伯特变换及其在Matlab中的两种实现方法
引用
搜狐
1.
https://www.sohu.com/a/786896936_121124362
实信号只包含振幅信息,而缺乏相位信息。而复信号则包含了原始信号的相位信息,可以用于分析信号的相位特性。在某些应用中,例如信号处理、通信系统中,相位信息对于理解信号的特性和进行后续处理非常重要。
Hilbert(希尔伯特)变换可以将实信号转换为复信号,常用于提取信号的相位信息,使得我们能够更全面地分析和处理信号,这在雷达通信领域中都很有用,尤其是在带通信号处理中。
Hilbert变换可以认为是函数f(t)和h(t)的卷积,其中:
在频率域,对函数进行Hilbert变换,是在f(t)的傅里叶变换结果F(w)前乘一个系数H(w),其中H(w)是h(t)的傅里叶变换:
也就是把F(w)所有正频率向后移动90°相位,负频率则向前移动90°相位。也可以用符号函数表示:
那么,对于函数f(t),它的希尔伯特变换在频域表示为:
方法一:使用Matlab工具箱中的函数
使用Matlab工具箱中的函数hilbert 可以计算实数输入序列x的Hilbert变换,并返回相同长度的复数结果,即y = hilbert(x),其中y的实部是原始实数数据,虚部是实际Hilbert变换。
方法二:使用FFT/IFFT
Hilbert变换的实现还可以通过对实信号进行傅里叶变换(FFT),将负频率部分置零,然后再通过逆傅里叶变换(IFFT)转换到时域,得到复信号,其中实数部分为原始信号,虚数部分为变换后的信号。
常见函数的Hilbert变换
另外,使用NCO(Numerically Controlled Oscillator)和低通滤波器的组合也可以直接将实信号转换为复信号,避免了额外的FFT和IFFT处理,从而减少处理时间。
下面是两种方法的Matlab代码实现:
clc;
clear;
close all;
N = 500;
Fs = 100e6;
t = (0:N-1)/Fs;
f = 1e6;
x = sin(2*pi*f*t);
% 方法一:
Y1 = hilbert(x);
figure;
plot(1:N,real(Y1),'b',1:N,imag(Y1),'r--');
title('Hilbert变换');
legend('原始信号','变换后信号');
grid on;
% 方法二:
h1 = fft(x);
for i = 1:N
if ((i == 1) || (i == (N/2+1)))
h1(i) = h1(i);
elseif ((i > 1) && (i <= N/2))
h1(i) = 2*h1(i);
else
h1(i) = 0;
end
end
Y2 = ifft(h1);
figure;
plot(1:N,real(Y2),'b',1:N,imag(Y2),'r--');
title('Hilbert变换');
legend('原始信号','变换后信号');
grid on;
热门推荐
评说历史巨人:麦克阿瑟的军事智慧与政治洞察
豪放派经典诗词:情感的激荡与文化的传承
杜库再联手?美媒地震级交易方案:勇士4换1,迎回杜兰特!
云南保山新寨村:“咖啡+旅游”让游客更向往
历史第一人?马斯克净资产破4000亿美元
花生叶面喷肥的方法,不同肥料种类的喷施方法不同
18650电池的综合指南:功能、应用和充电技术
行列式和矩阵的区别 有什么不同之处
如何判断二手车是否被调表?三种查询方法+应对指南
二氧化氯消毒剂的优势与质量评估方法
货代出口流程图,开启贸易新征程!
近120家上市公司业绩快报出炉,15家利润超百亿元,谁是A股最大“赢家”?
迁户口需要什么资料?一文详解户口迁移所需材料及流程
女性更年期护理:五心烦热怎么调理
法定监护是什么
秦汉时期官僚制度的演进与变化
三种不同版本地理教材中的农业地域类型探讨,高考地理中的农业区位因素及其变化!
为什么混动和增程不能成为卡车市场主流
大柴胡汤的禁忌
午后突爆利好,3大龙头翻红并涨停!
初榨、精炼、混合,哪种橄榄油是你的菜?
山楂的三种强肝搭配:活血降脂、软坚除滞,效果显著
说相声式讲课,教学效果和成绩会大大提高
香煎巴沙鱼
上海佘山国家森林公园
如何利用人工智能提升自然语言处理的效果?
户口迁走了,老家的宅基地还有吗
一株石斛带一方共富!武夷山发展特色产业助力乡村振兴
股票持仓1.43万亿!上市险企研判市场,透露两大关键词
中国勐海普洱茶数字博物馆等你体验茶文化时空之旅