错误后,将所有报表前的“公式”函数定义第一个本地函数定义。”

10视图(30天)
这是一个代码计算mfcc。我想了很长一段时间解决问题。给出了如下的错误。
“函数定义在脚本中必须出现在文件的末尾。
“公式”功能后将所有语句定义之前第一个本地函数定义。”
使用这两个函数。函数和dct函数公式。做在代码中使用的函数定义是妥善安排吗?
有人能帮忙吗?
%使帧
清晰的所有;
(信号,fs) = audioread (“chakitham1.wav”);
f_d = 0.025;
f_size =圆(f_d * fs);
n =长度(信号);
n_f =地板(n / f_size);
temp = 0;
我= 1:n_f
帧(我:)=信号(温度+ 1:临时+ f_size);
temp = temp + f_size;
结束
如果国防部(n_f 2) = = 1
框架(n_f + 1:) = 0(大小(帧(1,:)));
n_f = n_f + 1;
结束
保存(“framedchakitham1”);
负载(“framedchakitham1”,“n_f”,“帧”);
disp(长度(帧(1,:)))
%窗口框架
j = 1: n_f
disp (1)
fr_wind (j) =框架(j:)。*汉明(长度(帧(j,:)));
= 1;
结束
保存(“windowchakitham1”)
f_low = 300;
f_high = 8000;
% %计算mel-scale乐队
日志mel_low = 1125 * (1 + (f_low / 700));
日志mel_high = 1125 * (1 + (f_high / 700));
filt_num = 26;
% %创建mel-scaled向量
梅尔·= linspace (mel_low、mel_high filt_num + 2);
% %计算频率的梅尔·向量
%频率= 700 * ((10 ^ (Mel / 2595)) 1);
频率= 700 * ((exp (Mel / 1125)) 1);
fs = 16000;
nfft = 512;
% %频率转换为最近的垃圾箱
我= 1:filt_num + 2
地板f (i) = ((nfft + 1) *频率(我)/ fs);
结束
m = 2:长度(Mel) 1
k = 1:地板(nfft / 2 + 1)
h (m - 1 k) =公式(k, f,米)
结束
结束
保存(“mel_filter_bank”)
函数H =公式(k, f, m)
如果k < f (m - 1)
H = 0;
elseifk > = f (m - 1) k < = f (m)
H =(取(m - 1)) / (f (m) - f (m - 1));
elseifk < = f (m + 1) k > = f (m)
H = (f (m + 1) - k) / (f (m + 1) - f (m));
elseifk > f (m + 1)
H = 0;
结束
结束
负载(“周期图”,“psdy”);
负载(“mel_filter_bank”,“h”,“filt_num”);
负载(“框架”,“n_f”);
j = 1: n_f
我= 1:filt_num
num(我:)= psdy (j:)。* h(我:);
结束
energy_log (j,我)=日志(sum (num(我,:)));
dct_energy (j) = dct (energy_log (j,:));
结束
函数y = dct (x, n)
如果(输入参数个数< 1 | |输入参数个数> 2)
print_usage;
结束
放松=伊斯雷尔(x);
转置= ((x) = = 1行);
如果转置,x = x (:);结束
(nr、数控)= (x)大小;
如果输入参数个数= = 1
n = nr;
elseifn > nr
x = [x;0 (n-nr nc)];
elseifn < nr
x (nr-n + 1: n,) = [];
结束
如果n = = 1
w = 1/2;
其他的
w = [sqrt (1/4 / n);√1/2 / n) * exp((1 *π/ 2 / n) * (1: n - 1)”) * 1 (nc);
结束
如果(放松& & rem (n, 2) = = 0)
傅立叶变换([y = x (1:2: n,);x (n: 2:1,)));
y = 2 *真实(w。* y);
其他的
y = fft ([x;flipud (x)));
y = w。* y (1: n:);
如果(放松)y =实际(y);结束
结束
如果转置,y = y。';结束
结束

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2021年8月17日
加载(“周期图”、“psdy”)

不是在任何函数。它不属于“公式”,有“结束”与“功能”的声明。

更多的答案(0)

标签

下载188bet金宝搏


释放

R2021a

社区寻宝

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

开始狩猎!