为更小的间隔lpc的函数

4视图(30天)
micpro
micpro 2016年11月17日
评论道: 格雷格·迪翁 2016年11月18日
你好,我使用lpc(线性预测编码)的Matlab 2011 a, a = lpc (W、p)然后我从那里得到共振峰(W是我的信号和p是顺序),它返回我共振峰的价值观。
但我想共振峰对小范围的信号(不是所有信号),例如,长度(W) = 1000,我想研究它的共振峰
我= = 0到50 W(我),然后
我= 51我= 100等。
为每个时间间隔和3或4共振峰,当我把这个基本的for循环,我得到这个错误:错误使用= = > lpc 64(这是lpc的。m文件)........
我搜索,但不能解决问题,谁能帮助好吗?的问候。

答案(1)

格雷格·迪翁
格雷格·迪翁 2016年11月17日
编辑:格雷格·迪翁 2016年11月17日
在我的版本,64行生成一个错误当你输入信号是空的(即没有数据)。
设了一个圈套,然后单击编辑器中的“功能callstack”选项卡,看看你选择的部分信号。
我认为你想做类似:
numSegments =地板(长度(W) / 50);
我= 1:numSegments
指数=(张)* 50 + (1:50);
一个= lpc (W(指数),P);
结束
如果您熟悉矩阵……你可以让他们在一个镜头:
M = 50;
N =地板(长度(W) / 50);
Wm =重塑(W (1: M * N), M, N);
一个= lpc (Wm P);
2的评论
格雷格·迪翁
格雷格·迪翁 2016年11月18日
有很多竞争的方式绘制共振峰(例如mel刻度)。一旦你得到了f1和f2扩展你所希望的方式,你可以试试:
%的规模
日志mel1 = 1127 * (1 + f1/700);
日志mel2 = 1127 * (1 + f2/700);
%的阴谋
情节(mel1 mel2,“。”)
包含(“f1 (mel刻度)”);
ylabel (“f2 (mel刻度)”);

登录置评。

社区寻宝

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

开始狩猎!