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

1 visualizzazione (ultimi 30 giorni)
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.

Risposta accettata

Honglei Chen
Honglei Chen il 18 Lug 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.

Più risposte (2)

Honglei Chen
Honglei Chen il 2 Lug 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 Commento
Dave Moffat
Dave Moffat il 11 Lug 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

Accedi per commentare.


Dave Moffat
Dave Moffat il 3 Lug 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

Categorie

Scopri di più su Audio Plugin Creation and Hosting in Help Center e File Exchange

Prodotti


Release

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by