2014-04-08 131 views
0

我想了解我的項目中音頻文件的MSE和PSNR的值。到目前爲止,我寫的代碼如下:matlab中音頻信號的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 

,但我如下收到錯誤:

矩陣的

尺寸被連接起來並不一致。

我在做什麼錯?

回答

3

您需要總和誤差平方以計算MSE - 變化:

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

到:

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

它的工作奇妙。非常感謝。 –