Python离散信号卷积的代码实现(时域直接法)

1、卷积

卷积是一种积分变换的数学方法,在许多方面得到了广泛应用。卷积是两个变量在某范围内相乘后求和的结果。如果卷积的变量是离散的数组/数列,则卷积的结果可表达为:

2、时域直接法(列表法)实现卷积

例如:y(n) = x(n) * h(n) 中,将h(n)翻转后,按照公式的顺序,一个一个数进行相乘,叠加,后得出y(n)的值,逐个计算y(n)直到x(i)与h(n-i)再无交集。y(n)的长度满足 len(y) == len(x) + len(h) - 1。时间复杂度为n^2

3、代码实现

def convolution(a,b):c=[]i = 0 #卷积后的列表下标j = 0 #翻转列表下标k = 0 #正序列表下标step = 0 #长度差num = 0 #卷积值b.reverse()while i<=(len(a)+len(b)-1)-1:k = iif i > len(a) - 1:k = len(a) - 1step += 1while j<=min(i, (len(a)-1), (len(b)-1)-step):num += a[k]*b[j+step]j+=1k-=1c.append(num)num = 0j = 0i+=1return c

4、结果对比

与numpy模块的卷积函数(时间复杂度为nlogn)进行结果比较:

import numpy as np
a = [1,2,3,4,5,6,7]
b = [2,4,6,8,10,11,21,31,41]
c = convolution(a,b)
d = np.convolve(a,b)

结果:

[41, 113, 206, 310, 424, 546, 674, 478, 323, 217, 170, 120, 76, 40, 14]
[ 41 113 206 310 424 546 674 478 323 217 170 120  76  40  14]

【数字信号处理】Python离散信号卷积的代码实现/时域直接法/列表法/信号与系统相关推荐

  1. 数字信号处理python代码(陈后金老师书籍第一章)

    数字信号处理方面的python代码太少.鉴于python语言的流行,以及matlab对中国的不友好,准备将数字信号处理(陈后金老师版本)里的matlab代码全部python化. ''' x[k] = ...

  2. 【数字信号处理】离散信号与系统分析

    一.常用的序列 1.单位脉冲序列 单位脉冲序列是指仅仅在某一时刻有一个单位幅度的脉冲响应. 任意序列都可以用单位脉冲序列表示. 2.单位阶跃序列 单位阶跃序列是指从某一时刻起,以后所有的序列都是单位幅 ...

  3. 数字信号处理——Python实现快速傅里叶变换FFT

    文章首发于我的个人博客 1.FFT背景 快速傅里叶变换(FFT)是离散傅里叶变换(DFT)的快速算法,它是根据离散傅里叶的奇.偶.虚.实等特性,在DFT的基础上进行改进获得的.它对傅里叶变换的理论没有 ...

  4. 数字信号处理相关1(卷积(convolution)的几种解释)

    来自:https://blog.csdn.net/bitcarmanlee/article/details/54729807 来自:https://www.zhihu.com/question/222 ...

  5. 数字信号处理|Matlab设计巴特沃斯低通滤波器(冲激响应不变法和双线性变换法)

    一.前言 1. 设计流程 2.系统频率响应 2.1频响图 系统函数 H 是一个复数,其图谱分为:幅度谱.相位谱 幅度谱 x轴:模拟频率f(数字频率w转化来)[单位:赫兹Hz] y轴:|H1|幅度[一般 ...

  6. python饮料购买_python - 饮料机,if elif与列表法

    import time import os o1 = "超火" o2 = "火" o3 = "温" o4 = "凉" o ...

  7. 数字信号处理 --- 用离散傅里叶变换(循环卷积)实现线性卷积(个人学习笔记)

    时域的循环卷积等于频域的离散傅里叶变换,离散傅里叶变换DFT是离散傅里叶级数DFS的一个周期,离散傅里叶级数DFS是对连续时间傅里叶变换CTFT的采样 离散傅里叶级数DFS 周期为10的方波信号的傅里 ...

  8. 数字信号处理python代码(陈后金老师书籍第二章)

    ''' 两种卷积计算方式对比: 1.调用库函数 2.先计算两者的傅里叶变换,再相乘,再求逆变换 '''import matplotlib.pyplot as plt from scipy import ...

  9. python回声程序echo 一行代码_回声状态网络法echo state network代码(简单)

    [实例简介] esn作者在官网的简单版代码,给英文不好的同学拿过来,免得再去找地方下载 [实例截图] [核心代码] ESN_Toolbox └── ESN_Toolbox ├── analogToUn ...

最新文章

  1. Linux上实现ssh免密码登陆远程服务器
  2. 利用css对input[type=file] 样式进行美化,input上传按钮美化
  3. 自己写的一个复杂查询
  4. 获取iOS任意线程调用堆栈(五)完整实现:BSBacktraceLogger
  5. mac打开软件显示没有权限不能打开
  6. 高校学子如何免费上网?
  7. 美啦:从工具到美妆共享经济平台的豹变
  8. python地理处理包——Shapely介绍及用户手册
  9. 人工智能的隐私保护探讨
  10. 如何实现用户id生成一个唯一邀请码
  11. 虚拟机中输入ifconfig不显示ip地址,如何解决
  12. [渝粤教育] 西南科技大学 成本会计 在线考试复习资料
  13. GoWithMi,一个可以买卖地块资源的分布式地图生态
  14. 插件3-滑动验证(geetest)
  15. 关于以w3school为首的那些网址,很迷
  16. 《春夜洛城闻笛 / 春夜洛阳城闻笛》古诗鉴赏
  17. maven离线安装easyexcel要把easyexcel内部依赖的jar包一并导入
  18. 中软国际实训全记录——第三天
  19. 脑壳清痛之---总结thinkphp5 怎么用odbc连接sql2000
  20. Computer Security Principles and Practice-计算机安全原理与实践

热门文章

  1. js垃圾回收机制(Gc)
  2. mysql存储emoji表情方式
  3. Luogu5149会议座位
  4. 百元降噪耳机推荐有哪些品牌?适合学生党使用的降噪蓝牙耳机分享
  5. 简要介绍word文档转换为pdf格式文档的工具
  6. 桌面窗口管理器占用GPU高的解决办法
  7. 2021 牛津大学:Recent Advances in Reinforcement Learning in Finance
  8. (二)textarea中placeholder不显示
  9. Acer宏基笔记本电脑捕食者Predator PH317-55原装出厂Windows10系统恢复原厂OEM系统
  10. 快传号视频批量上传,禁止转载!