首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法确定此表达式的大小

无法确定此表达式的大小
EN

Stack Overflow用户
提问于 2010-05-11 15:17:05
回答 1查看 999关注 0票数 0

我最近开始使用MATLAB Simulink,我的问题是我不能实现AMDF函数,因为simulink编译器不能确定长度。

Simulink错误:

|-------------------------------------

无法确定此表达式的大小。

函数'Embedded MATLAB Function2‘(#38.728.741),第33行,第32列:"1:flength-k+1“

分析嵌入式MATLAB函数'Embedded MATLAB Function2‘时出错(#38)

嵌入式MATLAB接口错误:解析嵌入式MATLAB函数“Embedded MATLAB Function2”时出错(#38)。

|-------------------------------------

我的代码:

|-------------------------------------

代码语言:javascript
复制
function [voiced,minAMDF] = bnrDisAMDF(frame,fs,lvlThr,fspan)<br>
<br>
persistent sLength<br>
persistent fLength<br>
persistent amdf<br>

% Length of the frame<br>
flength = length(frame);<br>

% Pitch period is between 2.5 ms and 19.5 ms for LPC-10 algorithm<br>
% This because this algorithm assumes the frequencyspan is 50 and 400 Hz
pH = ceil((1/min(fspan))*fs);<br>
if(pH > flength)<br>
    pH = flength;<br>
end;<br>
<br>
pL = ceil((1/max(fspan))*fs);<br>
if(pL <= 0 || pL >= flength)<br>
    pL = 0;<br>
end;<br>
<br>
sLength = pH - pL;<br>
<br>
% Normalize the frame<br>
frame = frame/max(max(abs(frame)));<br>
<br>
% Allocating memory for the calculation of the amdf<br>
%amdf = zeros(1,sLength); %%%%%%%%<br>
amdf = 0;<br>
<br>
% Calculating the AMDF with unbiased normalizing<br>
for k = (pL+1):pH<br>
    amdf(k-pL) = sum(abs(frame(1:flength-k+1) - frame(k:flength)))/(flength-k+1);<br>
end;<br>
<br>
% Output of the AMDF<br>
if(min(amdf) < lvlThr)<br>
    voiced = 1;<br>
else<br>
    voiced = 0;<br>
end;<br>
<br>
% Output of the minimum of the amdf<br>
minAMDF = min(amdf);<br>

|--------------------------------------

帮助

亲切的问候

Søren

EN

回答 1

Stack Overflow用户

发布于 2011-04-07 17:16:04

代码语言:javascript
复制
waveFile='sunday.wav';
[y, fs, nbits]=wavread(waveFile);
index1=9000;
frameSize=512;
index2=index1+frameSize-1;
frame=y(index1:index2);
maxShift=length(frame);
plotOpt=1;
method=2;
frame2amdf(frame, maxShift, method, plotOpt);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2808730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档