Математика: Хранение 11 значений в 1

Мне нужно сравнить некоторые melcpstrums (аудио коэффициенты).

Например, 11 mceps для одного аудио

mcepsA[0]=4.93723823
mcepsA[1]=2.3972343
mcepsA[2]=1.2305712

и т.п.

Теперь мне нужно сравнить их с 11 различными mceps, например, с

mcepsB[0]=3.9902323
mcepsB[1]=1.988323
mcepsB[2]=9.93723

и т.п.

Я вычисляю разницу в звуке следующим образом:

double diff=0;

for (unsigned int i=0;i<11;i++)
{
if (mcepsA[i] > mcepsB[i])
{
diff+=mcepsA[i]-mcepsB[i];
}
else
{
diff+=mcepsB[i]-mcepsA[i];
}
}

Однако сохранение всех значений mcep действительно проблематично для меня.
К сожалению, я не математик.
Здесь есть кто-то, кто распознает эту проблему и, возможно, знает решение для меня, где я могу хранить все mcepsA в одном значении вместо 11 из них?

Спасибо вам за помощь.

0

Решение

Ваши 11 значений кепстра выводятся из сотен, если не тысяч сэмплов. Вы действительно очень необходимо проверить, где возникают ваши проблемы с производительностью; маловероятно, что эти несколько строк являются проблемой.

Тем не менее, используйте diff += abs(mcepsA[i]-mcepsB[i]);,

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector