Перейти к содержанию

Центральная Предельная Теорема


nikellanjilo

Рекомендуемые сообщения

Доброго времени суток, уважаемые форумчане.

Вопрос состоит в следующем - мне нужно по ЦПТ получить нормальное распределение. Я решил сделать сделать это по ЦПТ (возможно как-то еще можно).

Я генерирую рандом, используя сдвиговый регистр с линейной обратной связью, затем суммирую полученные значения. Но вот если посмотреть то, что у меня получается - это далеко не колокол Гауссовский.

Собственно вопрос. У меня есть уже сумма из 12 или n слабозависимых величин, какую мне нужно сделать над ними операцию, чтобы получить свой колокол с нужным матожиданием и дисперсией.

Собственно - матожидание понятно, просто сумма: матожидание+(выражение) , но что мне нужно сделать в выражении чтобы значения укладывались в заданное мною СКО.

Ссылка на ЦПТ в википедии ====>.

https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Просто посчитай получающуюся дисперсию. Затем умножь числа на 2 и посчитай снова. И тебе станет ясно на сколько надо умножать, чтобы получить требуемую дисперсию.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

То есть если поэтапно.

1. Я считаю сумму всех значений, делю на количество - получаю среднее значение (чтобы потом найти дисперсию),

2. Затем нахожу дисперсию каждой величины

3. Нахожу дисперсию суммарную

4. Проделываю снова все для 2хЗНАЧЕНИЙ

5. Нахожу нужный коэффициент, на который буду домножать, чтобы значения укладывались в СКО

Так?

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Эм... проще так:

У тебя есть набор случайных чисел, допустим 1000 штук в массиве noise. Выполни в Matlab или Octave функцию mean(noise) - получишь матожиданее, выполни std(noise) получишь СКО (соответственно std(noise)^2 - это дисперсия).

Это чтобы не запутаться в вычислениях.

Затем умножь массив noise на 2 и повтори вычисления матожидания и дисперсии.

P.S. 1000 значений может быть мало, возьми миллион.

Вот пример

octave:8> n=normrnd(1,5,1000000,1);
octave:9> mean(n)
ans = 1.0031
octave:10> std(n)
ans = 5.0054
octave:11> std(n*2)
ans =  10.011

В первой строке создаётся одномерный массив из миллиона элементов с матожиданием 1 и СКО (sigma) 5. Вычисления mean и std довольно точны.

Если умножим числа на 2, то и СКО увеличится в два раза, а дисперсия в 4 раза.

Изменено пользователем Vascom
Ссылка на комментарий
Поделиться на другие сайты

Я генерирую рандом, используя сдвиговый регистр с линейной обратной связью, затем суммирую полученные значения. Но вот если посмотреть то, что у меня получается - это далеко не колокол Гауссовский.

может это поможет?

http://www.microchip.su/showthread.php?t=4487&page=43

посты 1074-1077

Ссылка на комментарий
Поделиться на другие сайты

Ну можно (нужно) промоделировать всё это в симуляторе перед программированием ПЛИС.

Мы же не знаем конкретную твою задачу. Например нужно ли тебе менять матожидание и дисперсию в процессе работы.

Ты начинай делать, показывай свой код, verilog. И в процессе всё станет понятно, поможем где надо.

Ссылка на комментарий
Поделиться на другие сайты

module gauss(
input [7:0] MO,
input [7:0] CKO,
input CLK,
output reg [7:0] GAUS,
output reg [7:0] CH,
output reg [7:0] SUMMER
);
reg [7:0] change = 8'd12;
wire feed = change[7]^change[5]^change[4]^change[3];
reg [7:0] count=8'd0;
reg [7:0] sum = 8'd0;
always @(posedge CLK)
begin
change[0]<=feed;
change[7:1]<=change[6:0];
if (count<12)
begin
 count<=count+1;
 sum<=$signed(sum)+$signed(change);
end
else
begin
 count<=0;
 sum<=0;
 SUMMER<=$signed(sum);
 CH<=$signed(change);
 GAUS<=$signed(MO)+(($signed(sum)*$signed(CKO))/144);	
end

end
endmodule

По-сути:

1. Делаю методом Фебоначи на сдвиговом регистре с линейной обратной связью рандом,

2. По ЦПТ - считаю сумму 12 элементов,

3. Перевожу значения чтобы получилось нормальное распределение

Но получается бячное что-то...

Ты начинай делать, показывай свой код, verilog. И в процессе всё станет понятно, поможем где надо.

Собственно вот так :thank_you2: :thank_you2:

Ссылка на комментарий
Поделиться на другие сайты

Основная проблема - переполнение регистра sum. Увеличь его разрядность и всё станет лучше.

Я тут переписал твой код чтобы проще и понятнее было.

Сам модуль http://paste.fedorap...215922/15779614

И тестбенч для его запуска http://paste.fedorap...215923/01578031

Получаемое распределение

post-164632-0-81944900-1430158014.png

Конечно не чистый гаусс, но и метод генерации у тебя очень простой.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...