FFT 的窗口大小与数据长度

2024-04-19

我正在尝试对流音频数据进行快速频谱分析以捕获元音(类似于 JLip-sync)。使用 PyAudio 在短时间内(0.0625 秒)捕获小块 (1024) 的语音数据。使用 numpy.fft 进行分析,并使用 numpy.hanning 窗口消除泄漏。我使用 4096*4 作为采样率(不是 44100 或 22050,也可以讨论;4096*4 最接近 22050)。

考虑到我感兴趣的频率(范围从 300 Hz 到 3000Hz),如何使用我正在寻找的数据长度和最小/最大频率来计算理想的窗口大小?

Thanks.

Kadir


@Kadir:

在使用离散傅里叶变换(DFT 或 FFT)处理数据之前对其进行加窗的目的是最大限度地减少频谱泄漏,这种情况在您尝试对非循环数据进行傅里叶变换时会发生。

窗口化的工作原理是在序列的开始和结束时强制数据平滑为零,但不是之前。缩短窗口会不必要地破坏信息。

因此,您的窗口长度应该与样本序列的长度相匹配。例如,对于 1024 个样本,窗口长度应为 1024。

如果您要解析的最高频率是 3 KHz,请在不同的采样率下使用 8192 个样本或更多样本,例如 16384 或 32768 个样本。

另外,尝试不同的FFT算法、不同的样本长度和不同的窗口,包括Hann(汉宁),还有其他旁瓣衰减更好的窗口,例如Blackman-Harris系列和Kaiser-Bessel系列等。

如果您的应用存在噪声,您可能必须在更好的噪声抑制窗口和更高的光谱分辨率窗口之间进行选择。因此,尝试不同的窗口是个好主意,这样您就可以找到最适合您的应用程序的窗口。

现在,写下每个设置的结果(即每个窗口、样本长度、采样率等),并寻找在多个设置中一致的结果。您将了解更多有关您的数据的信息,并且很可能找到问题的答案。

您可以使用 Matlab 来完成此操作:http://www.mathworks.com/help/techdoc/ref/fft.html http://www.mathworks.com/help/techdoc/ref/fft.html

或者使用此在线 FFT 频谱分析仪:http://www.sooeet.com/math/fft.php http://www.sooeet.com/math/fft.php

并且不要忘记在这里发布您的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FFT 的窗口大小与数据长度 的相关文章

  • 声音在模拟器中工作,而不是在真实 iPhone 中工作

    有几短音效播放的样本在模拟器中很好 但在真正的 iPhone 中根本不行3GS 以下是 Apple SysSound 示例中的代码 CFBundleRef mb CFBundleGetMainBundle CFURLRef soundFil
  • 拖动调整大小手柄时多次触发调整大小事件

    我希望这个 jQuery 插件能够工作 但它没有 http andowebsit es blog noteslog com post how to fix the resize event in ie http andowebsit es
  • 如何使用 iPhone SDK 加快或减慢背景音乐曲目的速度?

    是否有一种简单的方法来控制使用音频队列服务播放的声音文件循环的播放速度 节奏 例如 如果游戏正在播放背景音乐 我想让BGM随着时间的流逝而加快 但不改变音乐的音调 谢谢 据我所知 没有什么简单的方法可以做到这一点 在 Mac 上 您可能会使
  • Selenium Web 驱动程序如何知道新窗口何时打开,然后恢复执行

    我在使用 Selenium Web 驱动程序自动化 Web 应用程序时遇到问题 该网页有一个按钮 单击该按钮会打开一个新窗口 当我使用以下代码时 它会抛出OpenQA Selenium NoSuchWindowException No wi
  • 如何在不使用 Cocos2D 的情况下将声音实现到现有应用程序中

    例如 iOS SDK下载页面上有示例代码 我正在使用计算器应用程序 iPhoneUnitTests 我想知道是否可以轻松地向已构建的应用程序上的按钮添加声音 播放短声音 例如按钮声音 实际上非常简单 这是一个简单的例子 您必须链接 Audi
  • 如何使页面上的所有内容变大?

    如果我在浏览器中打开我的网站并按Ctrl 有几次 一切都变得更大 网站对我来说看起来更好 我可以通过在 HTML 代码中添加一些内容来实现相同的效果吗 以便用户默认看到更大的所有内容 而无需按Ctrl 我想让所有东西都变大 文本和图像 如果
  • 需要在状态改变时关闭MediaRecorder播放的声音

    我已尝试在下面的链接中找到的更改 但没有效果 如何在状态改变时关闭 MediaRecorder 播放的声音 https stackoverflow com questions 6804205 how to shut off the soun
  • Android并计算给定字体和字体大小的单行字符串的大小?

    是否有一种 API 方法可以计算以给定字体和字体大小显示在一行上的字符串的大小 即宽度和高度 Paint p new Paint p setTypeface TypeFace obj if custom font use TypeFace
  • 有哪些 API 可在 Windows 中使用 C# 配置扬声器设置?

    我环顾了很多不同的地方 但似乎找不到一个简单的方法来做到这一点 我在 Windows 7 中有多个声卡 并使用 HDMI 将声音输出到我的 AVR 放大器 我遇到的问题是 当放大器关闭时 它会导致窗口丢失扬声器配置 所以我想做的是编写一个小
  • 在Java中一个接一个地播放WAV文件

    我正在尝试玩几个WAV http en wikipedia org wiki WAV文件一个接一个 我尝试了这个方法 for String file audioFiles new AePlayWave file start 但这会同时播放它
  • 有没有办法用 Tkinter 创建透明窗口?

    最终 我尝试使用 Tkinter 模块用 Python 创建 奇怪形状的窗口 但现在我会满足于能够使背景透明 同时保持子部件完全可见 我知道这是使用 wxPython 和其他一些模块完成的 但我想了解 Tkinter 的限制 Tkinter
  • 如何在Android中设置音频均衡器

    我正在制作一个媒体播放器 其中需要使用 搜索栏 将均衡器效果设置为 低音 可怕 摇滚 流行 中 我得到了一个链接 其中使用了一些 NDK 库来执行此操作 是否有任何 Java 库可以执行此操作 请解释执行此操作的逻辑是什么 Override
  • 如何在声音输入时触发振动?

    我正在尝试创建一个 Android 应用程序 在其中过滤蜂鸣声的一个特定频率并使手机振动 我正在从移动设备的 MIC 获取输入并使用 MediaRecorder 类 通过使用该类 我可以录制 保存和播放输入 现在我需要我的手机在发出蜂鸣声
  • 如何查找页面上R图形的字节大小?

    我想监控 R 在各个页面上生成的图形的基本质量 例如每个页面的字节大小 我现在只能对平均页面进行质量保证 请参阅下面的章节 我认为这项任务必须有一些比一般措施更内置的东西 生成 4 页的代码Rplots pdf我想知道此处输出中每个页面的字
  • 音乐分析软件[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 问候 我可能已经想到了这一点 但有人知道 Last fm 之前是否使用某种形式的开源项目对音乐进行分析
  • 我在 android 上使用 java 时遇到异常 (java.lang.NoClassDefFoundError),为什么?

    这是我运行的线路 AudioInputStream clip1 AudioSystem getAudioInputStream new File wavFile1 这是我得到的异常 来自 LogCat 错误 AndroidRuntime 3
  • PlaySystemSound 静音开关打开

    我知道 我必须设置AudioSession到 播放 类别 即使静音开关打开也允许播放音频 这就是我所做的 但打开开关时声音仍然静音 UInt32 sessionCategory kAudioSessionCategory MediaPlay
  • 如何使 Edittext 大小保持不变?安卓

    我知道使 Edittext 左侧的文本 消失 以保持单行的属性 singleLine true 但我的问题是 当我在显示视图之前填充编辑文本时 在这种情况下 我的编辑文本都超出了屏幕 有任何想法吗 谢谢 这是填充空的 Edittext 时得
  • 如何在Python中获取声音级别?

    对于我正在进行的项目 我需要获取麦克风的实时分贝级别 我见过阴谋家 Print out realtime audio volume as ascii bars import sounddevice as sd import numpy as
  • C# 音频库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 如何在 Vue.js 插槽范围内传递方法

    我在 vuejs 中使用插槽范围 效果很好 我可以将任何我想要的东西传递到插槽中 如下所示
  • pandas中groupby后按条件计数

    df pd DataFrame id 1 1 1 2 2 2 item 200 200 201 333 333 334 page 1 1 2 3 2 2 我想像这样将 df 转换为 df1 df pd DataFrame id 1 1 2
  • Solaris 9 上的 grep 命令

    我在 Solaris 9 上遇到 grep 命令的奇怪行为 例如 我有一个包含两行的主机文件 1 1 1 1 主机 1 2 3 4 主机 MY 我想 grep 仅包含主机字符串的行 而不是包含主机 MY 的其他行 我用 grep Fxq 主
  • iOS 4 通常向后兼容吗?

    我有以下问题 在不久的将来我需要为iPhone编写一些不是很复杂的应用程序 我目前没有 iPhone 因此我计划购买一部用于测试目的 简而言之 iPhone 4 是否允许我测试为旧版 iOS 版本编写的应用程序 有什么陷阱吗 或者我是否必须
  • 按日期过滤 Pandas 数据框

    我有一个带有 日期 列的 Pandas DataFrame 现在我需要过滤掉 DataFrame 中日期在未来两个月之外的所有行 本质上 我只需要保留接下来两个月内的行 实现这一目标的最佳方法是什么 If 日期列是索引 然后使用 loc 进
  • 与您的操作系统或架构不兼容:[电子邮件受保护]

    我使用的是 Ubuntu 15 04 运行以下命令时 npm install fsevents 我收到以下错误 npm WARN optional Skipping failed optional dependency chokidar f
  • NT 事件日志单条消息大小

    谁能告诉我 Windows NT 日志消息的最大大小是多少 我知道可以将事件日志的最大日志大小从 32 MB 重置 我对 NT 事件日志中单个消息可以保存的内存感兴趣 提前致谢 在 Windows Server 2008 中 单个事件日志条
  • JavaFX 过渡动画等待

    这么快 我正在做一个演示计算机图形绘制方法的程序 我需要创建时间线或操作历史记录 例如 placeVertex x y moveVertex newX newY 等 并迭代 向前和向后 自动或手动 我已经通过使用命令设计模式实现了这一点 但
  • WordPress 动态自定义菜单未显示正确的结果

    我正在创建一个动态自定义菜单 显示特定类别的所有帖子链接 例如侧边栏中的菜单小部件 它应该是动态的 这意味着每当我在该类别中发布帖子时 菜单都应该包含我发布的帖子 而无需我在菜单中物理拖放新帖子 这是我的代码 我想要的帖子的类别 ID 4
  • 在Virtualenv环境中安装python-numpy

    我想在 Virtualenv 环境中安装 python numpy 我的系统是Ubuntu 12 04 我的python是2 7 5 首先我安装了 Virtualenv sudo apt get install python virtual
  • 如何只获取Python函数的返回值?

    我正在尝试通过 Python 学习编程 我想知道是否可以只获取函数的返回值而不获取其其他部分 这是代码 比方说 这是主要功能 variable a 5 while variable a gt 0 input user raw input i
  • 如何解决 pandas 读取大 csv 文件时的内存问题

    我有一个 100GB 的 csv 文件 其中有数百万行 我需要在 pandas 数据框中一次读取 10 000 行 并将其分块写入 SQL 服务器 我按照建议使用了 chunksize 以及 iteartorhttp pandas docs
  • 使用 SQL Server AdoJobStore 配置 Quartz.NET

    我在尝试让 Quartz NET 与 AdoJobStore 一起使用时遇到问题 这里的其他问题似乎都没有遇到我遇到的问题 我能够在没有 AdoJobStore 配置的情况下正常工作 但希望最终保留所有内容 但是在尝试时出现错误GetSch
  • Spring Batch ItemReader 列表仅处理一次

    我正在尝试使用创建 Spring Batch 作业ListItemReader
  • 替换 & 为 &

    我正在尝试使用 W3C 验证系统进行验证 但出现错误 第 59 行 第 47 列 字符 是分隔符的第一个字符 但作为数据出现 我知道原因是 您使用了未转义的与号 这在某些情况下可能有效 但建议使用 amp 这始终是安全的 在表格中 我是这样
  • jQuery Tokeninput:只读不起作用

    我正在使用在以下位置找到的插件http loopj com jquery tokeninput http loopj com jquery tokeninput 在创建具有 Web 应用程序管理员访问权限的用户列表的字段中 搜索 添加和删除
  • Stop-Service Cmdlet 无法打开存在的服务

    我正在尝试编写一个 PowerShell 脚本来停止本地计算机上的服务 当我运行 get service cmdlet 时 它按预期工作 当我使用 stop service cmdlet 时 出现错误 指出不存在具有我指定名称的服务 如果这
  • 如何将文件的内容与列最后一个数字的增量连接起来

    我有一个包含一些内容的文件 需要重复第 n 次并添加最后一列号的增量 Input content of a file TCTA 7 ccta TCTA 1 TCTA 8 ccta TCTA 1 TCTA 9 ccta TCTA 1 TCTA
  • 如何为命令 net user 在列表中返回的每个用户运行批处理文件?

    我的目标是制作一个通用代码 循环遍历计算机中的所有用户帐户名称并将输出发送到批处理文件 net user 命令输出用户列表 但我想将每个用户名分配给一个参数 所以我应该使用for f命令去做 这可能看起来很简单 但请记住用户名可能在任何位置
  • FFT 的窗口大小与数据长度

    我正在尝试对流音频数据进行快速频谱分析以捕获元音 类似于 JLip sync 使用 PyAudio 在短时间内 0 0625 秒 捕获小块 1024 的语音数据 使用 numpy fft 进行分析 并使用 numpy hanning 窗口消