频率 音调 对应表 FFT频谱分析原理
| Frequency in hertz (semitones above or below middle C) | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Octave→ Note↓ |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| C | 16.352 (−48) | 32.703 (−36) | 65.406 (−24) | 130.81 (−12) | 261.63 (0) | 523.25 (+12) | 1046.5 (+24) | 2093.0 (+36) | 4186.0 (+48) | 8372.0 (+60) |
| C♯/D♭ | 17.324 (−47) | 34.648 (−35) | 69.296 (−23) | 138.59 (−11) | 277.18 (+1) | 554.37 (+13) | 1108.7 (+25) | 2217.5 (+37) | 4434.9 (+49) | 8869.8 (+61) |
| D | 18.354 (−46) | 36.708 (−34) | 73.416 (−22) | 146.83 (−10) | 293.66 (+2) | 587.33 (+14) | 1174.7 (+26) | 2349.3 (+38) | 4698.6 (+50) | 9397.3 (+62) |
| D♯/E♭ | 19.445 (−45) | 38.891 (−33) | 77.782 (−21) | 155.56 (−9) | 311.13 (+3) | 622.25 (+15) | 1244.5 (+27) | 2489.0 (+39) | 4978.0 (+51) | 9956.1 (+63) |
| E | 20.602 (−44) | 41.203 (−32) | 82.407 (−20) | 164.81 (−8) | 329.63 (+4) | 659.26 (+16) | 1318.5 (+28) | 2637.0 (+40) | 5274.0 (+52) | 10548 (+64) |
| F | 21.827 (−43) | 43.654 (−31) | 87.307 (−19) | 174.61 (−7) | 349.23 (+5) | 698.46 (+17) | 1396.9 (+29) | 2793.8 (+41) | 5587.7 (+53) | 11175 (+65) |
| F♯/G♭ | 23.125 (−42) | 46.249 (−30) | 92.499 (−18) | 185.00 (−6) | 369.99 (+6) | 739.99 (+18) | 1480.0 (+30) | 2960.0 (+42) | 5919.9 (+54) | 11840 (+66) |
| G | 24.500 (−41) | 48.999 (−29) | 97.999 (−17) | 196.00 (−5) | 392.00 (+7) | 783.99 (+19) | 1568.0 (+31) | 3136.0 (+43) | 6271.9 (+55) | 12544 (+67) |
| G♯/A♭ | 25.957 (−40) | 51.913 (−28) | 103.83 (−16) | 207.65 (−4) | 415.30 (+8) | 830.61 (+20) | 1661.2 (+32) | 3322.4 (+44) | 6644.9 (+56) | 13290 (+68) |
| A | 27.500 (−39) | 55.000 (−27) | 110.00 (−15) | 220.00 (−3) | 440.00 (+9) | 880.00 (+21) | 1760.0 (+33) | 3520.0 (+45) | 7040.0 (+57) | 14080 (+69) |
| A♯/B♭ | 29.135 (−38) | 58.270 (−26) | 116.54 (−14) | 233.08 (−2) | 466.16 (+10) | 932.33 (+22) | 1864.7 (+34) | 3729.3 (+46) | 7458.6 (+58) | 14917 (+70) |
| B | 30.868 (−37) | 61.735 (−25) | 123.47 (−13) | 246.94 (−1) | 493.88 (+11) | 987.77 (+23) | 1975.5 (+35) | 3951.1 (+47) | 7902.1 (+59) | 15804 (+71) |
FFT频谱分析原理
采样定理:采样频率要大于信号频率的两倍。
N个采样点经过FFT变换后得到N个点的以复数形式记录的FFT结果。
假设采样频率为Fs,采样点数为N。那么FFT运算的结果就是N个复数(或N个点),每一个复数就对应着一个频率值以及该频率信号的幅值和相位。第一个点对应的频率为0Hz(即直流分量),最后一个点N的下一个点对应采样频率Fs。其中任意一个采样点n所代表的信号频率:
Fn=(n-1)*Fs/N。
这表明,频谱分析得到的信号频率最大为(N-1)*Fs/N,对频率的分辨能力是Fs/N。采样频率和采样时间制约着通过FFT运算能分析得到的信号频率上限,同时也限定了分析得到的信号频率的分辨率。
每一个复数的模值对应该点所对应的频率值的幅度特性,具体的定量关系如下:
假设信号由以下周期的原始信号叠加而成:
Y = A1 + A2 Cos (2*PI*ω2*t + φ2 * PI/180) + A3 Cos (2*PI*ω3*t + φ3 * PI/180)
那么,在经过FFT分析后得到的第一个点的模值是A1的N倍,而且只有在FFT结果点对应的频率在ω2,ω3时,其模值才明显放大,在其他频率点,模值接近于0。在这些模值明显放大的点中,除第一个点之外的其它点模值是相应信号幅值的N/2倍。
每个复数的相位就是在该频率值下信号的相位:φ2,φ3。
FFT结果有对称性,通常我们只是用前半部分的结果,也就是小于采样频率一半的结果。同时也只有采样频率一半以内、具有一定幅值的信号频率才是真正的信号频率。
Python实践FFT频谱分析
假如信号S是有1个直流信号和4个周期信号叠加而成,如下公式所列(t为自变量,pi为圆周率值)现要对其进行FFT分析并绘制频谱图。
S = 2.0 + 3.0 * cos(2.0 * pi * 50 * t - pi * 30/180)
+ 1.5 * cos(2.0 * pi * 75 * t + pi * 90/180)
+ 1.0 * cos(2.0 * pi * 150 * t + pi * 120/180)
+ 2.0 * cos(2.0 * pi * 220 * t + pi * 30/180)
我们先使用Python绘制其1秒内的波形图:
import numpy as np
import pylab as pl
import math
# 采样步长
t = [x/1048.0 for x in range(1048)]
# 设计的采样值
y = [2.0 + 3.0 * math.cos(2.0 * math.pi * 50 * t0 - math.pi * 30/180)
+ 1.5 * math.cos(2.0 * math.pi * 75 * t0 + math.pi * 90/180)
+ 1.0 * math.cos(2.0 * math.pi * 150 * t0 + math.pi * 120/180)
+ 2.0 * math.cos(2.0 * math.pi * 220 * t0 + math.pi * 30/180)
for t0 in t ]
pl.plot(t,y)
pl.show()
频率 音调 对应表 FFT频谱分析原理的更多相关文章
- SPSS-多重响应-频率和交叉表案例分析(问卷调查分析)
在10.1休假前,希望跟大家讨论一下SPSS-多重响应--频率和交叉表分析,希望大家能够多提点提点 在云南电信网上营业厅做了一个关于“客户不使用电信3g业务的原因有哪些的问卷调查,问题所示: 这份问卷 ...
- oracle 索引聚簇表的工作原理
作者:Richard-Lui 一:首先介绍一下索引聚簇表的工作原理:(先创建簇,再在簇里创建索引,创建表时指定列的簇类型) 聚簇是指:如果一组表有一些共同的列,则将这样一组表存储在相同的数据库块中:聚 ...
- Activiti工作流学习笔记(三)——自动生成28张数据库表的底层原理分析
原创/朱季谦 我接触工作流引擎Activiti已有两年之久,但一直都只限于熟悉其各类API的使用,对底层的实现,则存在较大的盲区. Activiti这个开源框架在设计上,其实存在不少值得学习和思考的地 ...
- SQL的多表查询(笛卡尔积原理)
感谢大佬:https://blog.csdn.net/yang5726685/article/details/53538438 MySQL的多表查询(笛卡尔积原理) 先确定数据要用到哪些表. 将多个表 ...
- spring实体类(POJO)参数的赋值(form表单)原理
10.实体类(POJO)参数的赋值(form表单)原理 10.1.原理解析 测试用例 准备好两个实体类 public class Person { private String name; priva ...
- loj #6247. 九个太阳 k次单位根 神仙构造 FFT求和原理
LINK:九个太阳 不可做系列. 构造比较神仙. 考虑FFT的求和原理有 \(\frac{1}{k}\sum_{j=0}^{k-1}(w_k^j)^n=[k|n]\) 带入这道题的式子. 有\(\su ...
- SSDT表函数Hook原理
其实 SSDT Hook 的原理是很简单的,我们可以知道在 SSDT 这个数组中呢,保存了系统服务的地址,比如对于 Ring0 下的 NtQuerySystemInformation 这个系统服务的地 ...
- MySQL的多表查询(笛卡尔积原理)
先确定数据要用到哪些表. 将多个表先通过笛卡尔积变成一个表. 然后去除不符合逻辑的数据(根据两个表的关系去掉). 最后当做是一个虚拟表一样来加上条件即可. 注意:列名最好使用表别名来区别. 笛卡尔积 ...
- thinkphp 隐藏表单验证原理
function savetoken() //创建session('hash') ,然后在魔板中表单中加入隐藏域 getsession('hash'),提交表单验证值是否一样,如果一样验证通过,同时重 ...
- HBase表的架构原理
HBase总体架构图 Hbase Table的基本单位是Region,一个Table相应多个Region.Table层级关系例如以下: Table (HBase table) Re ...
随机推荐
- java注释、变量、数据类型和运算符
注释 单行注释:// 多行注释:/*开头,*/结尾 JavaDoc注释:/**开头,*/结尾 快捷键:ctrl + ? 变量 第一步:声明变量.即根据数据类型在内存分配空间. 第二步:赋值.即将数据的 ...
- eclipse工具使用
eclipse下载 官网下载:https://www.eclipse.org/downloads/packages/ 打开后,找到Eclipse IDE for Java Developers点击进入 ...
- vulntarget-c-wp
vulntarget-c 信息收集 扫开的端口有web服务 访问了web页面,发现用的是laravel框架 搜索一下历史漏洞,在gayhub上找到这个可以用,能够执行简单命令 python3 expl ...
- MySQL 基础(四)锁
解决并发事务带来的问题 写-写情况 任意一种事务隔离级别都不允许 "脏写" 的发生,因为这样会使得数据混乱.所以,当多个未提交的事务相继对一条记录进行改动时,就需要使得这些事务串行 ...
- 【K8S系列】快速初始化⼀个最⼩集群
序言 走得最慢的人,只要不丧失目标,也比漫无目的地徘徊的人走得快. 文章标记颜色说明: 黄色:重要标题 红色:用来标记结论 绿色:用来标记一级重要 蓝色:用来标记二级重要 希望这篇文章能让你不仅有一定 ...
- 11、层叠布局(Stack、Align、 Positioned)
Flutter Stack组件 Stack表示堆的意思,我们可以用Stack或者Stack结合Align或者Stack结合 Positiond来实现页面的定位 布局 Alignment(对齐)类是用 ...
- RabbitMQ系列:windows、centos和docker下环境安装和使用
一.Windows环境下安装 1.erlang下载:https://www.erlang-solutions.com/resources/download.html 或者:https://www.er ...
- Cassandra Gossip协议的二三事儿
摘要:Gossip协议是Cassandra维护各节点状态的一个重要组件,下面我们以Gossip协议三次握手为线索逐步分析Gossip协议源码. Gossip协议是Cassandra维护各节点状态的一个 ...
- 一文带你 GNN 从入门到起飞,做一个饭盆最稳 GNN 饭人!
摘要:本文介绍了图神经网络在学界和业界的发展情况,并给出了图神经网络的基本概念与表示形式,总结了图神经网络的变体,最后介绍了华为云图神经网络框架. 本文分享自华为云社区<干饭人,干饭魂,搞懂图神 ...
- 养殖场新来了个“AI管家”
摘要:定制化算法+端侧一键部署,打通AI全流程. 本文分享自华为云社区<[云享·伙伴]第4期:养殖场新来了个"AI管家">,作者: 华为云社区精选. 民以食为天.肉类是 ...