MATLAB:errorn in butter()命令
我编写了以下函数:MATLAB:errorn in butter()命令,matlab,error-handling,Matlab,Error Handling,我编写了以下函数: function [output_signal] = AddDirectivityError (bat_loc_index, butter_deg_vector, sound_matrix) global chirp_initial_freq ; global chirp_end_freq; global sampling_rate; global num_of_mics; global sound_signal_length;
function [output_signal] = AddDirectivityError (bat_loc_index, butter_deg_vector, sound_matrix)
global chirp_initial_freq ;
global chirp_end_freq;
global sampling_rate;
global num_of_mics;
global sound_signal_length;
for (i=1 : num_of_mics)
normalized_co_freq = (chirp_initial_freq + chirp_end_freq)/ (1.6* sampling_rate);
A=sound_matrix ( i, : ) ;
peak_signal=max(A);
B=find(abs(A)>peak_signal/100);
if (butter_deg_vector(i)==0)
butter_deg_vector(i)=2;
end
[num, den] = butter(butter_deg_vector(i), normalized_co_freq, 'low');// HERE!!!
filtered_signal=filter(num,den, A );
output_signal(i, :)=filtered_signal;
end
此函数多次运行,没有任何错误。但是,当我到达以下行时:[num,den]=butter(butter_deg_向量(I),normalized_co_freq,'low')代码>
局部变量是:i=3,butter_deg_向量(i)=1,normalized_co_freq=5.625000e-001
MATLAB提示一个错误,表示:
??? Error using ==> buttap Expected N to be integer-valued.
"Error in ==> buttap at 15 validateattributes(n,{'numeric'},{'scalar','integer','positive'},'buttap','N');
Error in ==> butter at 70 [z,p,k] = buttap(n);"
我不明白为什么这个问题会发生,尤其是在这个迭代中。为什么此函数会提示错误,尤其是在这种情况下?尝试更改以下代码行:
[num, den] = butter (round(butter_deg_vector(i)), normalized_co_freq, 'low');
发生此错误时,您能否键入whos
?因为,butter_deg_vector
似乎不包含整数…键入“whos”?这是什么意思?似乎您提供的不是int
,而是float
。