【问题标题】:PSNR for audio signal in matlabmatlab中音频信号的PSNR
【发布时间】:2014-04-08 11:40:14
【问题描述】:

我正在尝试找出我项目中音频文件的 MSE 和 PSNR 值。目前我写的代码如下:

[y1,fs1, nbits1,opts1]=wavread('one.wav');
[y2,fs2, nbits2,opts2]=wavread('newOne.wav');
[c1x,c1y]=size(y1);
[c2x,c2y]=size(y1);
if c1x ~= c2x
    disp('dimeonsions do not agree');
 else
 R=c1x;
 C=c1y;
 err = (((y1-y2).^2)/(R*C));
 MSE=sqrt(err);
 MAXVAL=65535;
  PSNR = 20*log10(MAXVAL/MSE); 
  disp(['mse=' num2str(MSE) ' PSNR=' num2str(PSNR)]);
end

但我收到如下错误:

被连接的矩阵的维度不一致。

我做错了什么??

【问题讨论】:

    标签: matlab signal-processing


    【解决方案1】:

    您需要求和平方误差以计算 MSE - 更改:

    err = (((y1-y2).^2)/(R*C));
    

    到:

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

    【讨论】:

      猜你喜欢
      • 2012-11-05
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      相关资源
      最近更新 更多