Matlab PSNR для аудио - PullRequest
       7

Matlab PSNR для аудио

0 голосов
/ 05 января 2019

Я пытался найти PSNR между 2 WAV-файлами. Я скопировал код, но все еще не в порядке

[y1,fs1]=audioread('phon.wav');
[y2,fs2]=audioread('dekrip_phon.wav');
[c1x,c1y]=size(y1);
[c2x,c2y]=size(y2);
%Signal1 = audioread('phon.wav');
%Signal2 = audioread('dekrip_phon.wav');
%RMS1 = rms(Signal1)
%RMS2 = rms(Signal2)
 R=c1x;
 C=c1y;

 err = sum((y1-y2)/(R*C));
 MSE=sqrt(err);
 MAXVAL=65535;
  PSNR = 20*log10(MAXVAL/MSE);

  disp(['mse=' num2str(MSE) ' PSNR=' num2str(PSNR)]);

И я просто получаю это сообщение об ошибке

Matrix dimensions must agree.

Error in PSNRtest (line 12)
 err = sum((y1-y2)/(R*C));

Я пытался звонить, используя whos, и это результат

>> whos y1
  Name            Size               Bytes  Class     Attributes

  y1        1636992x2             26191872  double              

>> whos y2
  Name            Size               Bytes  Class     Attributes

  y2        1432391x2             22918256  double  

Я прочитал другую статью, она должна быть того же размера. Могу ли я изменить размер y2 или y1 и сделать его таким же? Если нет, какой метод я должен использовать, чтобы сравнить 2 звуковых сигнала для шума? Спасибо

...