команда xcorr в MATLAB - PullRequest
       11

команда xcorr в MATLAB

2 голосов
/ 22 марта 2012

Согласно документации, для команды xcorr нет удобной опции 'same', как для conv, чтобы выходной размер оставался таким же, как у одного из входов.

Есть ли способ обойти эту проблему, кроме расчета соответствующих индексов и разговора с подрешеткой?

1 Ответ

1 голос
/ 22 марта 2012

Вы правы, для xcorr такого нет, и проблема в том, что даже если вы укажете MAXLAG, вы получите вектор длины 2 * MAXLAG + 1, так что это всегда будет странным. Если ваш входной сигнал нечетный, вы можете позвонить xcorr( a,b, (length(a)-1)/2 );. Если вы работаете с четными или произвольными длинами, я боюсь, что вам придется использовать вычисления с подрешетками. Однако, чтобы быть умным, вы можете использовать аналогичный прием и просто сказать

R = xcorr( a,b, floor(length(a)/2) );
R = R( 1:length(a) );
...