内插指的是增加数字信号采样率的方法。
步骤:

  1. 插入零值样本(即在所需要插值的地方插入0)
  2. 低通滤波器滤波
    –来自:理查德G.莱昂斯, D.李・富盖尔, RichardG.Lyons,等. 数字信号处理精要[M]. 机械工业出版社, 2016.

但是我发现这种方法会导致信号的幅值改变。n倍内插相当于把幅值缩小了n倍。所以应该加入第3个步骤:n倍内插在滤波之后信号的幅值乘n。

import numpy as np
import math
import scipy.signal as signal
import pylab as pl
import matplotlib.pyplot as pltsampling_rate=1000 # 采样率设置为1000Hz,内插之前的采样率为333Hz
t1=np.arange(0, 1.0, 1.0/sampling_rate) # 时间长度为1s
x1=np.sin(15.4*np.pi*t1)*8.9+np.sin(31*np.pi*t1)*35.9+np.sin(56*np.pi*t1)*29.3
plt.figure(figsize=(16,4))
plt.plot(t1,x1)
plt.plot(t1,x1, '*')
plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.legend()
plt.show()

# x2 为内插之前的数据
t2=t1[::3]
x2=x1[::3]
plt.figure(figsize=(16,4))
plt.plot(t2,x2,"*")
plt.plot(t2,x2)
plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.legend()
plt.show()

# x3 为零值内插修改后的数字信号
x3=x1.copy()
x3[1::3]=0;
x3[2::3]=0;
plt.figure(figsize=(16,4))
plt.plot(t1,x3,"*")
plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.legend()
plt.show()

# 放大局部信号
plt.figure(figsize=(16,4))
plt.plot(t1,x3,"*")
plt.xlim(0,0.1)
plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.legend()
plt.show()

# 滤波器设置
b,a=signal.iirdesign(0.08, 0.1, 1, 40)
# x4 为低通滤波器滤波之后的数字信号
x4 = signal.filtfilt(b, a, x3)
plt.figure(figsize=(16,4))
plt.plot(t1,x4)
plt.plot(t1,x4,"*")
plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.legend()
plt.show()

# 蓝色为理论信号,红色为经过插值前两步之后的信号
plt.figure(figsize=(16,4))
plt.plot(t1,x1)
plt.plot(t1,x4,'r--')
plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.legend()
plt.show()


可见滤波之后的信号幅值很大程度上被改变了。

# 蓝色为理论信号,红色为插值之后的信号
plt.figure(figsize=(16,4))
plt.plot(t1,x1)
plt.plot(t1,3*x4,'r--')
plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.legend()
plt.show()


结论:
信号的零值内插方法需要经过三个步骤:

  1. 插入零值样本(即在所需要插值的地方插入0)
  2. 低通滤波器滤波
  3. 针对 n 倍内插每个信号值扩大 n 倍

数字信号内插方法的python实现相关推荐

  1. matlab信号内插,基于VC++和Matlab的数字信号内插处理系统

    0引言目前,利用并行交替式(Parallalinterleaving)技术,超高速数字化示波器的实时采样速率已突破了10Gsa/s.按照Nyquist定理,这种系统的实时带宽可接近5GHz.在数字化示 ...

  2. python任意输入一个正整数、判断该数是否为素数_Python编程判断一个正整数是否为素数的方法,python素数...

    Python编程判断一个正整数是否为素数的方法,python素数 本文实例讲述了Python编程判断一个正整数是否为素数的方法.分享给大家供大家参考,具体如下: import string impor ...

  3. 复合数值积分方法以及Python程序实现

    ■ 前言 在 Composite Numerical Integration 中给出了三种复合数值积分方法它们分别是: Newton-Cotes Formulas 01三种方法的公式及其Python程 ...

  4. 用Alpha生成Trimp图的方法(python)

    用Alpha生成Trimp图的方法(python) 文章目录: 一.Alpha图生成Trump图(方法一) 二. 一.Alpha图生成Trump图(方法一) __Author__ = 'Shliang ...

  5. python 取反_自从用了这招pandas 空数据处理方法,python编程速度提升了不少

    今天为大家带来的内容是:自从用了这招pandas 空数据处理方法,python编程速度提升了不少 文章内容主要介绍了pandas 空数据处理方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工 ...

  6. Python:pmml格式文件的简介、安装、使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略

    Python:pmml格式文件的简介.安装.使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略 目录 pmml格式文件的简介 1.PMML结构 pmml安装 pmm ...

  7. python的变量名有哪些_【python字符串做变量名的方法有哪些?这些方法对python应用很重要】- 环球网校...

    [摘要]python的功能都是建立在代码之上的,不过你知道python字符串做变量名的方法有哪些?这些方法对python应用很重要,如果你想学好python,那么本文内容一定要自己试试,毕竟实践出真知 ...

  8. 笨方法“学习python笔记之urlopen

    最近在学习"笨方法"学python中,在习题41中发现了urlopen()函数,特意查了下官方资料,查资料最好查官方资料,最好不要做"百度君".urlopen( ...

  9. 笨方法“学习python笔记之字典

    列表是线性存储,且可以随机访问,且是有序的,其访问可以通过索引来访问.而字典是另外一种存储数据,可以通过建立键和值的映射关系,就和查字典差不多,通过键就可以查找到相对应的值 字典创建 字典创建过程中每 ...

最新文章

  1. R语言中if else、which、%in%的用法
  2. IBM的医疗AI为何失败
  3. 融资2.75亿美元的老牌AR公司,倒了
  4. 使用CInternetSession和CHttpFile提取网页源码
  5. 为什么-1的补码是全1(11111111)?-128的补码是10000000?
  6. ITK:注册IO工厂RegisterIOFactories
  7. 猴子选大王c语言课程设计,【C/C++】猴子选大王
  8. 第8步 第2剑客 mybatis plugin 第三剑客 page helper csdn每天最多发多少文章 是20篇,刚刚才试了。2014
  9. Sublime Text 3插件安装方法
  10. 快速锁屏电脑快捷键_电脑小技巧
  11. [转载] 【Python-Numpy】numpy.random.randint用法
  12. Java学生管理系统-增删改查
  13. dojo实现省份地市级联报错(二)
  14. 数字图像处理课程设计-疲劳检测系统
  15. matlab模拟小球碰撞,在MATLAB中实现模拟小球上抛和反弹运动
  16. 数字金额转中文大写金额 - 数字大写转换
  17. 一位仁兄对于项目管理的精辟见解
  18. 27岁研究生毕业年龄大吗?
  19. springcloud中feign调用的权限认证
  20. wating for network configuration unity恢复

热门文章

  1. 苹果发布黄色版 iPhone 14,定价 5999 元起;大神李沐被曝离职投身大模型创业;Atlassian 裁员 |极客头条...
  2. 小萌新开始做题啦!----------相交链表
  3. tweepy抓取Twitter数据
  4. 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备...
  5. W ndows7蓝屏0x00000024,Win7蓝屏代码0x00000024修复方法
  6. excel表格拆分多个表如何操作
  7. python需要cpu还是显卡问题_买新电脑是cpu重要还是显卡重要?该怎么选择?
  8. 设计师常用的素材网站有哪个推荐
  9. “如果不是生活所迫,谁又愿意拿青春赌明天呢”一位年新30w测试工程师的自白
  10. 【Java习题程序】将int整数转化为int数组,不用转String。