flowers_mo 2024-10-06 16:01 采纳率: 11.1%
浏览 14

对matlab中内置函数求MFCC的不理解

img

在matlab中有一个内置函数是designAuditoryFilterBank,图中所示对梅尔倒谱系数的计算中,对信号进行了短时傅里叶变化(就是进行了分帧加窗和DFT)后,只是取了其中的模,就与梅尔滤波器相乘。
我在其他网上看见是取其中的模再对其求平方,得到功率再与梅尔滤波器相乘。我想问下为什么?

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-10-06 16:02
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据您提供的信息,似乎您在使用MFCC(Mel Frequency Cepstral Coefficients)特征提取时遇到了差异。然而,您提供的图1和图2内容看起来非常相似,仅仅是一些数字序列,而没有具体描述您自己编写的MFCC代码和调用MATLAB内置函数MFCC的具体情境。因此,很难确定出现差异的确切原因。

    一般来说,MFCC特征提取的差异可能由以下几个因素引起:

    1. 输入数据差异:确保您自己编写的代码和调用内置函数的输入数据是相同的。任何细微的差异(如数据格式、预处理步骤等)都可能导致结果不同。
    2. 算法实现差异:您自己编写的MFCC提取代码和MATLAB内置函数的实现可能存在差异。这包括算法参数、计算步骤、近似方法等。即使算法的基本思想相同,具体的实现细节也可能导致结果不同。
    3. 数值计算误差:在进行数值计算时,例如进行傅里叶变换、滤波器操作等,由于计算机的内部表示和运算精度,可能会导致一些微小的计算误差。

    为了找出差异的原因,您可以尝试以下步骤:

    1. 检查输入数据:确保您自己编写的代码和调用内置函数的输入数据完全一致。
    2. 检查算法实现:仔细比较您自己编写的代码和MATLAB内置函数的实现,查看是否存在明显的差异。
    3. 逐步调试:逐步检查您的代码,确保每一步的计算结果都与预期相符。
    4. 简化问题:尝试使用简单的示例数据来提取MFCC特征,并逐步增加复杂性,以查看在哪个步骤出现了问题。

    如果您能提供更多的信息,例如您自己编写的MFCC代码和调用MATLAB内置函数的具体代码片段,以及详细的输入数据和预期输出,我可能能够提供更具体的帮助。

    评论

报告相同问题?

问题事件

  • 修改了问题 10月6日
  • 创建了问题 10月6日