如何从wav文件中获取时域中的频率
How can i get frequency in time domain from a wav file?
换句话说,我正在尝试播放.wav文件,为此我需要知道频率和持续时间;我使用的API有一个方法,需要一个带有两个字段(频率和时间)的向量作为参数!
我试着使用快速傅立叶变换,但它给了我频率和幅度!
mag
/\||-|------>频率
但我需要这样的东西:freq/\||-|------>时间
我想知道是否可以从wav文件中获得这些信息!
数字音频信号是一系列成对的信号(幅度、时间)。或者你可以说这是时间的函数。如果你取一个音频信号序列,并对这个序列执行傅立叶变换(DFT/FFT),你会得到一个新的序列,它包含成对的(幅度、频率)。或者你可以说是频率的函数。
该序列描述了信号在频域中的特性。它根本不包含任何时间信息。
我想,你想要的是一个函数,它描述音频信号的频率分量随时间的变化。这不能通过简单的FFT来实现。
你能做的是:
- 取音频数据流的N个样本,样本(0,…,N-1)
- 执行FFT
- 取音频数据流的另外N个样本,(m,…,m+N-1),其中m<lt;N
- 执行FFT
- 取音频数据流的另外N个样本,(2m,…,2m+N-1)
- 执行FFT
- 等等
如果采样时间为ts,则在T=m*ts之后将获得新的频率分析。
也许,这就是你想要的。
相关文章:
- 有没有一种方法可以在编译时获得作用域类名
- 数组长度,为什么从命令行获取时不能使用它?
- 插入或删除时获取usb的dos_name
- 使用递归时获取变量的奇怪值
- 有没有办法在从编译器获取参数时避免预处理器宏?
- 获取 QInputEvent 在 Qt 4.8 中被放入 QEventLoop 队列时的时间戳
- 在构造函数中输入对象时C++类成员作用域
- 是否有必要获取锁并在不需要唤醒线程时通知condition_variable?
- 每次使用带有LOCK_EX标志的LOCK_NB时,相同的程序/进程都会获取锁
- 获取 clang++:错误:在编译文件系统库的代码时
- 当映射包含字符串向量作为值时,从值中获取键的有效方法
- 在 Linux 中使用 ioctl() 获取隐藏功能报告时,零字节消失
- 为什么从文件获取图标时应用程序有时会崩溃?
- 在时域中应用一种滤波时出错
- 如何获取特定域用户的访问令牌?
- 使用指向成员的指针时,如何通过作用域解析运算符获取类成员的地址
- 如何从wav文件中获取时域中的频率
- MFCC中的时域信号
- 如何获取位域成员的大小
- 如何获取有关域 .NET C++的信息