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

Реализация генератора шума

Надо написать генератор шума с нормальным распределением. Получил ПСП с помощью LFSR, дальше надо реализовать преобразование Бокса-Мюллера получения из равномерного распределения нормального, но как его сделать не знаю. Надо корень, ln и cos c sin.

Или есть другой способ получения из равномерного распределения нормального?

 

Что имею пока:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.std_logic_unsigned.all; 

entity LFSR_1 is
PORT(
clk: in std_logic;
RND: out std_logic
);

end LFSR_1;

architecture Behavioral of LFSR_1 is
    signal tmp: std_logic_vector(31 downto 0):= (others=>'1');
begin

    process (clk, tmp)
    begin
         if tmp=0 then tmp <= (others=>'1');
        elsif (clk'event and clk='1') then
            for i in 0 to 30 loop
                tmp(i+1) <= tmp(i);
            end loop;
            tmp(0) <= tmp(31) xor tmp(21) xor tmp(1) xor tmp(0); 
        end if;
    end process;

    RND <= tmp(31);      

end Behavioral;

 

Мой уровень знания VHDL чуть выше чайника :laughing:

Поделиться сообщением


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

Получил ПСП с помощью LFSR, дальше надо реализовать преобразование Бокса-Мюллера получения из равномерного распределения нормального, но как его сделать не знаю. Надо корень, ln и cos c sin.

1. LFSR у вас не очень

2. таблично считайте + линейная аппроксимация.

3. в сети статей по этому генератору на плис вагон и маленька тележка

 

Поделиться сообщением


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

1. LFSR у вас не очень

2. таблично считайте + линейная аппроксимация.

3. в сети статей по этому генератору на плис вагон и маленька тележка

 

Чем плох LFSR?

Как посчитать таблично, вот совсем не понятно

Да нет, статей я не нашел, реализации на vhdl, на Си делали (http://habrahabr.ru/post/266897)

 

Принимаю любую критику, советам и наставлениям буду рад

Поделиться сообщением


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

Чем плох LFSR?

Как посчитать таблично, вот совсем не понятно

Да нет, статей я не нашел, реализации на vhdl, на Си делали (http://habrahabr.ru/post/266897)

4 ая ссылка из гугла, по ключевой фразе "Hardware Gaussian Noise Generator Using the Box-Muller Method "

 

Поделиться сообщением


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

4 ая ссылка из гугла, по ключевой фразе "Hardware Gaussian Noise Generator Using the Box-Muller Method "

 

Замечательная статья, прочитаю.

 

Ответов 0

Поделиться сообщением


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

Сложите много равномерно распределенных величин, и получите нормально распределенную.

Поделиться сообщением


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

Сложите много равномерно распределенных величин, и получите нормально распределенную.

 

Центральная предельная теорема, даааа, этот вариант пока первый в очереди на успех- по простоте и результату)

Поделиться сообщением


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

Замечательная статья, прочитаю.

 

Ответов 0

кому как. по ней я на за час сделал генератор AWGN шума бокса-маллера и оптимизировал его под плис. на все ушло плиток 400 + немного памяти и умножителей.

 

Сложите много равномерно распределенных величин, и получите нормально распределенную.

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

Поделиться сообщением


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

кому как. по ней я на за час сделал генератор AWGN шума бокса-маллера и оптимизировал его под плис. на все ушло плиток 400 + немного памяти и умножителей.

Однозначно, Вы- гуру, по сравнению со мной

Можно код AWGN?

Поделиться сообщением


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

Можно код AWGN?

Давать вам "рыбу" не в моих интересах. "Удочку" я вам дал. Математика там 9 класс средней школы, справиться любой кто умеет пользоваться головой и учебником.

 

Поделиться сообщением


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

Математика там 9 класс средней школы, справиться любой кто умеет пользоваться головой и учебником.

Я бы уже давно сгенерировал, если бы на VHDL было так легко посчитать корень, логарифм, и тригонометрию

Мат. выражение простое, разговора нет

Изменено пользователем Rotor

Поделиться сообщением


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

Генератор белого шума есть в примерах Xilinx System Generator, его реализация полностью открыта для пользователя, поэтому при желании можно очень быстро портировать код под любую другую ПЛИС.

post-60826-1451124667_thumb.png

Поделиться сообщением


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

Я бы уже давно сгенерировал, если бы на VHDL было так легко посчитать корень, логарифм, и тригонометрию

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

 

Поделиться сообщением


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

получения из равномерного распределения нормального

 

Пропустить через ФНЧ.

 

Поделиться сообщением


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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

×
×
  • Создать...