在音频插件生成pCompiledNumChannels错误
2视图(30天)
显示旧的评论
嗨
我试图使用´crossoverFilter函数作为一个更多的阐述了信号处理插件,但我发现以下错误消息当我试图生成音频插件:
“失败nontunable常数计算值属性“pCompiledNumChannels”。在代码生成,nontunable属性只能分配常量值”。
没有问题,当我运行它通过audioTestBench,但是当我试着编译。
代码很长,但是作为一个例子,我复制相同的基本代码。所以,即使这是没有用的,我认为帮助容易复制错误。
classdef(StrictDefaults) CrossTest < matlab。系统& audioPlugin
%转换插件测试
属性
FCross = 100;
结束
属性(常数,隐藏)
%定义插件接口
PluginInterface = audioPluginInterface (…
“InputChannels”2,…
“OutputChannels”2,…
“PluginName”,“交叉测试”,…
audioPluginParameter (“FCross”,…
“DisplayName的”,截止频率的,…
“映射”,{“int”18000年,20日},…
“风格”,“rotaryknob”))
结束
属性(访问=私人)
xFilt;
NumCrossovers = 1;
高通滤波器;
pSR;
结束
方法
%的构造函数
函数插件= CrossTest
fs = getSampleRate(插件);
plugin.xFilt = crossoverFilter (“SampleRate”fs,“NumCrossovers”,1“CrossoverFrequencies”,100,“CrossoverSlopes”6);
plugin.hpf = dsp.HighpassFilter (“FilterType”,“信息检索”,“PassbandFrequency”,300,“StopbandFrequency”,100,“StopbandAttenuation”,40);% < < - - - Agregado
结束
函数set.FCross(插件,val)
plugin.FCross = val;
plugin.crossdesign;
结束
结束
方法(访问=保护)
% %出
函数= stepImpl(插件,)
infilt = plugin.hpf(的);%滤波器的输入信号
[O1、O2] = plugin.xFilt (infilt);%交叉过滤信号
= O1 + O2;
结束
函数resetImpl(插件)
重置(plugin.xFilt);
结束
结束
方法(访问=私人)
函数crossdesign(插件)
plugin.xFilt.CrossoverFrequencies = plugin.FCross;
结束
结束
结束
我会很感激如果有人给我一个提示如何克服这个问题。
谢谢
巴勃罗
0评论
接受的答案
jibrahim
2020年10月20日
嗨,巴勃罗,
corssover过滤器对象抱怨通道的数目是未知的。这是因为代码生成交叉编译器对输入有不同的二维。
修改调用你的交叉stepImpl:
(O1、O2) = plugin.xFilt (infilt (: 1:2));%交叉过滤信号