Using GCCPhat with Matlab Coder Issues - 'xref' not fully defined

1 visualización (últimos 30 días)
Hello,
I am attempting to use the gccphat method with the matlab coder (well actually part of the audioPlugin framework, but that shouldn't make any difference) When the gccphat attempts to run, I get an error that
Line 82 Variable 'xref' is not fully defined on some execution paths.
The documentation for gccphat suggests it is suitable for use with code generation, though does not support variable-size inputs. I don't think I am applying variable size inputs, but would like some clarification as to this point - Does it mean that the number of inputs cannot change? or the length of inputs can't change? Or neither can change. Though, every time the method is called, the full method is run, so what changes would not be acceptable.

Respuesta aceptada

Honglei Chen
Honglei Chen el 18 de Jul. de 2018
Sorry for the late reply. This is a bug. I think the easiest way to fix this is to supply the sampling frequency as the third input, i.e., using the syntax
gccphpat(in(:,1),in(:,2),fs)
If you don't have the sampling frequency, you can just set fs to 1, like
gccphat(in(:,1),in(:,2),1)
since that's the default value used in the function.
HTH and thanks for reporting this.

Más respuestas (2)

Honglei Chen
Honglei Chen el 2 de Jul. de 2018
Could you share your script? In terms of limitation, neither number of inputs nor sizes of inputs can change but your issue doesn't seem to be related to that. Thanks.
  1 comentario
Dave Moffat
Dave Moffat el 11 de Jul. de 2018
Hello,
Thank you for the speedy response.
Here is my MWE
classdef testPlugin < audioPlugin
methods
function out = process(p, in)
[tdoa,corrVal,lag] = gccphat(in(:,1),in(:,2));
out = in;
end
end
end
this gives the error when running
validateAudioPlugin testPlugin
with the following error report
checking plug-in class 'testPlugin'... passed.
Generating testbench file 'testbench_testPlugin.m'... done.
Running testbench... passed.
Generating mex file 'testbench_testPlugin_mex.mexmaci64'... ??? Variable 'xref' is not fully defined on some execution paths.
Error in ==> gccphat Line: 82 Column: 28
Code generation failed: View Error Report
Error using coder.internal.generateAudioPlugin
Many thanks

Iniciar sesión para comentar.


Dave Moffat
Dave Moffat el 3 de Jul. de 2018
Hello,
Thank you for the speedy response.
Here is my MWE
classdef testPlugin < audioPlugin
methods
function out = process(p, in)
[tdoa,corrVal,lag] = gccphat(in(:,1),in(:,2));
out = in;
end
end
end
this gives the error when running
validateAudioPlugin testPlugin
with the following error report
checking plug-in class 'testPlugin'... passed.
Generating testbench file 'testbench_testPlugin.m'... done.
Running testbench... passed.
Generating mex file 'testbench_testPlugin_mex.mexmaci64'... ??? Variable 'xref' is not fully defined on some execution paths.
Error in ==> gccphat Line: 82 Column: 28
Code generation failed: View Error Report
Error using coder.internal.generateAudioPlugin
Many thanks

Categorías

Más información sobre MATLAB Coder en Help Center y File Exchange.

Productos


Versión

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by