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

'''
x[k] = K*a^k*u[k]
'''import matplotlib.pyplot as pltimport numpy as npa = float(input("a="))
K = float(input("K="))
N = float(input("N="))k = range(0,int(N),1)x = []
for i in range(len(k)):tmp = K*np.power(a,k[i])x.append(tmp)
plt.stem(k,x)
plt.xlabel("Time")
plt.ylabel("Amplitude")
plt.show()

'''
计算两个序列的卷积
'''
import matplotlib.pyplot as pltimport math
import numpy as npx = [-0.5, 0, 0.5, 1]
kx = [-1,0,1,2]
h = [1,1,1]
kh = [-2,-1,0]y = np.convolve(x,h)k = []
for i in range(kx[0]+kh[0],kx[-1]+kh[-1]+1):k.append(i)plt.stem(k,y)
plt.xlabel("k")
plt.ylabel("y")
plt.show()


'''
计算两个序列的相关
'''import matplotlib.pyplot as pltimport math
import numpy as npx = [-0.5, 0, 0.5, 1]
kx = [0,1,2,3]
h = [1,1,1,1]
kh = [0,1,2,3]y = np.correlate(x,h,"full")k = []
for i in range(kx[0]-kh[-1],kx[-1]-kh[0]+1):k.append(i)plt.stem(k,y)
plt.xlabel("k")
plt.ylabel("y")
plt.show()


'''
利用M个点的滑动平均去噪
'''import matplotlib.pyplot as plt
from scipy.signal import lfilterimport math
import random
import numpy as npN = 201
n = []
x = []
s = []
k = []
for i in range(N):n.append(1.0*random.random())k.append(i)for i in range(N):s.append(2*k[i]*np.power(0.9,k[i]) +  2*np.cos(0.02*np.pi*k[i]) + 5)x.append(s[i] + n[i])label = ['n[k]', 's[k]', 'x[k]']
plt.subplot(2,1,1)
plt.plot(k, n, "k-", k, s, "b--", k, x, "m-")
plt.xlabel("Time index k")
plt.legend(label)M = 5
b = np.ones(5)/M
print(b)
a = [1]
y = lfilter(b,a,x)
plt.subplot(2,1,2)
label = ['s[k]', 'y[k]']
plt.plot(k, s, "b-",k,y,"r-")
plt.xlabel("Time index k")
plt.legend(label)
plt.show()

数字信号处理python代码(陈后金老师书籍第一章)相关推荐

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

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

  2. 信号与系统陈后金matlab,陈后金信号与系统matlab实验4.pdf

    陈后金信号与系统matlab实验4 第五章非周期信号的频域分析 作者卢未来 日期 年 月 日 : :2012 5 10 5.6非周期信号的频域分析的MATLAB实现 5-19(174 ) 例 页 试用 ...

  3. 信号与系统陈后金matlab,信号与系统(陈后金)_MATLAB.ppt

    信号与系统(陈后金)_MATLAB 信号与系统 Signals and Systems 利用MATLAB进行信号与系统分析 MATLAB简介 信号的MATLAB表示 利用MATLAB进行系统的时域分析 ...

  4. 信号与系统陈后金matlab,陈后金信号与系统matlab实验7.pdf

    陈后金信号与系统matlab实验7 第八章 离散时间信号与系统的 域分析 z 作者卢未来 日期 年 月 日 : :2012 5 10 8.5利用MATLAB进行离散系统的z域分析 8.5.1部分分式展 ...

  5. Python入门到精通【精品】第一章 - Python概述

    Python入门到精通[精品]第一章 - Python概述 1. Python语言历史 2. Python语言特点 3. Python的下载和安装 3.1. Python的下载 3.2. Python ...

  6. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第一章 配置python环境

    黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第一章 配置python环境 文章目录 黑帽python第二版(Black Hat Python 2nd ...

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

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

  8. python代码运行后怎么保存_1.11Python下保存并执行程序

    Posted by 撒得一地 on 2015年11月19日 in python教程 国外稳定加速器推荐 vypr | Nord 交互式解释器是Python的强项之一,如果想知道某些语句如何使用,就可以 ...

  9. python代码函数字符查询宝典书籍_Django基础五之django模型层(一)单表操作

    二 单表操作 一.创建表 创建模型 创建名为book的app,在book下的models.py中创建模型: from django.db importmodels#Create your models ...

最新文章

  1. 用法与区别_指示代词this, that, these, those的区别和用法
  2. 物联网通信协议全解析
  3. 02-导航实例-storyboard实现
  4. uboot中IDE移植
  5. 深度学习:Neural Network Layers Understanding
  6. jquery找祖先包含_Jquery的parent和parents(找到某一特定的祖先元素)
  7. BeetleX轻松搭建HTTP和Weboskcet网关
  8. Fiddler无所不能——之测试开发攻城狮必备神器
  9. mysql ping 长连接超时时间_mysql_ping与mysql长连接(部分摘录) | 学步园
  10. 如何用思维导图快速理解PMBOK-PMP第六版教材
  11. 最全Pycharm教程(5)——Python快捷键相关设置
  12. 机器学习——专业名词
  13. html chm用浏览器打开,解决chm文件无法使用浏览器打开的问题
  14. Surface Go1 与Surface Go2的不同 (非专业对比)
  15. 黄冈市2021高考成绩查询系统,黄冈师范学院
  16. 一封学生来信:突破大学的迷茫
  17. 不要让Microsoft edge 打开IE浏览器的设置(兼容性问题)
  18. 使用uiautomator2获取Android抖音直播间评论数据
  19. 推荐5个好玩且有趣的 Python 实战脚本
  20. 查看话单日志和性能日志有效信息的流程

热门文章

  1. 旋流式沉砂池计算_沉砂池计算
  2. linux 开发实施工程师_招聘级linux实施工程师 - 力聘网
  3. 量化分析(8)——唐安奇通道
  4. radmin服务器自动关闭,Radmin服务端保持连接不断问题分析与解决
  5. c语言程序学生籍贯信息记录,C语言程序设计学生籍贯信息记录簿
  6. 高考测试分数软件,高考分数查询软件
  7. 高铁检测试验软件,京沪高铁试验检测项目
  8. Windows如何定制键盘按键
  9. python中global什么意思_python中的global关键字的使用方法
  10. @Configuration 使用