How do I use correlation coefficients with two audio samples?

4 visualizaciones (últimos 30 días)
Taylor Gray
Taylor Gray el 5 de Abr. de 2019
Respondida: Anay el 2 de Jun. de 2025
Hi, I spectrally analysed a machine gun burst sample and used a spectral modelling synthesis model in Max/MSP to procedurally generate it in real-time and now I'm wanting to use correlation to see how close I got. Due to lack of knowledge in MATLAB I'm looking for a little help to gain my metric. I have attached the audio files
A = "Machine_Gun_Burst.wav";
B = "Dry_Synthesized_Machine_Gun_Burst.wav";
R = corrcoef(A,B);
This was my failed attempt and i got the below error message:
Error using corrcoef>getparams (line 296)
Unmatched parameter name/value pair.
Error in corrcoef (line 119)
[alpha,userows] = getparams(varargin{:});

Respuestas (1)

Anay
Anay el 2 de Jun. de 2025
Hi Taylor,
The error occurred because “corrcoef” expects numerical value of the signals and you were passing the filenames as string. “corrcoef” returns a 2x2 matrix which has ones on the diagonal and correlation coefficients on the off-diagonal elements. You can use “audioread” function to load the audio sample into numeric matrices.
% Read audio files
[orig, fs_orig] = audioread('Machine_Gun_Burst.wav');
[synth, fs_synth] = audioread('Dry_Synthesized_Machine_Gun_Burst.wav');
% Compute Pearson correlation coefficient
correlation_matrix = corrcoef(orig, synth);
r = correlation_matrix(1, 2); % Off-diagonal element
You can refer to the documentation to gain more information about “corrcoef” by following the below link:

Categorías

Más información sobre Get Started with Signal Processing Toolbox en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by