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

1 次查看(过去 30 天)
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.

采纳的回答

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

更多回答(2 个)

Honglei Chen
Honglei Chen 2018-7-2
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 个评论
Dave Moffat
Dave Moffat 2018-7-11
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

请先登录,再进行评论。


Dave Moffat
Dave Moffat 2018-7-3
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

类别

Help CenterFile Exchange 中查找有关 Audio Plugin Creation and Hosting 的更多信息

产品


版本

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by