在音频插件生成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;
结束
结束
结束
我会很感激如果有人给我一个提示如何克服这个问题。
谢谢
巴勃罗

接受的答案

jibrahim
jibrahim 2020年10月20日
嗨,巴勃罗,
corssover过滤器对象抱怨通道的数目是未知的。这是因为代码生成交叉编译器对输入有不同的二维。
修改调用你的交叉stepImpl:
(O1、O2) = plugin.xFilt (infilt (: 1:2));%交叉过滤信号
3评论
巴勃罗Panitta
巴勃罗Panitta 2020年10月20日
嗨jibrahim
、解释!现在我明白了为什么以前将高通滤波器引起的问题。我´t知道bahaviour的对象,但现在是清楚的!
谢谢!
br
巴勃罗

登录置评。

更多的答案(0)

类别

找到更多的在音频插件创建和托管帮助中心文件交换

s manbetx 845


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!