希尔伯特变换简单理解:对实数信号进行数学变换得到一个新的实数信号

变换目标:输出信号是输入信号90°相移后的版本

在时域实现信号90°相移,根据傅里叶变换时移特性可以得到频域响应,希尔伯特变换在频域定义如下:

希尔伯特变换器的作用:
将输入信号经过希尔伯特变换器后得到输出信号,输入信号作为实部,输出信号作为虚部合成解析信号,对解析信号做Fourier变换,可以消除负频率部分,使用python仿真如下:

import numpy as np
import matplotlib.pyplot as plt
from scipy.fftpack import fftn = np.arange(-6.28,6.29,0.1)
income_signal_sin = np.sin(2*np.pi*n)
Hilbert_signal = np.sin(2*np.pi*n + np.pi/2)analytic_signal = income_signal_sin +1j * Hilbert_signalanalytic_signal_FFT = fft(analytic_signal)
income_signal_FFT = fft(income_signal_sin)plt.subplot(211)
plt.plot(n,abs(income_signal_FFT)*2/len(n))
plt.xlabel('output bins')
plt.ylabel('abs(signal)')
plt.title('income signal FFT')
plt.grid(which='both', axis='both')
plt.subplot(212)
plt.plot(n,abs(analytic_signal_FFT)*2/len(n))
plt.xlabel('output bins')
plt.ylabel('abs(signal)')
plt.title('analytic signal FFT')
plt.grid(which='both', axis='both')
plt.tight_layout()
plt.show()

对上式做Fourier逆变换,可以得到时域的系统函数:

  h(t) = [1 - cos(πt/T)]  (T为采样周期)

因为在计算机中只能有离散形式,所以上式在仿真中不具备可实现性,现在 ,令t = n*T,(T为采样周期;n为整数),可以得到希尔伯特变换在时域的离散形式:

h(n) = 2*sin(πn/2)*sin(πn/2)/πn  (T归一化处理)

由于在硬件上实现,只能有限个样值,采用窗函数截断,由于吉布斯效应,可以看到在频域出现抖动。`

使用python仿真如下:

def Hilbert(fs = 1, N = 60):t = np.arange(-N/2, N/2 + 1, 0.01)ht = (1 - np.cos(fs * np.pi * t)) / (np.pi * t)n = np.arange(-N/2, N/2 + 1,1)h = (fs *(1 - np.cos(np.pi*n)))/(np.pi * n)h[30] = 0Xk = fft(h,128)plt.subplot(311)plt.scatter(n/fs,h)plt.plot(t,ht)plt.grid(which='both', axis='both')plt.xlabel('n')plt.title('Hilbert')plt.subplot(312)plt.plot(np.arange(0,len(Xk),1),abs(Xk))plt.xlabel('output bins')plt.ylabel('abs(Xk)')plt.grid(which='both', axis='both')plt.subplot(313)plt.plot(np.arange(0,len(Xk),1),np.unwrap(np.angle(Xk)))plt.xlabel('output bins')plt.ylabel('angle')plt.grid(which='both', axis='both')plt.tight_layout()return 0def main():Hilbert()plt.show()if __name__ == '__main__':main()

Hilbert变换器相关推荐

  1. matlab hilbert 包络,hilbert取包络matlab

    matalb包络线生成_信息与通信_工程科技_专业资料.函数生成包络线的matlab m文件 function [upperenv lowerenv] = envelope(sig, method) ...

  2. 单边带调制(SSB调制)的理论基础和MATLAB仿真

    文章目录 前言 一.SSB调制的起源 1. 信号的幅度调制: 2. AM和DSB-SC: 3. SSB调制: 二.MATLAB仿真 1.Hilbert变换的仿真: 2."sin(t)&quo ...

  3. 设计多频带的FIR滤波器

    有时在信号处理中需要对信号进行多频带的数字滤波,以往的办法是单独设计一个个频带的滤波器,把信号输入到每一个滤波器(并联),再把它们的输出信号叠加在一起.是否能设计一个多频带的滤波器,一次输入/输出把多 ...

  4. hilbert C语言

    文章目录 希尔伯特变换 连续时间信号的希尔伯特变换 离散时间信号的希尔伯特变换 C程序 matlab程序 结果图 希尔伯特变换 连续时间信号的希尔伯特变换 定义:给定一连续的时间信号x(n),其希尔伯 ...

  5. Fourier变换、STFT变换、Gabor变换、小波变换、Haar变换、Hilbert变换

    参考:https://blog.csdn.net/chenaiyanmie/article/details/80246108#傅立叶变换 参考:http://www.360doc.com/conten ...

  6. python cv2 轮廓的包络 面积_Python 基于FIR实现Hilbert滤波器求信号包络详解

    在通信领域,可以通过希尔伯特变换求解解析信号,进而求解窄带信号的包络. 实现希尔伯特变换有两种方法,一种是对信号做FFT,单后只保留单边频谱,在做IFFT,我们称之为频域方法:另一种是基于FIR根据传 ...

  7. 屏幕为什么要正负压供电_负压变换器的设计

    目前在工业.汽车电子系统中有诸如温度.压力.位置.重量和流量等物理参数的精确测量,这些信号中的一些传感器和前置放大器需要正负电压源驱动或供电,以提供足够宽的动态范围和抗干扰性.这些电子系统通常使用3. ...

  8. ICCV 2021 | 简而优:用分类器变换器进行小样本语义分割

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 卢治合 编辑 | 王晔 本文是对发表于计算机视觉领域的顶级 ...

  9. PyTorch 系列教程之空间变换器网络

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在本教程中,您将学习如何使用称为空间变换器网络的视觉注意机制来扩充 ...

  10. 特征重要性、特征集成+FeatureUnion、特征选择变换器+ColumnTransformer、标签特征变换+TransformedTargetRegressor、特征质量、自动学习数据中的特征

    特征重要性.特征集成+FeatureUnion.特征选择变换器+ColumnTransformer.标签特征变换+TransformedTargetRegressor.特征质量.自动学习数据中的特征 ...

最新文章

  1. 网络爬虫-python-爬取天涯求职贴
  2. SpringFlux入门(上篇)
  3. 二十三、“为天下人谋幸福,才是真正的大事。”(2021.7.9)
  4. axios获取图片显示_vue中使用axios post上传头像/图片并实时显示到页面的方法
  5. 扬州大学计算机考研难考吗,扬州大学(专业学位)计算机技术考研难吗
  6. 深度好文:2018 年 NLP 应用和商业化调查报告
  7. mysql 控制id复原_清空mysql表后,自增id复原
  8. lintcode 中等题:Single number III 落单的数III
  9. node-red mysql的增删改查_通过curl或者http请求对elasticsearch中的数据进行增删改查...
  10. 为什么有些小区业主不愿意交物业费?
  11. J2SE:Java环境搭建探究环境变量
  12. 3dmax中为人物添加动作的流程
  13. idea护眼主题全套设置
  14. 导入数据库时报错的解决办法汇总
  15. eclipse php 404错误,关于php:Eclipse Subversion插件Subclipse显示错误
  16. 文档服务器 件排名,全国服务器排名
  17. IDEA Unable to import maven project: See logs for details (maven的坑)
  18. 《商业分析实践指南》(一)
  19. 设计模式笔记-----七大原则
  20. selenium的三种等待方式介绍及优缺点

热门文章

  1. Asterisk与zoiper搭建
  2. web前端html代码,WEB前端--HTML(示例代码)
  3. 计算机网络驱动坏了怎么解决办法,网卡驱动异常怎么办_网卡驱动异常解决办法_飞翔教程...
  4. python中文分词的主要方法
  5. 从硬件到软件玩转Nordic nRF52840 低功耗蓝牙
  6. idea运行java项目js中文乱码如何解决
  7. Oracle -- rollup函数
  8. 支付宝当面付打赏系统源码
  9. (转) 很牛的求职经历
  10. 【Axure原型模板】APP原型设计通用模板 移动端通用原型模板