数字信号处理python代码(陈后金老师书籍第一章)
数字信号处理方面的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代码(陈后金老师书籍第一章)相关推荐
- 数字信号处理python代码(陈后金老师书籍第二章)
''' 两种卷积计算方式对比: 1.调用库函数 2.先计算两者的傅里叶变换,再相乘,再求逆变换 '''import matplotlib.pyplot as plt from scipy import ...
- 信号与系统陈后金matlab,陈后金信号与系统matlab实验4.pdf
陈后金信号与系统matlab实验4 第五章非周期信号的频域分析 作者卢未来 日期 年 月 日 : :2012 5 10 5.6非周期信号的频域分析的MATLAB实现 5-19(174 ) 例 页 试用 ...
- 信号与系统陈后金matlab,信号与系统(陈后金)_MATLAB.ppt
信号与系统(陈后金)_MATLAB 信号与系统 Signals and Systems 利用MATLAB进行信号与系统分析 MATLAB简介 信号的MATLAB表示 利用MATLAB进行系统的时域分析 ...
- 信号与系统陈后金matlab,陈后金信号与系统matlab实验7.pdf
陈后金信号与系统matlab实验7 第八章 离散时间信号与系统的 域分析 z 作者卢未来 日期 年 月 日 : :2012 5 10 8.5利用MATLAB进行离散系统的z域分析 8.5.1部分分式展 ...
- Python入门到精通【精品】第一章 - Python概述
Python入门到精通[精品]第一章 - Python概述 1. Python语言历史 2. Python语言特点 3. Python的下载和安装 3.1. Python的下载 3.2. Python ...
- 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第一章 配置python环境
黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第一章 配置python环境 文章目录 黑帽python第二版(Black Hat Python 2nd ...
- 数字信号处理——Python实现快速傅里叶变换FFT
文章首发于我的个人博客 1.FFT背景 快速傅里叶变换(FFT)是离散傅里叶变换(DFT)的快速算法,它是根据离散傅里叶的奇.偶.虚.实等特性,在DFT的基础上进行改进获得的.它对傅里叶变换的理论没有 ...
- python代码运行后怎么保存_1.11Python下保存并执行程序
Posted by 撒得一地 on 2015年11月19日 in python教程 国外稳定加速器推荐 vypr | Nord 交互式解释器是Python的强项之一,如果想知道某些语句如何使用,就可以 ...
- python代码函数字符查询宝典书籍_Django基础五之django模型层(一)单表操作
二 单表操作 一.创建表 创建模型 创建名为book的app,在book下的models.py中创建模型: from django.db importmodels#Create your models ...
最新文章
- 用法与区别_指示代词this, that, these, those的区别和用法
- 物联网通信协议全解析
- 02-导航实例-storyboard实现
- uboot中IDE移植
- 深度学习:Neural Network Layers Understanding
- jquery找祖先包含_Jquery的parent和parents(找到某一特定的祖先元素)
- BeetleX轻松搭建HTTP和Weboskcet网关
- Fiddler无所不能——之测试开发攻城狮必备神器
- mysql ping 长连接超时时间_mysql_ping与mysql长连接(部分摘录) | 学步园
- 如何用思维导图快速理解PMBOK-PMP第六版教材
- 最全Pycharm教程(5)——Python快捷键相关设置
- 机器学习——专业名词
- html chm用浏览器打开,解决chm文件无法使用浏览器打开的问题
- Surface Go1 与Surface Go2的不同 (非专业对比)
- 黄冈市2021高考成绩查询系统,黄冈师范学院
- 一封学生来信:突破大学的迷茫
- 不要让Microsoft edge 打开IE浏览器的设置(兼容性问题)
- 使用uiautomator2获取Android抖音直播间评论数据
- 推荐5个好玩且有趣的 Python 实战脚本
- 查看话单日志和性能日志有效信息的流程