CN108390648A - A kind of Gaussian white noise generator based on FPGA - Google Patents
A kind of Gaussian white noise generator based on FPGA Download PDFInfo
- Publication number
- CN108390648A CN108390648A CN201810037910.5A CN201810037910A CN108390648A CN 108390648 A CN108390648 A CN 108390648A CN 201810037910 A CN201810037910 A CN 201810037910A CN 108390648 A CN108390648 A CN 108390648A
- Authority
- CN
- China
- Prior art keywords
- module
- gaussian
- address
- random number
- ram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03B—GENERATION OF OSCILLATIONS, DIRECTLY OR BY FREQUENCY-CHANGING, BY CIRCUITS EMPLOYING ACTIVE ELEMENTS WHICH OPERATE IN A NON-SWITCHING MANNER; GENERATION OF NOISE BY SUCH CIRCUITS
- H03B29/00—Generation of noise currents and voltages
Landscapes
- Complex Calculations (AREA)
Abstract
The present invention relates to a kind of Gaussian white noise generators based on FPGA, including communicate uniform random number generator module, address generating module, Gauss number RAM module, orthogonal conversion module and the quadratic sum correcting module of connection successively.The present invention is based on WALLACE algorithms, contribute to the white Gaussian noise that output speed is high, noise effects are good, and meet and realized in FPGA environment.
Description
Technical field
The present invention relates to signal processing technology field technical field, more particularly to a kind of white Gaussian noise hair based on FPGA
Raw device.
Background technology
Communicate and control system in, white Gaussian noise is very common noise signal, it is therefore desirable to utilize Gauss white noise
Acoustical signal source is tested and the interference free performance of checking system.Meanwhile in radio communication channel, it is often necessary to which white Gaussian noise is believed
Number source.So simple in structure, dependable performance a white Gaussian noise signal source is realized in design, have to system detectio very necessary
Meaning.Existing Gassian noise generator usually has physical noise generator and digital two class of composite noise generator.Although
Physical noise generator precision is relatively high, but realizes that circuit is complex, so more selecting digital make an uproar in engineering
Acoustic generator.Currently, many white Gaussian noise sources microprocessor and etc. realize in systems because they are by using letter
Number library can easily calculate sinusoidal and exponential function.But simulation velocity can be increased substantially using hardware emulator.
Invention content
The object of the present invention is in view of the shortcomings of the prior art, a kind of Gaussian white noise generator based on FPGA of design, base
In WALLACE algorithms, the white Gaussian noise that output speed is high, noise effects are good, and meets and realized in FPGA environment.
The invention is realized by the following technical scheme:
A kind of Gaussian white noise generator based on FPGA, which is characterized in that structure includes communicate connection successively uniform
Randomizer module, address generating module, Gauss number RAM module, orthogonal conversion module and quadratic sum correcting module;
The uniform random number generator module uses the integration algorithm of cellular automaton, utilizes the origin polynomial f of rank
(x)=x29+x2+ 1, the rule number for calculating the cellular automaton corresponding to origin multinomial is (0,100 1,000 1,001 0111
1100 1,000 1,001 0), and initial value is (0,001 0,010 1,101 1,010 0,101 11010);The uniformly random number sequence generated
Arrange selection addresses of the UNIFORM as Gauss number RAM;The effect of random number be exactly upset 1024 Gauss numbers just
Initial value so that end value and the relevance of initial value are desalinated;
According to Wallace algorithms, orthogonal transformation needs four variables every time, therefore address generating module is in each clock week
It is interim to generate independent four addresses, it is denoted as p, q, r and s, address size 10bit respectively;Purpose is obtained in order to make
New Gauss number and the relevance of initial Gaussian random number reduce;This four addresses are simultaneously the input variable of orthogonal transformation
Gauss number RAM is provided, address and orthogonal transformation input new variables offer write address are provided;
Specific algorithm is as follows:Three 10bit variable start, stride and mask are defined, are calculated as follows:Start=
uniform[28:19];
Stride={ uniform [18:10],1'b1};
Mask=uniform [9:0];
Four addresses are obtained by following formula:
The Gauss number RAM module is designed using twoport, is had two data with write-in and is read, RAM sizes 24*
1024;Initial value Gauss number be the obedience standard that is obtained with box-muller algorithms using the randn orders of matlab just
The random number of state distribution, and make its quadratic sum be 1 by normalization, quantify random number using the complement of two's two's complement of 24 bits, deposits
It stores up in the ROM that a size is 24*1024, when initialization, ROM values is written by RAM by counter, random selection address p,
Q, address is read in and read to two in r, s as Gauss number;Randomly choose orthogonal transformation output new variables or
Value of the Gaussian noise as write-in RAM is initialized in ROM;
The orthogonal conversion module carries out orthogonal transformation by two orthogonal matrixes to initial Gaussian random number, for just
Hand over matrix selection can there are many kinds of, in order to achieve the effect that preferably to generate Gauss number, the design selection below two
Kind orthogonal matrix:
Above two matrix uses in turn, in conversion every 1024 variables, uses A in turn0And A1;Due to turning
It changes in matrix and is only formed by 1 and -1, so actually only adding to initial Gaussian random number during conversion
The either operation of displacement;Such as a, b, c, d are four initial Gaussian random numbers for needing to carry out orthogonal conversion, are passing through A0
And A1Orthogonal conversion after, new a', b', c', d' is obtained, then can be denoted as:
A'=a-t, b'=t-b, c'=t-c, d'=t-d
A'=t-a, b'=b-t, c'=c-t, d'=d-t
Quadratic sum correcting module carries out quadratic sum amendment to the normalization gaussian variable that orthogonal transformation generates, and is needed
White Gaussian noise variable;Theoretically, if random number xi obeys standardized normal distribution N (0,1), G=A+Bx is definedi(A, B are normal
Number), then the quadratic sum of G obeys x2Distribution.In this module, the N number of new variables obtained for " wheel " only uses an amendment
Value G, the value by this " one wheel " first output valve x1It is calculated;The normalization variable that epicycle generates is multiplied by this correction value G,
The random sequence of an approximate Normal Distribution, as white Gaussian noise are just obtained;
According to Wallace algorithms, definitionThe initial value of G isHere N=
1024。
The present invention provides a kind of Gaussian white noise generators based on FPGA, and compared with prior art, the present invention is significantly
The complexity for reducing Gaussian white noise generator, obtained white Gaussian noise variance is approximately 1, is more suitable in FPGA real
It is existing.
Description of the drawings
Fig. 1 is that the present invention is based on the realization block diagrams of the Gaussian white noise generator of FPGA.
Specific implementation mode
The present invention is described further refering to attached drawing 1.
The present invention relates to a kind of Gaussian white noise generators based on FPGA, which is characterized in that structure includes communicating successively
The uniform random number generator module of connection, address generating module, Gauss number RAM module, orthogonal conversion module and square
And correcting module;
The uniform random number generator module uses the integration algorithm of cellular automaton, utilizes the origin polynomial f of rank
(x)=x29+x2+ 1, the rule number for calculating the cellular automaton corresponding to origin multinomial is (0,100 1,000 1,001 0111
1100 1,000 1,001 0), and initial value is (0,001 0,010 1,101 1,010 0,101 1,101 0);The uniform random number of generation
Selection addresses of the sequence UNIFORM as Gauss number RAM;The effect of random number is exactly to upset 1024 Gauss numbers
Initial value so that end value and the relevance of initial value are desalinated;
According to Wallace algorithms, orthogonal transformation needs four variables every time, therefore address generating module is in each clock week
It is interim to generate independent four addresses, it is denoted as p, q, r and s, address size 10bit respectively;Purpose is obtained in order to make
New Gauss number and the relevance of initial Gaussian random number reduce;This four addresses are simultaneously the input variable of orthogonal transformation
Gauss number RAM is provided, address and orthogonal transformation input new variables offer write address are provided;
Specific algorithm is as follows:Three 10bit variable start, stride and mask are defined, are calculated as follows:Start=
uniform[28:19];
Stride={ uniform [18:10],1'b1};
Mask=uniform [9:0];
Four addresses are obtained by following formula:
The Gauss number RAM module is designed using twoport, is had two data with write-in and is read, RAM sizes 24*
1024;Initial value Gauss number be the obedience standard that is obtained with box-muller algorithms using the randn orders of matlab just
The random number of state distribution, and make its quadratic sum be 1 by normalization, quantify random number using the complement of two's two's complement of 24 bits, deposits
It stores up in the ROM that a size is 24*1024, when initialization, ROM is normalized by the write-in of gaussian variable initial value by counter
Two in RAM, random selection address p, q, r, s are used as Gauss number to be read in and read address;It randomly chooses orthogonal
Value of the Gaussian noise as write-in RAM is initialized in transformation output new variables or ROM;
The orthogonal conversion module carries out orthogonal transformation by two orthogonal matrixes to initial Gaussian random number, for just
Hand over matrix selection can there are many kinds of, in order to achieve the effect that preferably to generate Gauss number, the design selection below two
Kind orthogonal matrix:
Above two matrix uses in turn, in conversion every 1024 variables, uses A in turn0And A1;Due to turning
It changes in matrix and is only formed by 1 and -1, so actually only adding to initial Gaussian random number during conversion
The either operation of displacement;Such as a, b, c, d are four initial Gaussian random numbers for needing to carry out orthogonal conversion, are passing through A0
And A1Orthogonal conversion after, new a', b', c', d' is obtained, then can be denoted as:
A'=a-t, b'=t-b, c'=t-c, d'=t-d
A'=t-a, b'=b-t, c'=c-t, d'=d-t
Quadratic sum correcting module carries out quadratic sum amendment to the normalization gaussian variable that orthogonal transformation generates, and is needed
White Gaussian noise variable;Theoretically, if random number xi obeys standardized normal distribution N (0,1), G=A+Bx is definedi(A, B are normal
Number), then the quadratic sum of G obeys x2Distribution.In this module, the N number of new variables obtained for " wheel " only uses an amendment
Value G, the value by this " one wheel " first output valve x1It is calculated;The normalization variable that epicycle generates is multiplied by this correction value G,
The random sequence of an approximate Normal Distribution, as white Gaussian noise are just obtained;
According to Wallace algorithms, definitionThe initial value of G isHere N=
1024。
The present invention in specific use,
Compared with prior art, the beneficial effects of the present invention are the complexity for substantially reducing device, obtained Gauss
White noise variance is approximately 1, is more suitable for realizing in FPGA.
As described above, you can the present invention is applied.
The foregoing is only a preferred embodiment of the present invention, but scope of protection of the present invention is not limited thereto,
Any one skilled in the art in the technical scope disclosed by the present invention, according to the technique and scheme of the present invention and its
Inventive concept is subject to equivalent substitution or change, should be covered by the protection scope of the present invention.
Claims (4)
1. a kind of Gaussian white noise generator based on FPGA, which is characterized in that structure include communicate successively connection it is uniform with
Machine number generator module, address generating module, Gauss number RAM module, orthogonal conversion module and quadratic sum correcting module;
The uniform random number generator module use cellular automaton integration algorithm, using rank origin polynomial f (x)=
x29+x2+ 1, the rule number for calculating the cellular automaton corresponding to origin multinomial is (0,100 1,000 1,001 0,111 1100
1000 1,001 0), and initial value is (0,001 0,010 1,101 1,010 0,101 1,101 0);The uniformly random Number Sequence generated
Selection addresses of the UNIFORM as Gauss number RAM;The effect of random number is exactly upset 1024 Gauss numbers initial
Value so that end value and the relevance of initial value are desalinated;
Described address generation module generates independent four addresses in each clock cycle, is denoted as p, q, r and s, address respectively
Length is 10bit;Four addresses that address generating module generates provide Gauss number for the input variable of orthogonal transformation simultaneously
RAM reads address and orthogonal transformation input new variables provides write address;
The Gauss number RAM module is designed using twoport, is had two data with write-in and is read, RAM sizes 24*
1024;Initial value Gauss number be the obedience standard that is obtained with box-muller algorithms using the randn orders of matlab just
The random number of state distribution, and make its quadratic sum be 1 by normalization, quantify random number using the complement of two's two's complement of 24 bits, deposits
It stores up in the ROM that a size is 24*1024, when initialization, ROM values is written by RAM by counter, random selection address p,
Q, address is read in and read to two in r, s as Gauss number;Randomly choose orthogonal transformation output new variables or
Value of the Gaussian noise as write-in RAM is initialized in ROM;
The orthogonal conversion module carries out orthogonal transformation by two orthogonal matrixes to initial Gaussian random number;
The quadratic sum correcting module is used to carry out quadratic sum amendment to the normalization gaussian variable that orthogonal transformation generates, and is needed
The white Gaussian noise variable wanted.
2. a kind of Gaussian white noise generator implementation method based on FPGA, which is characterized in that include the following steps:
Uniformly random sequence, the uniformly random Number Sequence UNIFORM conducts of generation are generated by uniform random number generator module
Gauss number RAM module selects address;
Independent four addresses are generated in each clock cycle by address generating module, are denoted as p, q, r and s, address respectively
Length is 10bit, and for providing four variables for orthogonal conversion module, four addresses carry for the input variable of orthogonal transformation simultaneously
Address is read for Gauss number RAM and orthogonal transformation input new variables provides write address;
The write-in and reading of gaussian random sequence are carried out by Gauss number RAM module;
Orthogonal transformation is carried out to initial Gaussian random number by orthogonal conversion module;
Quadratic sum amendment is carried out to the normalization gaussian variable that orthogonal transformation generates by quadratic sum correcting module, is needed
White Gaussian noise variable.
3. the Gaussian white noise generator implementation method based on FPGA as claimed in claim 2, which is characterized in that
Described address generation module when generating independent four addresses in each clock cycle used method be:Define three
A 10bit variables start, stride and mask, are calculated as follows:
Start=uniform [28:19];
Stride={ uniform [18:10],1'b1};
Mask=uniform [9:0];
Four addresses are obtained by following formula:
4. the Gaussian white noise generator implementation method based on FPGA as claimed in claim 2, which is characterized in that by orthogonal
When conversion module carries out orthogonal transformation to initial Gaussian random number, using two kinds of orthogonal matrixes of following feature:
Two kinds of matrixes use in turn, in conversion every 1024 variables, use A in turn0And A1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810037910.5A CN108390648A (en) | 2018-01-16 | 2018-01-16 | A kind of Gaussian white noise generator based on FPGA |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810037910.5A CN108390648A (en) | 2018-01-16 | 2018-01-16 | A kind of Gaussian white noise generator based on FPGA |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108390648A true CN108390648A (en) | 2018-08-10 |
Family
ID=63076357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810037910.5A Pending CN108390648A (en) | 2018-01-16 | 2018-01-16 | A kind of Gaussian white noise generator based on FPGA |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108390648A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855246A (en) * | 2019-11-08 | 2020-02-28 | 成都天奥测控技术有限公司 | Method for generating Gaussian white noise with arbitrary variance |
RU2723271C1 (en) * | 2019-10-01 | 2020-06-09 | Акционерное общество "Концерн "Созвездие" | Method for generation of digital white gaussian noise using the wallace method |
RU2723272C1 (en) * | 2019-10-01 | 2020-06-09 | Акционерное общество "Концерн "Созвездие" | Digital white gaussian noise generator by wallace method |
CN112241253A (en) * | 2019-07-17 | 2021-01-19 | 富士通株式会社 | Random number generation device and random number generation method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022463A (en) * | 2007-03-20 | 2007-08-22 | 西南科技大学 | Multiprotocol interface digital base band channel simulator |
CN101131710A (en) * | 2007-09-13 | 2008-02-27 | 南京大学 | Low-density odd-even checking codec hardware simulation system based on programmable gate array |
CN102542149A (en) * | 2011-10-11 | 2012-07-04 | 江苏科技大学 | Hardware realization method of fissile bootstrap particle filtering algorithm based on FPGA (Field Programmable Gate Array) |
CN106774624A (en) * | 2016-11-24 | 2017-05-31 | 北京理工大学 | A kind of Parallel Implementation method of real-time white Gaussian noise hardware generator |
-
2018
- 2018-01-16 CN CN201810037910.5A patent/CN108390648A/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022463A (en) * | 2007-03-20 | 2007-08-22 | 西南科技大学 | Multiprotocol interface digital base band channel simulator |
CN101131710A (en) * | 2007-09-13 | 2008-02-27 | 南京大学 | Low-density odd-even checking codec hardware simulation system based on programmable gate array |
CN102542149A (en) * | 2011-10-11 | 2012-07-04 | 江苏科技大学 | Hardware realization method of fissile bootstrap particle filtering algorithm based on FPGA (Field Programmable Gate Array) |
CN106774624A (en) * | 2016-11-24 | 2017-05-31 | 北京理工大学 | A kind of Parallel Implementation method of real-time white Gaussian noise hardware generator |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241253A (en) * | 2019-07-17 | 2021-01-19 | 富士通株式会社 | Random number generation device and random number generation method |
RU2723271C1 (en) * | 2019-10-01 | 2020-06-09 | Акционерное общество "Концерн "Созвездие" | Method for generation of digital white gaussian noise using the wallace method |
RU2723272C1 (en) * | 2019-10-01 | 2020-06-09 | Акционерное общество "Концерн "Созвездие" | Digital white gaussian noise generator by wallace method |
CN110855246A (en) * | 2019-11-08 | 2020-02-28 | 成都天奥测控技术有限公司 | Method for generating Gaussian white noise with arbitrary variance |
CN110855246B (en) * | 2019-11-08 | 2023-04-11 | 成都天奥测控技术有限公司 | Method for generating Gaussian white noise with arbitrary variance |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108390648A (en) | A kind of Gaussian white noise generator based on FPGA | |
US20220131706A1 (en) | Odd index precomputation for authentication path computation | |
EP0342832B1 (en) | Dynamic feedback arrangement scrambling technique keystream generator | |
CN103761068B (en) | Optimized Montgomery modular multiplication hardware | |
US20080177812A1 (en) | Hash algorithm using randomization function | |
JP4885422B2 (en) | Galois extension field linear converter | |
KR20190107766A (en) | Computing device and method | |
CN108897716B (en) | Data processing device and method for reducing calculation amount through memory read-write operation | |
US20220006611A1 (en) | Side-channel robust incomplete number theoretic transform for crystal kyber | |
EP4152681A1 (en) | Low overhead side channel protection for number theoretic transform | |
CN106375079A (en) | Chaotic encryption method for voice information | |
CN103034471A (en) | Random number generation method and random number generation system | |
CN100542029C (en) | Pseudo-random sequence generating device | |
CN105354008A (en) | Output circuit and output method of random number generator | |
CN112966729B (en) | Data processing method and device, computer equipment and storage medium | |
Noor et al. | Resource shared galois field computation for energy efficient AES/CRC in IoT applications | |
CN106201435A (en) | Pseudo-random number generation method based on cell neural network | |
CN102135871B (en) | Device for generating random number by using chaos theory and dynamic password token thereof | |
CN103401681B (en) | Model taking method, impression-taking apparatus and chip | |
Majumder et al. | Investigation on Quine McCluskey method: A decimal manipulation based novel approach for the minimization of Boolean function | |
US20220123949A1 (en) | Side channel protection for xmss signature function | |
US11928077B2 (en) | Data processing circuit, data storage device including the same, and operating method thereof | |
CN109688497A (en) | Sound play device, method and non-transient storage media | |
CN110515586B (en) | Multiplier, data processing method, chip and electronic equipment | |
CN204347817U (en) | The pseudorandom number generator of integrated CRC check circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180810 |
|
RJ01 | Rejection of invention patent application after publication |