2014-04-08 4 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

그것을 훌륭하게 일을. 고마워. –

관련 문제