检波 (detection):广义的检波通常称为解调,是调制的逆过程,即从已调波提取调制信号的过程。狭义的检波是指从调幅波的包络提取调制信号的过程,这种检波方法也被称为包络检波。希尔伯特变换可以用作包络检波。

希尔伯特变换

Hilbert 变换能在振幅保持不变的情况下将输入信号的相角偏移 90 度,简单地说就是能够将正弦波形转换为余弦波形:

相角偏移90度相当于复数平面上的点与虚数单位 1j 相乘,因此 Hilbert 变换的频率响应可以用如下公式表示:

Hilbert 转换函数在 scipy.fftpack 函数库中,它的调用格式如下:

form scipy import fftpack

fftpack.hilbert(x)

包络检波

Hilbert 变换可以用作包络检波。具体算法如下:

# original singal

sampling_rate = 51200

fft_size = 51200

t = np.arange(0,1.0,1.0/sampling_rate)

ts = np.array(map(lambda x : x*1000, t))

x = np.sin(2*np.pi*1e3*t) + 0.1 * np.sin(2*np.pi*980*t) + 0.10 * np.sin(2*np.pi*1020*t)+ 0.01 * np.sin(2*np.pi*960*t) + 0.01 * np.sin(2*np.pi*1040*t)

xn = x + 0.005*np.random.normal(0.0,1.0,len(x))

# envelop detecting

hx = fftpack.hilbert(x)

hy = np.sqrt(x**2+hx**2)

检波性能分析

用频率扫描波可以测量滤波器的频率响应,也可以用它检测 Hilbert 变换用于包络检波的性能:

# parameters of filter

a = np.array([1.0, -1.947463016918843, 0.9555873701383931])

b = np.array([0.9833716591860479, -1.947463016918843, 0.9722157109523452])

# chirp signal

t = np.arange(0, 0.5, 1/44100.0)

x= signal.chirp(t, f0=10, t1 = 0.5, f1=1000.0)

# the chirp signal through the filter

y = signal.lfilter(b, a, x)

# hilbert transform

hy = fftpack.hilbert(y)

从上图可以看出,在高频和低频处包络计算出现较大的误差,而中频部分能很好地计算出包络的形状。

去包络算法

在 Hilbert 变换检测出包络的基础上,可以利用简单的去包络算法将包络从原始信号中去除而恢复载波信息,去包络算法用公式表示如下:

y = (2*x-hy)/hy*0.5 + 0.5

从上面的图可以看出,包络已经被很好的去掉,但是从时域图像,并不能完全确定包络被很好的去掉,我们需要从去包络前后信号的频率响应一探究竟:

从去包络前后信号的频率响应图可以看出,包络已经被很好的抑制,只剩下了单频载波信号。

去包络算法性能分析

从上述去包络前信号的频率响应图可以看出,其上下边带的幅度是相等的,当上下边带信号幅度不对等时,去包络算法效果会如何呢?

当边带信号幅度不对等时,包络的抑制效果就会变差,而且还会引入新的频率成份,这将会在一定程度上恶化信号。

Stay hungry, Stay foolish.

python cv2 轮廓的包络 面积_Python科学计算——检包络与去包络相关推荐

  1. python三维数据转换成二维_Python科学计算全生态工具锦集

    没关注?  伸出手指点这里 AI Python目前是与科学计算结合最好的一门编程语言,包括大数据分析.机器学习.人工智能.可视化,甚至是天文学.生物学(神经科学).量子力学等等都有强大的工具包支持 P ...

  2. python正弦波和等腰三角波_Python科学计算——任意波形拟合

    任意波形的生成 (geneartion of arbitrary waveform) 在商业,军事等领域都有着重要的应用,诸如空间光通信 (free-space optics communicatio ...

  3. 基于python的风险管理方式属于_张家港高校邦_Python科学计算_网课答案

    张家港高校邦_Python科学计算_网课答案3rh4 张家港高校邦_Python科学计算_网课答案 关注公众号{帅搜}即可查询答案 支持:大学网课,智慧树,知到,超星,尔雅,学习通,选修课,公务员,外 ...

  4. python cv2 轮廓的包络 面积_Python + Opencv2 实现轮廓提取,轮廓区域面积计算

    对图像处理时,会遇到这样一个场景:找到图像主体轮廓,这是其一,可能为了凸显轮廓,需要用指定的颜色进行标记:轮廓标记完可能任务还没有结束,还需对轮廓所勾勒的像素面积区域统计计算. 本篇文章的主要内容就是 ...

  5. python科学计算教程视频_Python科学计算与图形渲染库视频教程

    IT猿课(www.ityuanke.com) [it猿课ityuanke.com]Python科学计算与图形渲染库视频教程 「课程学习目录」 第1章:NumPy基础知识 1.NumPy简介 2.搭建N ...

  6. python中符号计算输出数学_Python科学计算与数据处理—符号运算库.doc

    Python 科学计算与数据处理 - 符号运算库 符号运算库目录从示例开始欧拉恒等式球体体积数学表达 式符号数值运算符和函数符号运算表达式转换和简化方程目录微分 方程积分其他函数符号运算库. 它的目标 ...

  7. python 科学计算设计_Python科学计算——Data Structures

    为什么选择Python作为科学计算语言? 有关于Matlab和Python哪个更适合作为科学计算语言的争论已久,之所以选择Python作为首选的科学计算语言,不仅仅是因为它免费,开源,有很多优秀的库和 ...

  8. python科学计算模块有什么_Python科学计算—numpy模块总结(1)

    作为一个本科学数学专业,目前研究非线性物理领域的研究僧.用什么软件进行纯科学计算好,Fortran永远是第一位的:matlab虽然很强大,可以很容易的处理大量的大矩阵,但是求解我们的模型(有时可能是几 ...

  9. python科学计算是什么意思_Python科学计算和数据分析(NumPy详细介绍)

    本文介绍的科学计算.数据分析必备基础知识. 本文全文约2600字,阅读时间约15分钟,请你耐心观看. 本文使用的开发环境是Python3.8,Numpy版本是1.19,本文的例子全部经过验证,你可以直 ...

最新文章

  1. curl linux 数组参数_Linux系统调用原理
  2. C# WPF MVVM模式下在主窗体显示子窗体并获取结果
  3. 通过opencv的函数进行图片修复:cv2.inpaint()
  4. php可以单干吗_拉伸膜包装机适合包装牛肉干吗?
  5. java招生系统项目_基于jsp的招生管理-JavaEE实现招生管理 - java项目源码
  6. C++使用boost::bind 订阅消息中的返回函数传入多个参数
  7. leetcode—19.二叉树遍历相关题目leetcode总结
  8. 爬取中国天气网获取全国城市编码并存入mysql数据库
  9. Can I use 前端兼容性自查工具
  10. mysql distribute by_Mysql与分布式Gaussdb 100语法差异及常见问题汇总
  11. nginx配置不允许访问内容
  12. tomcat启动项目时一直卡住无反应的解决方案
  13. 秦皇岛集训,ACM比赛第一场
  14. Java虚拟机中STW(stop the world)是什么意思
  15. 五年后,产品经理真的会消失么?
  16. 三硬币问题建模及Gibbs采样求解(Python实现)
  17. TCP/IP调试利器 winpcap
  18. 把SD卡格式成ext4格式
  19. Follow me 学习总结
  20. 推特裁员戏剧性反转!“逗比”马斯克哭求被裁员工返回公司上班!

热门文章

  1. 题解报告——Sandy的卡片
  2. 微信公众号账号登录功能实现
  3. 英语六级试卷软件测试,大学英语六级考试预测试卷以及答案
  4. Linux双独立显卡SLI,完美的解决方案:双显卡不需要使用双水冷Tt提供SLi冷却解决方案...
  5. +new Date是什么意思?
  6. H3CNE考试模拟试题
  7. html5 调用本地街景,H5案例分享:在移动端调用腾讯街景
  8. android 日语输入法,Android日语输入法Simeji使用示例
  9. 佳木斯大学计算机专业宿舍,佳木斯大学管理学院宿舍
  10. 论文阅读《Characterizing BDS signal-in-space performance from integrity perspective》3