【问题标题】:Calculating MSE of audio MATLAB计算音频 MATLAB 的 MSE
【发布时间】:2023-03-17 03:24:02
【问题描述】:

我正在尝试在 MATLAB 中计算某些音频文件的 MSE。我的代码如下所示。

[y1,fs1]=audioread('one.mp3');
[y2,fs2]=audioread('two.mp3');
[c1x,c1y]=size(y1);
[c2x,c2y]=size(y1);

 R=c1x;
 C=c1y;
err = sum((y1-y2).^2)/(R*C);
MSE=sqrt(err);

问题是,当计算 MSE 时,我得到一个 1 x 2 矩阵,而我需要一个值。

我做错了什么?

【问题讨论】:

  • 每个音频通道(左/右)一个?

标签: matlab mse


【解决方案1】:

您的代码可能会为每个音频通道返回一个值。如果您有两个通道,它将返回两个值,如果您有三个通道,它将返回三个值,等等。

更重要的是:

看起来您使用(R*C) 将总和归一化为通道数。 平方根 (sqrt) 也是 unnecessary for MSE。 (你已经找到了y1 的大小两次)。

也许将它用于 MSE:

MSE = mean( (y1 - y2).^2 );

现在它将根据行数找到平均值并自动除以该大小。 :)

编辑:

如果你想要单独的平方误差:

err_sq = (y1 - y2).^2;
MSE = mean( err_sq );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多