У меня есть значения (приведенные ниже) ожидаемых значений RSSI с течением времени, которые я хотел бы сравнить с моими измеренными значениями RSSI. То, что я искал, было способом количественно оценить его, чтобы я мог изменять параметры и иметь возможность сравнивать / сопоставлять различные подходы.
На мой взгляд, это сложная проблема, потому что я не знаю, как сравнивать сигналы, и все же учитываю крупномасштабные (общая форма) и мелкомасштабные (отдельные колебания) сигнала.
Например, вот график одного набора сигналов:
На рисунке я вижу, что красный сигнал измерения примерно соответствует модели, но он также хорошо выполняет моделирование некоторых синусоидальных качеств модели (в некоторых местах). Какие-нибудь мысли?
<> В ответ на комментарии пикенетов (которые кажутся разумными) я взял diff из двух значений и нарисовал abs (fft (diff)) и получил это:
Хотя я не уверен, что с этим делать. Поскольку у нас нет реальных частот, я не уверен, как масштабировать ось, а затем, если бы я сделал, какую метрику вы бы использовали?
источник
Ответы:
Если сигналы не выровнены, но у вас есть подсказка, что они более или менее «означают» одно и то же или ссылаются на аналогичные данные, вы можете использовать алгоритм динамического перекоса времени (DTW) для получения лучшего соответствия (а затем просто взять значение в том же месте). Вы можете измерить RMS, MSE или что угодно, используя эти соответствия. Для DTW вы можете проверить: http://en.wikipedia.org/wiki/Dynamic_time_warping
Хороший способ развить эту идею используется в Earth Mover Distance (EMD), который вычисляет минимальное усилие, чтобы привести сигналы к выравниванию, в качестве меры расстояния. EMD представлена здесь: http://ai.stanford.edu/~rubner/emd/default.htm
EMD дает вам прямое расстояние, которое вы можете использовать для дальнейшего анализа.
источник
Я использую RMS вектора ошибки в качестве меры. Поскольку я имею дело со сложными схемами модуляции, я также использую EVM в качестве меры.
источник
Я бы, наверное, объединил несколько подходов. Сначала я бы сгладил обе формы волны или сделал сплайн-интерполяцию, чтобы убрать большие вариации. Возможно, вы захотите объединить еще один шаг после перекрестной корреляции, чтобы выстроить их в ряд, предположив, что временное смещение не имеет значения для вас. Получив пик взаимной корреляции, вы можете даже интерполировать этот пик по форме параболы, а затем повторно сэмплировать один сигнал, чтобы он соответствовал другому. Я бы вычислил RMSE между двумя сигналами в этой точке и вывел бы одну метрику, указывающую на медленно меняющуюся дельту.
После этого я вычел бы интерполированное значение из оригинала, чтобы отклонения на небольших временных шкалах были нормализованы. Оттуда вы можете попытаться RMSE их друг против друга или даже просто вычислить дисперсию каждого, чтобы получить представление о том, сколько «шума» у вас есть о медленно меняющейся форме волны, в зависимости от того, что вам нужно и что вы на самом деле пытаетесь измерять.
источник