Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вычисление мощности шума
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
Шаманъ
Приветствую всех!

Вычисляю среднеквадратичную мощность шума и логарифмирую:

p = log(sum(x^2)/n),

тут все понятно sm.gif

Если при вычислении мощности шума производить усреднение после логарифмирования, вот так:

p = sum(log(x^2)/n),

то результат будет смещенным, и потребуется коррекция.

Теперь вопрос. Если я вычисляю мощность шума блоками по 512отсчетов, потом логарифмирую и еще раз усредняю. Будет ли последнее усреднение вносить смещение и как оценить ошибку (если она будет)?

Заранее спасибо!
blackfin
Цитата(Шаманъ @ Apr 14 2016, 19:21) *
Если при вычислении мощности шума производить усреднение после логарифмирования, вот так:

p = sum(log(x^2)/n),

то результат будет смещенным, и потребуется коррекция.

Шаманъ, меняйте бубен! Срочно!! biggrin.gif
jorikdima
p = sum(log(x^2)/n)
Это что-то странное. Тоогда уж
p = sum(log(x^2))/n
чтоб осреднять. Но сумма логарифмов не равна логарифму суммы. Цель в чем?
Шаманъ
Цитата(jorikdima @ Apr 14 2016, 19:20) *
p = sum(log(x^2)/n)
Это что-то странное. Тоогда уж
p = sum(log(x^2))/n
чтоб осреднять.

Да, описка вышла.

Цитата
Но сумма логарифмов не равна логарифму суммы. Цель в чем?

Я в курсе, что не равна, оттого и вопрос. Цель собственно в теме топика. Если посмотреть на вопрос немного шире, то в древних анализаторах спектра логарифмирование было до усреднения (видеофильтр) и потом выводили коррекцию для точного измерения мощности шума. Мне очень неудобно усреднять блоками более 512 отсчетов, вот и возникла такая идея.

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

Что, сильно плохая мысль rolleyes.gif ?
mcheb
Цитата(Шаманъ @ Apr 15 2016, 00:02) *
В принципе мне достаточно оценить погрешность которая может при этом возникнуть, чтобы решить применим ли такой метод.

Что, сильно плохая мысль rolleyes.gif ?

Допустим, один отсчёт равен 0. Тогда log(0^2) == ну в общем, идея понятна
jorikdima
Цитата(mcheb @ Apr 15 2016, 05:04) *
идея понятна

Нет. Логарифм среднего не может быть нулем в оригинальном алгоритме?
Это обычная процедура по анализу числа на около-ноль перед логарифмированием.

Автор, Цель мне все-равно не ясна. В чем принципиальная разница?
Шаманъ
Цитата(jorikdima @ Apr 15 2016, 05:53) *
Автор, Цель мне все-равно не ясна. В чем принципиальная разница?

В смысле почему просто не усреднить бОльший блок, а потом взять логарифм? Это ограничения железа - мне придется переходить на вычисления с разрядностью 72 или 96 бит, получается очень непроизводительно. Есть правда одна идея - попробую сегодня.
тау
Цитата(Шаманъ @ Apr 14 2016, 19:21) *
Будет ли последнее усреднение вносить смещение и как оценить ошибку (если она будет)?


допустим Вы складываете 40dBm + (-20dBm) + (-20dBm) для усреднения получили 0 dbm в среднем . Ошибка есть и не маленькая .
так делать нельзя, короче.

И потом , кто мешает усреднять уже усредненные значения до логарифмирования ? Вычислений же меньше , один раз логарифмировать вместо ...надцати.
blackfin
Цитата(jorikdima @ Apr 14 2016, 19:20) *
p = sum(log(x^2)/n)
Это что-то странное. Тогда уж,
p = sum(log(x^2))/n
чтоб осреднять.

У вас какая-то своя математика?

Закон дистрибутивности в ней уже не работает?

В обычной математике:

p = sum(log(x^2)/n) = a/n + b/n +...+ z/n = (a + b +...+ z)/n = sum(log(x^2))/n

D.I.M.A
Вот тут хорошо написано про особенности усреднения до и после

http://cp.literature.agilent.com/litweb/pdf/5966-4008E.pdf
Шаманъ
Цитата(blackfin @ Apr 15 2016, 12:32) *
У вас какая-то своя математика?

Закон дистрибутивности в ней уже не работает?

В обычной математике:

p = sum(log(x^2)/n) = a/n + b/n +...+ z/n = (a + b +...+ z)/n = sum(log(x^2))/n

Закон работает, я кстати тоже об этом подумал сразу, но суть лучше отображает откорректированная формула. К тому же из-за усечения разрядности закон дистрибутивности на реальном железе нарушается, но то тонкости не относящиеся непосредственно к теме.

Цитата(тау @ Apr 15 2016, 11:50) *
допустим Вы складываете 40dBm + (-20dBm) + (-20dBm) для усреднения получили 0 dbm в среднем . Ошибка есть и не маленькая .
так делать нельзя, короче.

Не, там совсем другие числа например -140, -142, -139, и т.д. Ведь в реальности я усредняю предварительно усредненные, а потом логарифмированные мощности, а не мгновенные.

Цитата
И потом , кто мешает усреднять уже усредненные значения до логарифмирования ? Вычислений же меньше , один раз логарифмировать вместо ...надцати.

Я уже писал - мешает железо, но с утра пришла хорошая мысль, и она работает sm.gif Правда считать пришлось в числах 96бит laughing.gif

Цитата(D.I.M.A @ Apr 15 2016, 13:43) *
Вот тут хорошо написано про особенности усреднения до и после

http://cp.literature.agilent.com/litweb/pdf/5966-4008E.pdf

Спасибо! Пмню когда-то читал этот документ, но ссылку потерял, а с ходу что-то не нашлось...

Нашел свой случай:
Цитата
Averaging a number of computed results
If we average individual channel-power measurements to get
a lower-variance final estimate, we do not have to convert
dB-format answers to absolute power to get the advantages
of avoiding log averaging. The individual measurements,
being the results of many measurement cells summed
together, no longer have a distribution like the "logged
Rayleigh" but rather look Gaussian
. Also, their distribution
is sufficiently narrow that the log (dB) scale is linear
enough to be a good approximation of the power scale.
Thus, we can dB-average our intermediate results.


Выходит я зря переделал код измерителя мощности sm.gif Но зато теперь у меня их два варианта biggrin.gif
jorikdima
Цитата(blackfin @ Apr 15 2016, 12:32) *
У вас какая-то своя математика?

Закон дистрибутивности в ней уже не работает?

В обычной математике:

p = sum(log(x^2)/n) = a/n + b/n +...+ z/n = (a + b +...+ z)/n = sum(log(x^2))/n

Тупанул, виновен sm.gif
Tpeck
Цитата(Шаманъ @ Apr 14 2016, 18:21) *
Приветствую всех!

Вычисляю среднеквадратичную мощность шума и логарифмирую:

p = log(sum(x^2)/n),

тут все понятно sm.gif

Если при вычислении мощности шума производить усреднение после логарифмирования, вот так:

p = sum(log(x^2)/n),


Так делать нельзя.

sum(log(x^2)/n) = sum(log((x^2)^(1/n))))=sum(log(x^(2/n)))

Вы уверены, что Вам именно это надо.

Свойства log Вам в помощь.

Шаманъ
Цитата(Tpeck @ Apr 18 2016, 10:31) *
Так делать нельзя.

sum(log(x^2)/n) = sum(log((x^2)^(1/n))))=sum(log(x^(2/n)))

Вы уверены, что Вам именно это надо.

Свойства log Вам в помощь.

То, что Вы написали, мне точно не нужно wink.gif Вы просто не поняли, что я спрашивал. Я прекрасно понимаю, что логарифм среднего и средний логариф никак не равны.

Вопрос несколько оторван от чистой математики, и хоть знак равенства поставить нельзя, но именно так делали старые анализаторы спектра, потому там и возникали коррекции для разных "типов" сигналов.

Собственно ответ уже найден в одном из документов от НР и приведен выше в виде цитаты.
Tarbal
Цитата(Шаманъ @ Apr 14 2016, 19:21) *
Приветствую всех!

Вычисляю среднеквадратичную мощность шума и логарифмирую:

p = log(sum(x^2)/n),

тут все понятно sm.gif

Если при вычислении мощности шума производить усреднение после логарифмирования, вот так:

p = sum(log(x^2)/n),

то результат будет смещенным, и потребуется коррекция.

Теперь вопрос. Если я вычисляю мощность шума блоками по 512отсчетов, потом логарифмирую и еще раз усредняю. Будет ли последнее усреднение вносить смещение и как оценить ошибку (если она будет)?

Заранее спасибо!


Усреднение логарифмов это логарифм среднего геометрического, про которое точно известно только то, что оно не превышает среднего арифметического.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.