0. 一维序列卷积

  • np.convolve,注意 same/valid参数下(默认为 full),序列卷积出的结果的长度:

    >> np.convolve([1, 2, 3], [0, 1, 0.5])
    array([ 0. , 1. , 2.5, 4. , 1.5])
    >> np.convolve([1, 2, 3],[0, 1, 0.5], 'same')
    array([ 1. , 2.5, 4. ])
    >> np.convolve([1, 2, 3],[0, 1, 0.5], 'valid')
    array([2.5])

1. numpy 傅里叶变换

  • np.fft.fft:Y = np.fft.fft(y, 512)
  • 能量谱(表明各个频率分量的能量大小):Pyy = Y * np.conj(Y) / 512

2. 傅里叶频谱分析

从MATLAB帮助文档里扒下来的例子之——傅里叶变换用于频谱分析

傅里叶变换的一大用途是从混杂的时域信号中找出其中各频率成分的分布。

以一个由 50Hz、120Hz 两个频率正弦信号和随机噪声叠加得到的信号为例(采样频率 1000Hz):

import numpy as np
import matplotlib.pyplot as plt t = np.arange(0, .6, .001)
# 0.001 => 采样频率
x = np.sin(2*np.pi*50*t) + np.sin(2*np.pi*120*t)
y = x + 2*np.random.randn(t.size) # plt.plot(t[:50], y[:50])
# plt.show() Y = np.fft.fft(y, 512)
Pyy = Y * np.conj(Y) / 512
plt.plot(np.round(1000*np.arange(256)/512), Pyy[:256])
plt.show()

Python 傅里叶分析的更多相关文章

  1. 利用Python通过频谱分析和KNN完成iphone拨号的语音识别

    最近这段时间,学校里的事情实在太多了,从七月下旬一直到八月底实验室里基本天天十二点或者通宵,实在是没有精力和时间来写博客.这周老师出国开会,也算有了一个短暂的休息机会,刚好写点有意思的东西. 上周在天 ...

  2. Python下opencv使用笔记(十)(图像频域滤波与傅里叶变换)

    前面以前介绍过空间域滤波,空间域滤波就是用各种模板直接与图像进行卷积运算,实现对图像的处理,这个方案直接对图像空间操作,操作简单.所以也是空间域滤波. 频域滤波说究竟终于可能是和空间域滤波实现相同的功 ...

  3. python做傅里叶变换

    傅里叶变换(fft) 法国科学家傅里叶提出,任何一条周期曲线,无论多么跳跃或不规则,都能表示成一组光滑正弦曲线叠加之和.傅里叶变换即是把一条不规则的曲线拆解成一组光滑正弦曲线的过程. 傅里叶变换的目的 ...

  4. 傅里叶变换通俗解释及快速傅里叶变换的python实现

    通俗理解傅里叶变换,先看这篇文章傅里叶变换的通俗理解! 接下来便是使用python进行傅里叶FFT-频谱分析: 一.一些关键概念的引入 1.离散傅里叶变换(DFT) 离散傅里叶变换(discrete ...

  5. Python下opencv使用笔记(图像频域滤波与傅里叶变换)

    Python下opencv使用笔记(图像频域滤波与傅里叶变换) 转载一只程序喵 最后发布于2018-04-06 19:07:26 阅读数 1654  收藏 展开 本文转载自  https://blog ...

  6. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  7. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  8. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  9. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

随机推荐

  1. 凌华AMP-204C卡的CNC功能 即Feeder工具的使用。

    Feeder  可以实现一些CNC之类的功能. 不过目前似乎只有两个轴的联动

  2. mysql key index区别

    看似有差不多的作用,加了Key的表与建立了Index的表,都可以进行快速的数据查询.他们之间的区别在于处于不同的层面上. Key即键值,是关系模型理论中的一部份,比如有主键(Primary Key), ...

  3. HTML5游戏开发系列教程10(译)

    原文地址:http://www.script-tutorials.com/html5-game-development-lesson-10/ 最后我们将继续使用canvas来进行HTML5游戏开发系列 ...

  4. docker——核心实现技术

    作为一种容器虚拟化技术,Docker深度应用了操作系统的多项底层支持技术. 早期版本的Docker是基于已经成熟的Linux Container(LXC)技术实现的.自从0.9版本起,Docker逐渐 ...

  5. chrome 关闭安全模式

    chrome.exe --disable-web-security --user-data-dir

  6. SQLServer cast()函数

    语法: CAST (expression AS data_type) 参数说明: expression:任何有效的SQLServer表达式. AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS ...

  7. springcloud9----feign-client-without-hystrix

    package com.itmuch.cloud; import org.springframework.boot.SpringApplication; import org.springframew ...

  8. Android查缺补漏(IPC篇)-- 进程间通讯之AIDL详解

    本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8436529.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ...

  9. Mysql在InnoDB引擎下索引失效行级锁变表锁案例

    先做好准备,创建InnoDB引擎数据表,并添加了相应的索引 DROP TABLE IF EXISTS `innodb_lock`; CREATE TABLE `innodb_lock` ( `a` ) ...

  10. HDU 3065 病毒侵袭持续中(AC自动机)题解

    题意:要你找到主串中每个模式串的个数. 思路:题目都没说是多组数据,结果没while(~)直接WA了,和上一题差不多,可以用map或者开个数组储存.指针要记得回收内存,不然MLE. #include& ...