使用python实现离散时间傅里叶变换
以下内容引用链接:https://blog.csdn.net/baidu_37352210/article/details/79596633
(注意:通过如下内容可知,将序列信号进行傅里叶变换后,得到的频谱图上各k值(1~N/2)对应的振幅,观察主要振幅,并得到其信号主要分量的周期N/k)

# 离散时间傅里叶变换的python实现
import numpy as np
import math
import pylab as pl
import scipy.signal as signal
import matplotlib.pyplot as plt
sampling_rate=1000
t1=np.arange(0, 10.0, 1.0/sampling_rate)
x1 =np.sin(15*np.pi*t1)
# 傅里叶变换
def fft1(xx):
#     t=np.arange(0, s)
    t=np.linspace(0, 1.0, len(xx))
    f = np.arange(len(xx)/2+1, dtype=complex)
    for index in range(len(f)):
        f[index]=complex(np.sum(np.cos(2*np.pi*index*t)*xx), -np.sum(np.sin(2*np.pi*index*t)*xx))
    return f
# len(x1)
xf=fft1(x1)/len(x1)
freqs = np.linspace(0, sampling_rate/2, len(x1)/2+1)
plt.figure(figsize=(16,4))
plt.plot(freqs,2*np.abs(xf),'r--')
plt.xlabel("Frequency(Hz)")
plt.ylabel("Amplitude($m$)")
plt.title("Amplitude-Frequency curve")
plt.show()
plt.figure(figsize=(16,4))
plt.plot(freqs,2*np.abs(xf),'r--')
plt.xlabel("Frequency(Hz)")
plt.ylabel("Amplitude($m$)")
plt.title("Amplitude-Frequency curve")
plt.xlim(0,20)
plt.show()
此处实现的是传统的傅里叶变换,这种方法实际已经不用了,现在使用快速傅里叶变换,其实两种是等价的,但是快速傅里叶变换时间复杂度要小很多。
使用python实现离散时间傅里叶变换的更多相关文章
- 基于python的快速傅里叶变换FFT(二)
		基于python的快速傅里叶变换FFT(二)本文在上一篇博客的基础上进一步探究正弦函数及其FFT变换. 知识点 FFT变换,其实就是快速离散傅里叶变换,傅立叶变换是数字信号处理领域一种很重要的算法. ... 
- 灰度图像--频域滤波 傅里叶变换之离散时间傅里叶变换(DTFT)
		学习DIP第22天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不 ... 
- 跟我学Python图像处理丨傅里叶变换之高通滤波和低通滤波
		摘要:本文讲解基于傅里叶变换的高通滤波和低通滤波. 本文分享自华为云社区<[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波>,作者:eastmount . 一.高通滤波 傅 ... 
- 短时傅里叶变换(Short Time Fourier Transform)原理及 Python 实现
		原理 短时傅里叶变换(Short Time Fourier Transform, STFT) 是一个用于语音信号处理的通用工具.它定义了一个非常有用的时间和频率分布类, 其指定了任意信号随时间和频率变 ... 
- 数字信号处理--Z变换,傅里叶变换,拉普拉斯变换
		傅立叶变换.拉普拉斯变换.Z变换最全攻略 作者:时间:2015-07-19来源:网络 傅立叶变换.拉普拉斯变换.Z变换的联系?他们的本质和区别是什么?为什么要进行这些变换.研究的都是什么? ... 
- 【转】傅里叶变换 拉普拉斯变 z变换 DFT DCT意义
		傅里叶变换在物理学.数论.组合数学.信号处理.概率论.统计学.密码学.声学.光学.海洋学.结构动力学等领域都有着广泛的应用(例如在信号处理中,傅里叶变换的典型用途是将信号分解成幅值分量和频率分量). ... 
- 信号处理——傅里叶变换(FT-DTFT-DFT)
		作者:桂. 时间:2017-01-17 23:41:13 链接:http://www.cnblogs.com/xingshansi/articles/6294111.html 声明:转载请注明出处, ... 
- 傅里叶变换 - Fourier Transform
		傅里叶级数 傅里叶在他的专著<热的解析理论>中提出,任何一个周期函数都可以表示为若干个正弦函数的和,即: \[f(t)=a_0+\sum_{n=1}^{\infty}(a_ncos(n\o ... 
- 灰度图像--频域滤波 傅里叶变换之连续信号傅里叶变换(FT)
		学习DIP第20天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不 ... 
随机推荐
- 利用Xshell5从本机上向Linux(虚拟机中)上传文件
			Xmanager Enterprise 5云盘分享: http://pan.baidu.com/s/1jIkiQNW 1. 用ifconfig命令查看Linux的IP地址 2. 由于没有IP,所以我 ... 
- bugku 求getshell
			要修改三个地方 根据大佬们的writeup,要修改三个地方: 1.扩展名filename 2.filename下面一行的Content-Type:image/jpeg 3.最最最重要的是请求头里的Co ... 
- Spring - 周边设施 - H2 embedded 版本引入
			1. 概述 在 Spring 开发中, 引入 H2 做辅助测试数据库 2. 场景 复习 Spring, 复习到 持久化 部分 需要一个 数据库 来做测试 方案 方案1: 搭建 MySQL 实例 虽然现 ... 
- Could not initialize class net.sourceforge.tess4j.TessAPI 解决方法
			java.lang.NoClassDefFoundError: Could not initialize classnet.sourceforge.tess4j.TessAPI 主要原因是在Windo ... 
- 图片上传至/target/upload目录下后,通过ip:port/upload/无法访问
			做以下配置即可 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { try { registry ... 
- VS Code的git的使用方法
			上一篇文章中记录了vscode中git的配置过程VS Code中配置git 这篇文章中记录下vscode中git的简单使用 vscode不是一个IDE没有新建工程的方法 我一般是在本地中新建一个工程文 ... 
- thinkphp 3.2链接Oracle数据库,查询数据
			ennnn,换工作了,开始用新的东西了,最近就是调用nc接口,数据库是Oracle,首先先把数据查出来,这个比较简单. 在网上看的其他的方法都是改数据库配置文件,然后需要修改tp核心的一个类文件,比较 ... 
- 【PAT甲级】1092 To Buy or Not to Buy (20 分)
			题意: 输入两行字符串,如果第二行字符串包含于第一行字符串,输出"Yes"以及第一行字符串减去第二行字符串剩余的字符个数,否则输出"No"以及第二行字符串中不在 ... 
- 【CSS属性#2】
			" 目录 一.盒子模型 二.外边距 margin 三.内填充 padding 四.浮动 float 五.清除浮动 clear 六.溢出 overflow 七.定位 position 1. 无 ... 
- jQuery中$("input")与$(":input")的区别
			$("input")表示获取页面所有的input元素 $(":input")选取表单中所有的input,select 和 button元素 
