汉明窗有什么用?

2024-04-20

我正在使用一些执行傅里叶变换的代码(以计算音频样本的倒谱)。在计算傅里叶变换之前,它会对样本应用汉明窗:

for(int i = 0; i < SEGMENTATION_LENGTH;i++){
    timeDomain[i] = (float) (( 0.53836 - ( 0.46164 * Math.cos( TWOPI * (double)i  / (double)( SEGMENTATION_LENGTH - 1 ) ) ) ) * frameBuffer[i]);
}

它为什么要这样做?我找不到任何理由在代码中或在线执行此操作。


这是一个老问题,但我认为答案可以改进。

想象一下要进行傅里叶变换的信号是纯正弦波。在频域中,您会期望它仅在正弦频率处出现尖锐尖峰。然而,如果你采用傅里叶变换,你漂亮的尖锐尖峰将被这样的东西取代:

这是为什么?真正的正弦波在两个方向上延伸至无穷大。计算机无法对无限数量的数据点进行计算,因此所有信号在两端都会被“切断”。这会导致您看到的峰值两侧出现波纹。汉明窗减少了这种纹波,让您更准确地了解原始信号的频谱。

对于感兴趣的人来说,更多理论是:当您在两端切断信号时,您就隐式地将信号乘以方形窗口。方形窗口的傅立叶变换如上图所示,称为 sinc 函数。每当你在计算机上进行傅里叶变换时,无论你喜欢与否,你总是会选择some窗户。方形窗口是隐式默认值,但不是一个很好的选择。人们已经提出了多种窗口,具体取决于您想要优化的某些特征。汉明窗是标准窗之一。

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

汉明窗有什么用? 的相关文章

  • Postgres 中动态基数的累积添加

    我在 Postgres 中有以下场景 我正在使用9 4 1 我有一个这种格式的表 create table test id serial val numeric not null created timestamp not null def
  • 一维数据中的台阶检测

    Python 中是否有现有的实现来检测一维数据中的步骤 例如 检测此数据中的一个步骤的东西 算法的描述还蛮多的在那里 https www ncbi nlm nih gov pubmed 16799566但我想知道Python中是否存在适合这
  • SQL Server 用最后一个值替换 NULL [重复]

    这个问题在这里已经有答案了 我想找到一种方法用最后一个非 NULL 值替换 NULL 值 我有一张像这样的桌子 Date Cost 2017 01 01 18 6046511 2017 01 03 22 9787234 2017 01 03
  • 如何实现低通滤波器?

    我正在对陀螺仪和加速度计数据进行一些数学运算 我想对结果数据进行低通滤波 那么有人可以发布一些低通滤波器的通用代码吗 一阶 IIR 低通滤波器可以采用以下形式 output value rate input value 1 0 rate p
  • count(distinct) over(按...范围函数分区)

    我想计算不同的yyyydd超过mm 日期 2 天 但是 distinct 函数不能与 over 一起使用 如果我删除不同的 它会给我总计数yyyydd but yyyydd可以有很多重复的 这就是为什么我想添加不同的 这有点类似于count
  • DCF77 解码器与噪声信号

    我几乎完成了我的开源 DCF77 解码器项目 当我注意到标准 Arduino DCF77 库在噪声信号上表现非常差时 这一切就开始了 特别是当天线靠近计算机或洗衣机正在运行时 我永远无法从解码器中获取时间 我的第一个方法是向输入信号添加 数
  • 20hz-20000hz 巴特沃斯滤波爆炸

    我想过滤掉 20 Hz 20000 Hz 之外的所有内容 我正在使用巴特沃斯滤波器 from scipy io import wavfile from scipy import signal import numpy sr x wavfil
  • HSQLDB 中的 PARTITION BY 替代方案

    我想触发中建议的查询https stackoverflow com a 3800572 2968357 https stackoverflow com a 3800572 2968357在 HSQLDB 数据库上使用select such
  • 优化多个分层组的 SUM OVER PARTITION BY

    我有一个如下表 Region Country Manufacturer Brand Period Spend R1 C1 M1 B1 2016 5 R1 C1 M1 B1 2017 10 R1 C1 M1 B1 2017 20 R1 C1
  • “iddata”类型的输入参数未定义函数“minus”

    这是后续我之前遇到的一个问题 https stackoverflow com questions 45688607 我想给信号一个偏移量 然后在其中添加一些延迟并计算 RMSE 但是在求差时我遇到以下问题 我想请教以下问题 我该如何解决上述
  • 如何创建与列相关的大小的 Pyspark 窗口函数

    当我尝试使用 pyspark 中的窗口函数对与列相关的前行数进行累积值时 出现意外错误 重现我遇到的错误的最小工作示例 MWE 如下 from pyspark sql import Window import pandas as pd df
  • 如何使用 scipy 找到最大峰值位置、索引?

    我想找到最大峰值的位置我该怎么做 我正在使用 scipy signal 来查找峰值 我希望代码返回峰值的位置 以微米为单位 如果您想找到由 确定的最高峰值scipy signal find peaks那么你可以执行以下操作 import n
  • Java中的信号处理库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想计算时间序列的功率谱密度 进行一些带通 低通和高通滤波 也许还有其他一些基本的东西 有没有一个不错的开源 Java 库可以做到这一点
  • 找到两个相似波形之间的时间偏移

    我必须比较两个时间与电压波形 由于这些波形源的特殊性 其中一个波形可以是另一个波形的时移版本 怎样才能知道是否有时移 如果是的话 多少钱 我正在 Python 中执行此操作 并希望使用 numpy scipy 库 scipy 提供了一个相关
  • 我可以使用自回归建模进行信号去噪吗?

    如下 我的任务是使用 AR 建模来消除噪声信号中的伪影 假设我有原始数据中的心电图或肌电图 在 IEEE 上 我发现这可以通过小波变换 巴特沃斯滤波器或经验模式分解来实现 https www kaggle com residentmario
  • 窗口函数:last_value(ORDER BY ... ASC) 与 last_value(ORDER BY ... DESC) 相同

    样本数据 CREATE TABLE test id integer session ID integer value integer INSERT INTO test id session ID value VALUES 0 2 100 1
  • 汉明窗有什么用?

    我正在使用一些执行傅里叶变换的代码 以计算音频样本的倒谱 在计算傅里叶变换之前 它会对样本应用汉明窗 for int i 0 i lt SEGMENTATION LENGTH i timeDomain i float 0 53836 0 4
  • 具有动态参数的 Oracle Lag 函数

    我有一个具体的问题 我有一个包含无效值的表 我需要替换无效值 此处0 与之前的值大于0 困难是 使用更新或插入对我来说是不合适的 游标和更新就可以了 我唯一的方法是使用 Select 语句 当我使用lag col1 1 当情况发生时 我只得
  • pyspark:计算窗口上的不同值

    我刚刚尝试做一个countDistinct越过一个窗口并得到这个错误 AnalysisException 不支持不同的窗口函数 计数 不同颜色 1926 有没有办法在 pyspark 的窗口上进行不同的计数 这是一些示例代码 from py
  • 如何使用Matlab提高PSD的分辨率

    我有音频信号 我用 Matlab 读取该信号 并使用 pwelch 获取其 PSD 这是我正在使用的代码 x Fs audioread audioFile wav x x 1 mono xPSD f pwelch x hamming 512

随机推荐

  • 如何通过 PHP 获取字符串形式的 HTML 页面?

    我正在通过 PHP 从网页中获取一些信息simple php dom和卷曲 问题是页面构建不正确 因此 DOM 对象包含错误信息 如何获取 HTML 文件作为 PHP var 中的字符串 以便我可以通过它运行正则表达式 Curl 不起作用
  • 为页面创建新应用程序

    我有一个个人 FB 帐户 从那里我创建了一个新页面来介绍我的博客网站 我在我的网站上下载了一个适用于我的 WordPress 主题的小部件 以便我可以链接两个帐户以进行自动更新 该小部件要求我通过创建新应用程序提供应用程序 ID 和密钥 当
  • FMDB SQLite 问题:查询的行数?

    有谁知道如何在使用 FMDB 时返回查询计数 如果我执行Query select count from sometable were 我会得到一个空的FMResultSet 如何获取查询的行数 我是否需要执行 select from som
  • 使用 XMLHttpRequest 不使用 jQuery 将 JSON 数据发送到 PHP

    我正在尝试使用 XMLHttpRequest 对象从表单发送 JSON 数据 我可以使用以下函数发送数据 FireBug 中没有显示任何错误 并且 FireBug 可以很好地显示请求中的 JSON 数据 但是 我将数据发送到echo php
  • iOS 8 中的嵌套 UICollectionViews、自动布局和旋转

    我开始在一个大型项目中使用 AutoLayout 并对它感到非常惊讶 但是 现在我必须调整项目以适应旋转和尺寸类别 并且我在让视图正确运行方面遇到了很大的麻烦 基本问题是我有UICollectionViews with 再次包含 UICol
  • JS 数组显示的用户个人资料图片不正确 - 如何解决此问题?

    抱歉 这篇文章很长 但我不确定如果没有所有代码 问题是否会出现 我正在使用 parse com 和 JavaScript SDK 下面的代码是我的用户个人资料页面的一部分 它在屏幕上向他们显示他们的个人资料图片并允许他们更改它 更改个人资料
  • WatiN UnauthorizedAccessException 错误

    使用 NUnit 和 WatiN 运行任何测试时 我收到 UnauthorizedAccessException 错误 Test Test IndexTests Can Do failed WatiN Core Exceptions Ele
  • 禁用/启用 div 中的所有元素[重复]

    这个问题在这里已经有答案了 如何快速禁用 启用任何 div 中的所有元素 输入 链接和 jQ 按钮 链接没有 禁用 属性 因此您必须更加努力 my div find input prop disabled true my div a cli
  • 在 SQL-CLR 触发器或存储过程中创建套接字

    我在 SQL Server 2008 中有一个 SQL CLR 触发器 它向套接字服务器发送消息 它工作正常 但我需要 TCP 客户端保持与其通信的服务器的连接 为了做到这一点 我必须创建一些保持活动状态的线程 因此 我创建了一个线程 将消
  • 在 Puppeteer 中连接浏览器

    是否可以将浏览器连接到 puppeteer 而无需在 puppeteer 中实例化它 例如 像普通用户一样运行 chromium 实例 然后将其连接到代码中的 puppeteer 实例 答案是 是 和 否 您可以使用以下方式连接到现有的co
  • 选中复选框并存储在数组中 javascript

    任何人都可以告诉我如何检查并将复选框选中的值添加到数组中 单击时获取选中的值并将其存储在 JavaScript 中的数组中 这是我的代码 function ajax city var xmlhttp try xmlhttp new XMLH
  • jQuery 动画数字计数器从零到值

    我创建了一个脚本来将数字从零动画化到它的值 Working jQuery Counter 0 animate Counter Single text duration 1000 easing swing step function Sing
  • 如何禁用 EditText 中的 SwiftKey(第三方键盘)行为?

    我在 Android 应用程序中使用标准的 EditText 控件 此 EditText 的输入只能从应用程序的内置键盘插入 When SwiftKey 第三方键盘应用程序 安装在设备上 它会导致奇怪的行为 例如光标跳动 并在某些文本下方添
  • Windows 自动化 telnet

    我想运行一组通常在 telnet 中运行的命令 来自 c 例如我想运行以下命令 using System using System Diagnostics namespace InteractWithConsoleApp class Pro
  • 隐藏在ios 9中的附件栏

    嗨有人可以帮我吗 我想在 ios 9 中隐藏键盘上的附件栏 它的工作发现直到 ios 8 但在 ios 9 我无法隐藏附件栏我厌倦了这段代码但它不工作 for UIView possibleFormView in keyboardWindo
  • 外部 API 的 CORS 问题 - 通过 PostMan 工作,但不能使用 Axios 进行 HTTP 请求 [重复]

    这个问题在这里已经有答案了 正在开发一个涉及汽车数据的新 Laravel 项目 并找到了一个免费的查找 API http www carqueryapi com documentation api usage 一个示例端点是 https w
  • 发送和接收短信以验证手机号码

    我正在尝试在不使用第三方的情况下进行手机号码验证 为此 我的逻辑是这样的 用户输入带有国家 地区代码的手机号码 当他们点击验证按钮时 意图将使用随机唯一 ID 向用户定义的手机号码发送一条短信 之后应用程序广播将等待 2 分钟 当它收到短信
  • Android 中的 Javascript“document.cookie”?

    我需要帮助如何正确使用 javascript 文档 cookie 或者 如何在 Android 网络浏览器中从 javascript 编写 cookie 我已确保在设置中启用了 cookie 当我检查时 通过使用 navigator coo
  • 是否可以在不使用 WMI 的情况下获取网络适配器的 PnPDeviceId?

    我一直在尝试使用 p invoke setupapi 调用获取给定网络适配器的 PnPDeviceId 但没有成功 我不情愿地决定使用 WMI 如下所示 public static string GetPnpDeviceId string
  • 汉明窗有什么用?

    我正在使用一些执行傅里叶变换的代码 以计算音频样本的倒谱 在计算傅里叶变换之前 它会对样本应用汉明窗 for int i 0 i lt SEGMENTATION LENGTH i timeDomain i float 0 53836 0 4