我正在尝试根据下图中的信息在matlab中创建自定义自相关函数:
该函数有效,但是我得到一个错误,索引超过矩阵维度,数学上它是正确的但是在编程中我错过了什么?这是我的代码:
close all; clear all; clc;
[x,fs]=audioread('c1.wav');
N=length(x); %// length of signal
n1=128; %// length of window
win_num=floor(N/n1); %// number of windows
m=1:n1;
for l=1:n1/2:win_num %// 50% overlapping - 64 samples for a 128 window
for n=1:N-m
cmax(n)=max(sum(x(n+m)*conj(x(n))));
end
end
提前感谢。
答案 0 :(得分:1)
我假设您for n=1:N-m
for n=1:N-max(m)
for n=N-m(end)
(或N-m
)。
如果您执行第一个m
,则返回一个数组,而不是单个值,因为{{1}}是一个数组!