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

0

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

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

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 из них?

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

Теги:
algorithm
math
spline
algebra

1 ответ

0
Лучший ответ

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

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

  • 0
    Моя проблема заключается в получении огромных объемов данных с диска. Я думаю, что ваша формула не равна тому, что я делаю выше. Вы не обращаете внимания на то, больше ли mcepsA [i], чем mcepsB [i], не так ли?
  • 0
    Извините, пропустил существенную часть.
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню