CN106774624A - A kind of Parallel Implementation method of real-time white Gaussian noise hardware generator - Google Patents

A kind of Parallel Implementation method of real-time white Gaussian noise hardware generator Download PDF

Info

Publication number
CN106774624A
CN106774624A CN201611052554.1A CN201611052554A CN106774624A CN 106774624 A CN106774624 A CN 106774624A CN 201611052554 A CN201611052554 A CN 201611052554A CN 106774624 A CN106774624 A CN 106774624A
Authority
CN
China
Prior art keywords
white noise
parallel
vector
fpga
gaussian white
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
Application number
CN201611052554.1A
Other languages
Chinese (zh)
Inventor
郑哲
黄惠明
周扬
吴嗣亮
单长胜
丁华
王磊
张晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pla 63999 Force
Beijing Institute of Technology BIT
Original Assignee
Pla 63999 Force
Beijing Institute of Technology BIT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Pla 63999 Force, Beijing Institute of Technology BIT filed Critical Pla 63999 Force
Priority to CN201611052554.1A priority Critical patent/CN106774624A/en
Publication of CN106774624A publication Critical patent/CN106774624A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/022Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种实时高斯白噪声硬件发生器的并行实现方法。使用本发明能够实现高斯白噪声硬件发生器的实时地、高速地、并行生成高质量的高斯白噪声。本发明首先基于细胞自动机理论的均匀白噪声的FPGA高速并行实现,给出了并行实现所需N路初始向量的计算方法以及细胞自动机并行生成算法的递推函数关系;然后,给出了Box_Muller算法一种低复杂度的逼近方法,将Box_Muller算法简化为简单的乘加及CORDIC运算,FPGA实现时仅需耗费少量乘法器和逻辑资源,从而可在较低的FPGA资源消耗下,实时地、高速地生成周期长、带宽大、质量好的高斯白噪声。

The invention discloses a parallel realization method of a real-time Gaussian white noise hardware generator. The invention can realize the high-quality Gaussian white noise generation of the Gaussian white noise hardware generator in real time, at high speed and in parallel. The present invention firstly realizes the FPGA high-speed parallel realization of uniform white noise based on the cellular automata theory, and provides the calculation method of the N-way initial vectors required for parallel realization and the recursive function relationship of the parallel generation algorithm of the cellular automata; then, provides The Box_Muller algorithm is a low-complexity approximation method, which simplifies the Box_Muller algorithm into simple multiplication and addition and CORDIC operations. FPGA implementation only consumes a small amount of multipliers and logic resources, so that real-time , High-speed generation of Gaussian white noise with long period, wide bandwidth and good quality.

Description

一种实时高斯白噪声硬件发生器的并行实现方法A Parallel Realization Method of Real-time Gaussian White Noise Hardware Generator

技术领域technical field

本发明涉及无线信道模拟、噪声建模技术领域,具体涉及一种实时高斯白噪声硬件发生器的并行实现方法。The invention relates to the technical field of wireless channel simulation and noise modeling, in particular to a parallel implementation method of a real-time Gaussian white noise hardware generator.

背景技术Background technique

无线信道模拟技术由于可在地面复现出一个理想、恶化、甚至近乎真实的电波传播环境,模拟信道各种时、空变化对信号传播的影响,早已成为通信、测控等技术领域不可缺少的验证测试手段。相比于有线信道,无线信道是电波传播的一种恶劣介质,具有随机、不可预知等复杂特性。无线电波在信道传输过程中,会不可避免受到噪声干扰、信道衰落、电离层闪烁、动态雨衰等随机非理想特性的影响。为了研究这些非理想特性对电波传播的影响,国内外学者通常以高斯白噪声建模为基础,再通过各种线性或非线性的复杂变换来对信道的其它非理想特性进行建模分析。可见,高斯白噪声是无线信道随机非理想特性研究的重中之重,研究高斯白噪声理论及实现方法对无线信道特性建模、仿真及模拟均具有重要意义。Because wireless channel simulation technology can reproduce an ideal, degraded, or even near-real radio wave propagation environment on the ground, and simulate the impact of various time and space changes in the channel on signal propagation, it has long become an indispensable verification in the technical fields of communication, measurement and control, etc. means of testing. Compared with wired channels, wireless channels are a harsh medium for radio wave propagation, with complex characteristics such as randomness and unpredictability. In the process of channel transmission, radio waves will inevitably be affected by random non-ideal characteristics such as noise interference, channel fading, ionospheric scintillation, and dynamic rain attenuation. In order to study the impact of these non-ideal characteristics on radio wave propagation, domestic and foreign scholars usually use Gaussian white noise modeling as the basis, and then use various linear or nonlinear complex transformations to model and analyze other non-ideal characteristics of the channel. It can be seen that Gaussian white noise is the most important thing in the study of random non-ideal characteristics of wireless channels. The study of Gaussian white noise theory and implementation methods is of great significance to the modeling, simulation and simulation of wireless channel characteristics.

研究资料表明,高斯白噪声大多是通过一些算法对均匀分布的白噪声进行高斯化处理后产生得到。现阶段,均匀白噪声的产生方法主要包括线性同余算法、延迟斐波那契法、线性移位寄存器法及细胞自动机理论等。线性同余法与延迟斐波那契法相比,前者在随机数分布的均匀性、子序列依赖关系等性能测试中效果较差,但后者却需要较多的乘法器资源,FPGA(Field Programmable Gate Array)硬件资源消耗大。线性移位寄存器法是目前应用最广泛的一种方法,具有算法简单、速度快、可重复性强及易于FPGA硬件实现等突出优点。然而,由于该方法存在线性反馈结构,会导致其产生的伪随机数具有较强的相关性,均匀白噪声产生质量相对较差。相比而言,细胞自动机理论是近些年才用于均匀白噪声的产生,由于其产生的噪声具有周期长、速度快、统计特性好、实现占用硬件资源少等突出优点,一经问世就受到了国内外学者的广泛关注。Research data show that Gaussian white noise is mostly generated by Gaussian processing of uniformly distributed white noise through some algorithms. At present, the generation methods of uniform white noise mainly include linear congruence algorithm, delayed Fibonacci method, linear shift register method and cellular automata theory. Compared with the delayed Fibonacci method, the linear congruence method is less effective in performance tests such as the uniformity of random number distribution and subsequence dependencies, but the latter requires more multiplier resources. FPGA (Field Programmable Gate Array) consumes a lot of hardware resources. The linear shift register method is currently the most widely used method, which has outstanding advantages such as simple algorithm, fast speed, strong repeatability and easy FPGA hardware implementation. However, due to the linear feedback structure of this method, the generated pseudo-random numbers will have a strong correlation, and the quality of uniform white noise generation is relatively poor. In contrast, the cellular automata theory has only been used in the generation of uniform white noise in recent years. Because the noise it generates has outstanding advantages such as long period, fast speed, good statistical characteristics, and less hardware resources occupied, it has been widely used since it came out. It has received extensive attention from scholars at home and abroad.

在高斯白噪声生成算法方面,目前主要包括累积分布函数反变换法、拒绝-接受法及均匀白噪声变换法等。累积分布函数反变换法的基本思想是将任意给定随机变量的累积分布函数做反变化,从而得到该累积分布函数对应的随机变量。该方法直观、容易理解,但硬件实现时需要存储非线性高斯累积分布函数与高斯白噪声之间的映射关系,会不可避免地占用大量存储资源。拒绝-接收法的基本思想是根据某些给定的判别准则来确定所产生的随机变量是否属于高斯白噪声进而决定取舍。然而,由于该方法需要利用循环条件对输入变量进行判别,舍弃那些经转换后不能产生高斯白噪声的数据,因而其效率不高,并不适宜硬件实现。相比而言,均匀白噪声变换法无需求解累积分布函数的反变换,通过对均匀分布的白噪声进行直接变换来产生高斯白噪声。目前,这类方法应用最为广泛,主要包括Box-Muller算法、中心极限定理累加法、Monty Python算法及基于三角分布的分段近似法等。In terms of Gaussian white noise generation algorithms, it mainly includes cumulative distribution function inverse transformation method, rejection-acceptance method and uniform white noise transformation method. The basic idea of the cumulative distribution function inverse transformation method is to inversely change the cumulative distribution function of any given random variable, so as to obtain the random variable corresponding to the cumulative distribution function. This method is intuitive and easy to understand, but it needs to store the mapping relationship between nonlinear Gaussian cumulative distribution function and Gaussian white noise during hardware implementation, which will inevitably occupy a large amount of storage resources. The basic idea of the rejection-acceptance method is to determine whether the generated random variable belongs to Gaussian white noise according to some given criteria, and then decide whether to choose or not. However, since this method needs to use the loop condition to discriminate the input variables and discard the data that cannot produce Gaussian white noise after conversion, its efficiency is not high and it is not suitable for hardware implementation. In contrast, the uniform white noise transformation method does not need to solve the inverse transformation of the cumulative distribution function, and generates Gaussian white noise by directly transforming uniformly distributed white noise. At present, this kind of method is the most widely used, mainly including Box-Muller algorithm, central limit theorem accumulation method, Monty Python algorithm and segmental approximation method based on triangular distribution, etc.

在高斯白噪声发生器方面,早期的高斯白噪声发生器大多基于计算机软件进行实现,直到上个世纪八九十年代才陆续出现不同种类的高斯白噪声硬件发生器。例如,基于Ziggurat算法的高斯白噪声硬件发生器、基于Box-Muller算法的高斯白噪声硬件发生器及基于延迟斐波那契算法和中心极限定理的高斯白噪声硬件发生器等。然而,上述硬件发生器的研究重点主要在于如何以较低的FPGA资源消耗生成高质量的高斯白噪声,却忽略了高斯白噪声的生成速度。特别是,随着宽带、超宽带系统的不断问世,如何以较低的硬件资源消耗,实时地、高速地生成高质量的高斯白噪声显得至关重要。因此,研究高斯白噪声的高速、并行生成算法及硬件实现方法具有重要意义。In terms of Gaussian white noise generators, most of the early Gaussian white noise generators were implemented based on computer software. It was not until the 1980s and 1990s that different types of Gaussian white noise hardware generators appeared one after another. For example, Gaussian white noise hardware generator based on Ziggurat algorithm, Gaussian white noise hardware generator based on Box-Muller algorithm, Gaussian white noise hardware generator based on delayed Fibonacci algorithm and central limit theorem, etc. However, the research focus of the above-mentioned hardware generator is mainly on how to generate high-quality Gaussian white noise with low FPGA resource consumption, but the generation speed of Gaussian white noise is ignored. In particular, with the advent of broadband and ultra-wideband systems, how to generate high-quality white Gaussian noise in real time and at high speed with low hardware resource consumption is very important. Therefore, it is of great significance to study the high-speed, parallel generation algorithm and hardware implementation method of Gaussian white noise.

发明内容Contents of the invention

有鉴于此,本发明提供了一种实时高斯白噪声硬件发生器的并行实现方法,基于细胞自动机理论和Box_Muller算法,实现高斯白噪声硬件发生器的实时地、高速地、并行生成高质量的高斯白噪声。In view of this, the present invention provides a parallel implementation method of a real-time Gaussian white noise hardware generator, based on cellular automata theory and Box_Muller algorithm, realizes the real-time, high-speed, parallel generation of high-quality Gaussian white noise hardware generator Gaussian white noise.

本发明的实时高斯白噪声硬件发生器的并行实现方法,包括如下步骤:The parallel implementation method of the real-time Gaussian white noise hardware generator of the present invention comprises the following steps:

步骤1,选定细胞自动机规则为零边界90/150细胞自动机规则,在该规则下,根据拟生成高斯白噪声的周期长度计算获得细胞自动机的阶次M及两个互逆的规则向量d1和d2,其中,d1={d1(m),m=1,2,...,M}和d2={d2(m),m=1,2,...,M},规则向量中的元素d1(m)和d2(m)为0或1;Step 1, select the cellular automata rule as the zero-boundary 90/150 cellular automata rule, under this rule, calculate the order M of the cellular automata and two reciprocal rules according to the period length of the Gaussian white noise to be generated Vectors d 1 and d 2 , where d 1 ={d 1 (m),m=1,2,...,M} and d 2 ={d 2 (m),m=1,2,... .,M}, elements d 1 (m) and d 2 (m) in the regular vector are 0 or 1;

步骤2,设定细胞自动机的初始向量s0为s0={s0(m),m=1,2,3...,M},且初始向量为非零向量;其中,元素s0(m)为0或1;Step 2, set the initial vector s 0 of the cellular automaton as s 0 ={s 0 (m),m=1,2,3...,M}, and the initial vector is a non-zero vector; where, the element s 0 (m) is 0 or 1;

步骤3,在FPGA内部产生两组并行实现的均匀白噪声,具体包括如下子步骤:Step 3, generate two groups of parallel implementations of uniform white noise inside the FPGA, specifically including the following sub-steps:

步骤3.1,根据实际应用系统的采样频率fs和FPGA的工作时钟fclk,计算并行路数其中表示向上取整;Step 3.1, according to the sampling frequency f s of the actual application system and the working clock f clk of the FPGA, calculate the number of parallel channels in Indicates rounding up;

步骤3.2,根据规则向量d1和初始向量s0,得到规则向量d1下的并行各路的初始向量sp={sp(m),m=1,2,...,M},p=1,2,…,N;Step 3.2, according to the regular vector d 1 and the initial vector s 0 , obtain the initial vector s p ={s p (m),m=1,2,...,M} of the parallel paths under the regular vector d 1 , p=1,2,...,N;

其中,第1路初始向量s1中任意元素s1(m)为:Among them, any element s 1 (m) in the first initial vector s 1 is:

其中,符号表异或运算,m=1,2,3,...,M;s0(0)≡0,s0(M+1)≡0;Among them, the symbol Express XOR operation, m=1,2,3,...,M; s 0 (0)≡0, s 0 (M+1)≡0;

任意并行第p路初始向量sp中元素sp(m)为:The element s p (m) in the initial vector s p of any parallel path p is:

且sp(0)≡0和sp(M+1)≡0And s p (0)≡0 and s p (M+1)≡0

步骤3.3,同步骤3.2,根据规则向量d2和初始向量s0,得到规则向量d2下的并行各路的初始向量rp={rp(m),m=1,2,...,M},p=1,2,…,N;Step 3.3, same as step 3.2 , according to the rule vector d 2 and the initial vector s 0 , obtain the initial vector r p ={r p (m),m=1,2,... ,M}, p=1,2,...,N;

步骤3.4,根据零边界90/150细胞自动机规则,推导得到规则向量d1下的并行各路的递推函数f;其中,p=1,2,…,N;其中,为第p路、第n时刻的状态向量,为第p路、第n-1时刻的状态向量, Step 3.4, according to the zero-boundary 90/150 cellular automaton rule, deduce the recursive function f of each parallel path under the rule vector d 1 ; where, p=1,2,…,N; among them, is the state vector of the p-th road and the n-th moment, is the state vector of the pth road and the n-1th moment,

同样的,得到规则向量d2下的并行各路的递推函数g;其中,p=1,2,…,N;其中,为第p路、第n时刻的状态向量,为第p路、第n-1时刻的状态向量, Similarly, the recursive function g of each parallel path under the regular vector d 2 is obtained; where, p=1,2,…,N; among them, is the state vector of the p-th road and the n-th moment, is the state vector of the pth road and the n-1th moment,

步骤3.5,将步骤3.2产生的N个初始向量sp和步骤3.3产生的N个初始向量rp分别视为两组Mbit的二进制数,根据步骤3.4推导的递推函数关系f和g,在FPGA中并行生成2组N路均匀白噪声p=1,2,…,N;In step 3.5, the N initial vectors s p generated in step 3.2 and the N initial vectors r p generated in step 3.3 are respectively regarded as two sets of Mbit binary numbers, and according to the recursive function relationship f and g derived in step 3.4, in the FPGA Generate 2 sets of N-channel uniform white noise in parallel with p=1,2,...,N;

步骤4:生成并行N路的高斯白噪声,具体包括如下步骤:Step 4: Generate parallel N-way Gaussian white noise, specifically including the following steps:

步骤4.1,针对步骤3生成的第1组均匀白噪声采用非等间隔分段多项式拟合法对Box_Muller算法中的进行拟合,获得各非等间隔分段的拟合系数;将拟合系数量化后存储至FPGA内部存储器;在FPGA内部,根据已存储的拟合系数对步骤3并行产生的第1组Mbit均匀白噪声进行并行的多项式计算,并截取高Mbit作为中间结果 Step 4.1, for the first group of uniform white noise generated in step 3 Using non-equal interval piecewise polynomial fitting method for Box_Muller algorithm Fitting is performed to obtain the fitting coefficients of each non-equal interval segment; the fitting coefficients are quantized and stored in the internal memory of the FPGA; inside the FPGA, the first group of Mbits generated in parallel in step 3 are evenly distributed according to the stored fitting coefficients White Noise Perform parallel polynomial calculations and intercept high Mbit as intermediate results

步骤4.2,针对步骤3生成的第2组均匀白噪声根据Box_Muller算法中的公式y2=cosx2,在FPGA内部采用CORDIC IP核并行计算生成M bit中间结果 Step 4.2, for the second group of uniform white noise generated in step 3 According to the formula y 2 =cosx 2 in the Box_Muller algorithm, use the CORDIC IP core parallel calculation inside the FPGA to generate M bit intermediate results

步骤4.3:在FPGA内部并行生成第p路高斯白噪声gp(n),p=1,2,…,N:在第p路,将两个Mbit的相乘,并将乘积结果截取高M0bit作为最终生成的高斯白噪声gp(n);其中,M0为数/模转换器的有效位数;Step 4.3: Generate p-th Gaussian white noise g p (n) in parallel in the FPGA, p=1, 2,..., N: in the p-th path, two Mbit and Multiply, and intercept the high M 0 bit of the product result as the Gaussian white noise g p (n) that is finally generated; where M 0 is the effective number of digits of the digital-to-analog converter;

步骤5:对步骤4生成的N路高斯白噪声按顺序进行并-串转换处理后,经数模转换产生最终的高斯白噪声。Step 5: After parallel-to-serial conversion processing is performed on the N-channel Gaussian white noise generated in step 4, the final Gaussian white noise is generated through digital-to-analog conversion.

进一步地,所述步骤1中,规则向量由欧几里得算法或查表得到。Further, in the step 1, the rule vector is obtained by Euclidean algorithm or table lookup.

有益效果:Beneficial effect:

本发明对比已有技术,具有如下优点:Compared with the prior art, the present invention has the following advantages:

首先,提出了基于细胞自动机理论的均匀白噪声并行生成算法和基于FPGA的实现方法。在细胞自动机理论基础上,本发明根据需产生的均匀白噪声周期长度、实际系统的高速采样频率及FPGA低速工作时钟,给出了细胞自动机规则、阶次和并行路数的选取方法,推导了并行实现所需N路初始向量的计算方法以及细胞自动机并行生成算法的递推函数关系,最终给出了基于细胞自动机的均匀白噪声的FPGA高速并行实现方法。因此,本发明所提方法兼顾了细胞自动机理论生成均匀白噪声的诸多优点,如周期长、速度快、统计特性好、实现占用硬件资源少等,同时极大地提高了均匀白噪声的实时性和生成速度。Firstly, a parallel generation algorithm of uniform white noise based on cellular automata theory and an FPGA-based implementation method are proposed. On the basis of cellular automata theory, the present invention provides the selection method of cellular automata rule, order and number of parallel paths according to the period length of uniform white noise to be produced, the high-speed sampling frequency of the actual system and the low-speed working clock of FPGA. The calculation method of N-way initial vectors required for parallel implementation and the recursive function relationship of the parallel generation algorithm of cellular automata are deduced, and finally a high-speed parallel implementation method of FPGA based on uniform white noise of cellular automata is given. Therefore, the method proposed in the present invention takes into account many advantages of cellular automata theory to generate uniform white noise, such as long cycle, fast speed, good statistical characteristics, and less hardware resource occupation, etc., and greatly improves the real-time performance of uniform white noise and generation speed.

随后,给出了Box_Muller算法一种低复杂度的逼近方法。该方法采用非等间隔分段的多项式来逼近原始Box_Muller算法中的对数及开方运算,采用CORDIC算法进行Box_Muller算法中的cos运算。通过上述逼近,Box_Muller算法可简化为简单的乘加及CORDIC运算,FPGA实现时仅需耗费少量乘法器和逻辑资源,特别适用于高速、并行高斯白噪声的产生。Then, a low-complexity approximation method of Box_Muller algorithm is given. In this method, polynomials with non-equal intervals are used to approximate the logarithm and square root operations in the original Box_Muller algorithm, and the CORDIC algorithm is used to perform the cos operation in the Box_Muller algorithm. Through the above approximation, the Box_Muller algorithm can be simplified to simple multiplication and addition and CORDIC operations, and only a small amount of multipliers and logic resources are required for FPGA implementation. It is especially suitable for high-speed, parallel Gaussian white noise generation.

综上所述,本发明所提方法与现有高斯白噪声硬件发生器相比,可在较低的FPGA资源消耗下,实时地、高速地生成周期长、带宽大、质量好的高斯白噪声。In summary, compared with the existing Gaussian white noise hardware generator, the method proposed in the present invention can generate Gaussian white noise with long period, large bandwidth and good quality in real time and at high speed with lower FPGA resource consumption .

附图说明Description of drawings

图1为任意并行第p路中间结果1计算实现结构。Fig. 1 is the realization structure of calculation of the intermediate result 1 of any parallel path p.

图2为本发明高斯白噪声硬件发生器的结构框图。Fig. 2 is a structural block diagram of the Gaussian white noise hardware generator of the present invention.

具体实施方式detailed description

下面结合附图并举实施例,对本发明进行详细描述。The present invention will be described in detail below with reference to the accompanying drawings and examples.

本发明提供了一种实时高斯白噪声硬件发生器的并行实现方法,基于细胞自动机理论和Box_Muller算法,可以在FPGA上并行、实时、高速地生成高质量的高斯白噪声。本发明首先根据噪声周期长度、实际系统的高速采样频率及FPGA低速工作时钟等,确定细胞自动机的阶次、规则和并行路数;随后,根据细胞自动机阶次和规则,采用欧几里得算法或查表得到两个互逆的规则向量;同时,根据细胞自动机理论,由任意设定的非零初始向量推导并行实现时所需的N路初始向量及函数递推关系,并在FPGA内部生成两组均匀白噪声;最后,采用非等间隔多项式拟合和CORDIC算法逼近Box_Muller算法,对并行产生的两组均匀白噪声进行高斯化处理,后经并-串转换及D/A外放即产生最终的高斯白噪声。The invention provides a parallel implementation method of a real-time Gaussian white noise hardware generator. Based on cellular automata theory and Box_Muller algorithm, high-quality Gaussian white noise can be generated in parallel, in real time and at high speed on FPGA. The present invention first determines the order, rules and parallel paths of the cellular automata according to the length of the noise cycle, the high-speed sampling frequency of the actual system, and the low-speed working clock of the FPGA; Two reciprocal regular vectors are obtained by the algorithm or table lookup; at the same time, according to the theory of cellular automata, the N-way initial vectors and function recursion relations required for parallel implementation are deduced from the arbitrarily set non-zero initial vectors, and in FPGA internally generates two sets of uniform white noise; finally, adopts non-equal interval polynomial fitting and CORDIC algorithm to approximate the Box_Muller algorithm, performs Gaussian processing on the two sets of uniform white noise generated in parallel, and then performs parallel-serial conversion and D/A external Play to produce the final white Gaussian noise.

具体步骤如下:Specific steps are as follows:

步骤1:根据需要产生高斯白噪声的周期长度,确定细胞自动机的规则和阶次。Step 1: Determine the rules and orders of the cellular automaton according to the period length of Gaussian white noise that needs to be generated.

设需要产生高斯白噪声的周期长度为L,为了以较低的细胞自动机阶次生成较长周期的均匀白噪声,本发明选择零边界90/150细胞自动机规则。在此细胞自动机规则下,阶次M按下式计算:Assuming that the length of the cycle that needs to generate Gaussian white noise is L, in order to generate uniform white noise with a longer cycle with a lower cellular automaton order, the present invention chooses the zero-boundary 90/150 cellular automaton rule. Under this cellular automaton rule, the order M is calculated as follows:

其中,表示向上取整操作。in, Indicates a round up operation.

步骤2:根据步骤1确定的零边界90/150细胞自动机规则和阶次M,可以由欧几里得算法或查表得到M阶细胞自动机的两个互逆的规则向量,分别记作:d1={d1(m),m=1,2,...,M}和d2={d2(m),m=1,2,...,M},其中规则向量中元素只存在0和1两种可能,即d1(m)∈{0,1}和d2(m)∈{0,1}。Step 2: According to the zero-boundary 90/150 cellular automaton rule and order M determined in step 1, two reciprocal rule vectors of M-order cellular automata can be obtained by Euclid algorithm or table lookup, which are denoted as : d 1 ={d 1 (m),m=1,2,...,M} and d 2 ={d 2 (m),m=1,2,...,M}, where the regular vector There are only two possible elements, 0 and 1, namely d 1 (m)∈{0,1} and d 2 (m)∈{0,1}.

步骤3:设定任意M个元素的非零向量作为细胞自动机的初始向量,其中每个元素只有0或1两种取值,记作s0={s0(m),m=1,2,3...,M},其中m表示向量中元素的位置,且存在s0(m)∈{0,1}。Step 3: Set any non-zero vector of M elements as the initial vector of the cellular automaton, where each element has only two values of 0 or 1, denoted as s 0 ={s 0 (m),m=1, 2,3...,M}, where m represents the position of the element in the vector, and there exists s 0 (m)∈{0,1}.

步骤4:根据细胞自动机规则、阶次M、规则向量d1和d2、初始向量s0,推导细胞自动机的并行实现算法,并在FPGA内部产生两组并行实现的均匀白噪声。Step 4: According to the rules of cellular automata, order M, rule vectors d 1 and d 2 , and initial vector s 0 , deduce the parallel realization algorithm of cellular automata, and generate two sets of parallel realization uniform white noise inside FPGA.

具体如下:details as follows:

步骤4.1:根据实际应用系统的采样频率fs和FPGA硬件实现欲采用的工作时钟fclk,计算并行路数其中表示向上取整操作。Step 4.1: Calculate the number of parallel channels according to the sampling frequency f s of the actual application system and the working clock f clk to be adopted by the FPGA hardware in Indicates a round up operation.

步骤4.2:根据规则向量d1和初始向量s0,按细胞自动机理论递推生成并行实现所需的第1组N个初始向量,记为sp={sp(m),m=1,2,...,M;p=1,2,...,N},其中m∈[1,M]表示向量中元素的位置,p∈[1,N]表示并行路数。Step 4.2: According to the regular vector d 1 and the initial vector s 0 , recursively generate the first group of N initial vectors required for parallel implementation according to the cellular automata theory, denoted as s p ={s p (m),m=1 ,2,...,M; p=1,2,...,N}, where m∈[1,M] represents the position of the element in the vector, and p∈[1,N] represents the number of parallel paths.

该分步骤具体原理如下:The specific principles of the sub-steps are as follows:

根据细胞自动机理论,并行第p=1路的初始向量s1中任意元素s1(m)可由规则向量d1和初始向量s0中元素按下式计算:According to the theory of cellular automata, any element s 1 (m) in the initial vector s 1 of the parallel path p=1 can be calculated from the regular vector d 1 and the elements in the initial vector s 0 according to the following formula:

其中,符号表异或运算,向量元素位置m=1,2,3,...,M。根据零边界90/150细胞自动机规则,存在s0(0)≡0和s0(M+1)≡0。Among them, the symbol Indicates XOR operation, vector element position m=1,2,3,...,M. According to the zero-boundary 90/150 cellular automata rule, there exist s 0 (0)≡0 and s 0 (M+1)≡0.

同理,任意并行第p路初始向量sp中元素可由第p-1路初始向量sp-1中元素和规则向量d1按下式计算:Similarly, the elements in the initial vector s p of any parallel path p can be calculated from the elements in the initial vector s p - 1 of the p-1th path and the regular vector d 1 according to the following formula:

其中,p=2,3,...,N,存在sp(0)≡0和sp(M+1)≡0。Wherein, p =2, 3, . . . , N, sp (0) ≡0 and sp (M+1)≡0 exist.

因此,根据规则向量d1和初始向量s0,由(2)和(3)式即可递推得到并行实现所需的N个初始向量sp={sp(m),m=1,2,...,M,p=1,2,...,N}。Therefore, according to the regular vector d 1 and the initial vector s 0 , the N initial vectors s p ={s p (m),m=1, 2,...,M,p=1,2,...,N}.

步骤4.3:同理,根据规则向量d2和初始向量s0,按细胞自动机理论递推生成并行实现所需的第2组N个初始向量,记为rp={rp(m),m=1,2,...,M;p=1,2,...,N},其中m∈[1,M]表示向量中元素的位置,p∈[1,N]表示并行路数。Step 4.3: Similarly, according to the regular vector d 2 and the initial vector s 0 , recursively generate the second group of N initial vectors required for parallel implementation according to the cellular automata theory, denoted as r p ={r p (m), m=1,2,...,M; p=1,2,...,N}, where m∈[1,M] represents the position of the element in the vector, p∈[1,N] represents the parallel path number.

值得说明的是,步骤4.3原理与步骤4.2原理相同,差别仅在于所用的规则向量不同。即是说,第p=1路初始向量r1中任意元素可按下式计算:It is worth noting that the principle of step 4.3 is the same as that of step 4.2, the only difference is that the rule vectors used are different. That is to say, any element in the p=1th initial vector r 1 can be calculated as follows:

任意第p路初始向量rp中元素为The elements in the initial vector r p of any p-th road are

其中,p=2,3,...,N,存在rp(0)≡0和rp(M+1)≡0。Wherein, p=2, 3, . . . , N, r p (0)≡0 and r p (M+1)≡0 exist.

步骤4.4:根据零边界90/150细胞自动机规则,推导并行实现时规则向量d1、d2下的任意第p路的函数递推关系cp(n)=f(cp(n-1))。Step 4.4: According to the zero-boundary 90/150 cellular automata rule, deduce the function recurrence relation c p (n)=f(c p ( n - 1 )).

该分步骤原理如下:The sub-step principle is as follows:

以规则向量d1对应的第1组数据为例:Take the first group of data corresponding to the regular vector d 1 as an example:

根据细胞自动机理论,任意第n时刻状态向量s(n)={s(m,n),m=1,...,M;n=0,1,...}中任意元素s(m,n)可在零边界90/150规则下,按下式计算:According to the theory of cellular automata, any element s ( m,n) can be calculated according to the following formula under the zero boundary 90/150 rule:

其中,d(m)为任意规则向量d中元素。Among them, d(m) is an element in any regular vector d.

考虑到任意规则向量d为已知量且仅存在0或1两种取值,因此按(6)式递推1次,可得Considering that any regular vector d is a known quantity and only has two values of 0 or 1, it can be recursed once according to formula (6), and it can be obtained

即是说,第n+1时刻的状态向量s(n+1)与规则向量无关,可由第n时刻状态向量s(n)按固定的函数关系f1表示,记为s(n+1)=f1(s(n))。That is to say, the state vector s(n+1) at the n+1th moment has nothing to do with the regular vector, and can be expressed by the fixed functional relationship f 1 by the state vector s(n) at the nth moment, denoted as s(n+1) = f 1 (s(n)).

同理,根据(6)(7)两式再次进行递推,可得s(n+2)和s(n)确定的函数关系f2,记为s(n+2)=f2(s(n))。In the same way, according to (6) (7) and recursion, the functional relationship f 2 determined by s(n+2) and s(n) can be obtained, which is recorded as s(n+2)=f 2 (s (n)).

依次类推,当递推N次后,可得And so on, after recursing N times, we can get

s(n+N)=f(s(n)) (8)s(n+N)=f(s(n)) (8)

即是说,根据确定的函数关系f可由第n时刻的状态向量s(n)直接计算得到第n+N时刻的状态向量s(n+N)。That is to say, according to the determined functional relationship f, the state vector s(n+N) at the n+Nth time can be directly calculated from the state vector s(n) at the nth time.

考虑到细胞自动机若由N路并行实现,则任意第p路、第n时刻并行实现细胞自动机所产生的状态向量cp(n)={cp(m,n),m=1,...,M;n=0,1,...}应对应原始串行细胞自动机(6)式产生的第N×(n-1)+p时刻的状态向量。即是说,存在如下关系:Considering that if the cellular automaton is realized by N paths in parallel, the state vector c p (n)={c p (m,n),m=1, ...,M; n=0,1,...} should correspond to the state vector at the N×(n-1)+p moment generated by the original serial cellular automaton (6). That is, the following relationship exists:

根据(8)和(9)式可知,等号右边状态向量满足:According to equations (8) and (9), the state vector on the right side of the equal sign satisfies:

s(N×(n-1)+p)=f(s(N×(n-2)+p))s(N×(n-1)+p)=f(s(N×(n-2)+p))

这样并行实现的状态向量cp(n)和cp(n-1)同样存在:The state vectors c p (n) and c p (n-1) realized in parallel in this way also exist:

cp(n)=f(cp(n-1)) (10)c p (n) = f(c p (n-1)) (10)

即是说,任意第p路、第n时刻的状态向量cp(n)可由前一时刻的状态向量cp(n-1)按统一的函数关系f进行计算,cp(0)=spThat is to say, the state vector c p (n) of any p-th road and the n-th moment can be calculated from the state vector c p (n-1) of the previous moment according to the unified functional relationship f, c p (0)=s p .

同样的,可以获得规则向量d2下的并行各路的递推函数g;其中,p=1,2,…,N;其中,为第p路、第n时刻的状态向量,为第p路、第n-1时刻的状态向量, Similarly, the recursive function g of each parallel path under the regular vector d 2 can be obtained; where, p=1,2,…,N; among them, is the state vector of the p-th road and the n-th moment, is the state vector of the pth road and the n-1th moment,

步骤4.5:将步骤4.2产生的含M个0,1元素的第1组N个初始向量sp视为Mbit二进制数,根据步骤4.4推导的递推函数关系f,在FPGA中并行生成第1组N路均匀白噪声。Step 4.5: Treat the first group of N initial vectors s p containing M 0, 1 elements generated in step 4.2 as Mbit binary numbers, and generate the first group in FPGA in parallel according to the recursive function relationship f derived in step 4.4 N-way uniform white noise.

该分步骤原理如下:The sub-step principle is as follows:

若设为任意第p路、第n时刻产生的第1组状态向量,则可按下式递推得到:If set is the first group of state vectors generated by any p-th road and n-th moment, then It can be recursively obtained as follows:

其中,上标“1”表示第1组,n=1,...,∞,p=1,...,N。Among them, the superscript "1" indicates the first group, n=1,...,∞, p=1,...,N.

具体FPGA实现时,先将状态向量中M个0,1元素看作Mbit二进制数,再按(11)式确定的函数关系f进行递推,由此即可得到第1组并行产生的Mbit均匀白噪声值,重记为p=1,2,...,N;n=1,2,...。When the specific FPGA is implemented, the state vector is first The M elements of 0 and 1 are regarded as Mbit binary numbers, and then deduced according to the functional relationship f determined by (11), so that the Mbit uniform white noise value generated in parallel by the first group can be obtained, which is rewritten as p=1,2,...,N; n=1,2,....

步骤4.6:在步骤4.5进行的同时,将步骤4.3产生的含M个0,1元素的初始向量rp看作Mbit二进制数,根据步骤4.4推导的递推函数关系g,在FPGA中并行生成第2组N路均匀白噪声。Step 4.6: While step 4.5 is in progress, regard the initial vector r p containing M 0, 1 elements generated in step 4.3 as an Mbit binary number, and according to the recursive function relationship g derived in step 4.4, generate the first 2 sets of N-channel uniform white noise.

该分步骤原理如下:The sub-step principle is as follows:

若设为任意第p路、第n时刻产生的第2组均匀白噪声,则可按下式递推得到:If set is the second group of uniform white noise generated by any p-th channel and n-th moment, then It can be recursively obtained as follows:

其中,上标“2”表示第2组,p=1,...,N。Among them, the superscript "2" indicates the second group, p=1,...,N.

若将状态向量中M个0,1元素看作Mbit二进制数,由此即得第2组第n时刻产生的均匀白噪声值,重记为p=1,2,...,N;n=1,2,...。If the state vector M elements of 0 and 1 in Mbit are regarded as Mbit binary numbers, and thus the uniform white noise value generated at the nth moment of the second group can be obtained, which can be rewritten as p=1,2,...,N; n=1,2,....

步骤5:采用非等间隔分段多项式拟合法和CORDIC(Coordinate RotationalDigital Computer,坐标旋转数字计算)算法对Box_Muller算法进行逼近,在FPGA内部对步骤4并行产生的2组均匀白噪声进行高斯化处理,生成N路并行高斯白噪声,记作gp(n),p=1,2,...,N;n=1,2,...。Step 5: Approximate the Box_Muller algorithm by using non-equal interval segmental polynomial fitting method and CORDIC (Coordinate Rotational Digital Computer, coordinate rotation digital calculation) algorithm, and perform Gaussian processing on the two groups of uniform white noise generated in parallel in step 4 inside the FPGA, Generate N channels of parallel Gaussian white noise, denoted as g p (n), p=1,2,...,N; n=1,2,....

Box_Muller算法公式如下:The Box_Muller algorithm formula is as follows:

其中,x1和x2为(0,1)上均匀分布的白噪声,且存在x1∈(0,1)和x2∈(0,1),y为高斯白噪声。Among them, x 1 and x 2 are uniformly distributed white noise on (0,1), and there are x 1 ∈ (0,1) and x 2 ∈ (0,1), and y is Gaussian white noise.

步骤5.1:根据步骤4生成的第1组均匀白噪声采用非等间隔分段多项式拟合法在FPGA内部并行计算由M bit表示的中间结果,记为:Step 5.1: The first group of uniform white noise generated according to step 4 Using the non-equal interval piecewise polynomial fitting method to calculate the intermediate results represented by M bits in parallel within the FPGA, which is recorded as:

该分步骤具体原理如下:The specific principles of the sub-steps are as follows:

根据Box_Muller算法可知,中间结果y1的计算涉及到自然对数及开方运算。显然,若采用传统的直接查表会不可避免地消耗FPGA内部大量的存储资源。为此,本发明采用非等间隔分段多项式拟合法来计算自然对数及开方运算。According to the Box_Muller algorithm, the calculation of the intermediate result y 1 involves natural logarithm and square root operation. Obviously, if the traditional direct table lookup is adopted, a large amount of storage resources inside the FPGA will inevitably be consumed. For this reason, the present invention adopts non-equal interval piecewise polynomial fitting method to calculate natural logarithm and square root operation.

根据分段多项式拟合的精度要求,对x1∈(0,1)区间进行非等间隔划分,共划分为K段,记为x1∈(qk,qk+1),其中k=0,1,...,K-1,且存在q0=0和qK=1。对于任意第k个分段而言,采用(14)式所示的三次多项式对函数关系进行逼近,即According to the accuracy requirement of piecewise polynomial fitting, the x 1 ∈ (0,1) interval is divided into non-equal intervals, and it is divided into K segments in total, denoted as x 1 ∈ (q k ,q k+1 ), where k= 0,1,...,K−1, and there exist q 0 =0 and q K =1. For any k-th segment, the cubic polynomial pair function relationship shown in (14) is adopted make an approximation, that is,

根据函数关系在x1∈(qk,qk+1)区间内对x1和y1进行四点等间隔采样,由(14)式建立如下线性方程组:According to the functional relationship In the interval of x 1 ∈ (q k ,q k+1 ), sample x 1 and y 1 at four points at equal intervals, and establish the following linear equations by formula (14):

XkAk=Yk (15)X k A k = Y k (15)

其中,列向量Ak=[ak bk ck dk]T,Yk=[yk1 yk2 yk3 yk4]T,且存在Among them, column vector A k =[a k b k c k d k ] T , Y k =[y k1 y k2 y k3 y k4 ] T , and there exists

求解上述线性方程组得到任意第k个分段的多项式拟合系数Ak,这样任意x1∈(qk,qk+1)分段内的函数值即可由当前分段内的多项式拟合系数Ak和x1按(14)式计算得到。Solve the above linear equations to obtain the polynomial fitting coefficient A k of any k-th segment, so that the function value in any x 1 ∈ (q k ,q k+1 ) segment It can be calculated from the polynomial fitting coefficients A k and x 1 in the current segment according to formula (14).

考虑到FPGA具体实现时需进行量化处理,为此可先对K个非等间隔分段的拟合系数{Ak,k=0,1,...,K-1}按(17)式进行量化并存储至FPGA内部存储器,即Considering that quantization processing is required for the actual implementation of FPGA, the fitting coefficients {A k ,k=0,1,...,K-1} of K non-equally spaced segments can be calculated according to formula (17) Quantized and stored in FPGA internal memory, namely

其中,为量化后的多项式拟合系数,k∈[0,K-1],N1为扩位位数,int[·]表示四舍五入操作,最终量化为M1bit有符号数(小数部分位数为N1bit)。in, is the polynomial fitting coefficient after quantization, k∈[0,K-1], N 1 is the number of digits of expansion, int[ ] means rounding operation, The final quantization is M 1 bit signed number (the number of decimal places is N 1 bit).

这样,根据步骤4并行产生的第1组Mbit均匀白噪声和已存储的拟合系数即可在FPGA内部并行计算中间结果 In this way, according to the first group of Mbit uniform white noise generated in parallel in step 4 and the stored fit coefficients The intermediate results can be calculated in parallel within the FPGA

以任意第p路中间结果计算为例,FPGA实现结构如图1所示。Taking the calculation of the intermediate result of any p-th path as an example, the FPGA implementation structure is shown in Figure 1.

首先,拟合系数查找表模块根据均匀白噪声查表选出所用的多项式系数。对于任意k0∈[0,K-1],若均匀白噪声满足:First, the fitting coefficient lookup table module is based on the uniform white noise A look-up table selects the polynomial coefficients used. For any k 0 ∈[0,K-1], if the uniform white noise Satisfy:

则拟合系数查找表模块选择输出第k=k0个分段的拟合系数 Then the fitting coefficient lookup table module selects and outputs the kth=k 0 segment The fitting coefficient of

随后,三阶多项式计算模块根据均匀白噪声和拟合系数按下式计算即可得到本分步骤所需的中间结果Subsequently, the third-order polynomial calculation module is based on the uniform white noise and fit coefficient The intermediate result required for this sub-step can be obtained by calculating according to the formula which is

其中,表向下取整操作。上式计算的中间过程不进行截位处理,计算结果截掉低M2bit、保留高Mbit作为最终Box_Muller算法的中间结果输出。in, Table rounding down operation. The intermediate process of the calculation of the above formula does not perform truncation processing, the calculation result cuts off the low M 2 bits, and retains the high M bits as the final intermediate result of the Box_Muller algorithm output.

步骤5.2:根据步骤4并行产生的第2组Mbit均匀白噪声在FPGA内部采用坐标旋转数字计算(CORDIC-Coordinate Rotational Digital Computer)IP核并行计算cos函数,并按下式自动计算生成Mbit中间结果Step 5.2: The second group of Mbit uniform white noise generated in parallel according to step 4 The CORDIC-Coordinate Rotational Digital Computer (CORDIC-Coordinate Rotational Digital Computer) IP core is used to calculate the cos function in parallel in the FPGA, and the Mbit intermediate result is automatically calculated according to the following formula which is

其中,上标“2”表示第2组中间结果,int[·]表示四舍五入操作,且p∈[1,N],n∈[1,∞)。Among them, the superscript "2" indicates the intermediate result of the second group, int[·] indicates the rounding operation, and p∈[1,N],n∈[1,∞).

值得说明的是,FPGA内部实现时,均匀白噪声量化为M bit无符号数作为CORDICIP核的相位输入,IP核的输出直接量化为M bit有符号数。It is worth noting that when the FPGA is internally implemented, the uniform white noise is quantized into an M bit unsigned number as the phase input of the CORDICIP core, and the output of the IP core Directly quantized to M bit signed number.

步骤5.3:根据步骤5.1和5.2产生的M bit中间结果在FPGA内部按下式计算产生N路并行高斯白噪声,即Step 5.3: M bit intermediate results generated according to steps 5.1 and 5.2 with In the FPGA, the following formula is used to generate N-channel parallel Gaussian white noise, namely

其中,p∈[1,N],n∈[1,∞)。计算时,两个Mbit有符号数相乘,将结果截掉低M3bit、保留高M0bit作为最终生成的高斯白噪声gp(n)。其中,M0为D/A的有效位数,且存在M3=M+M-M0Among them, p ∈ [1, N], n ∈ [1, ∞). When calculating, two Mbit signed numbers and Multiply, cut off the low M 3 bits and keep the high M 0 bits as the final Gaussian white noise g p (n). Wherein, M 0 is the effective number of digits of D/A, and M 3 =M+MM 0 exists.

可见,经过步骤5.1至5.3,本发明采用非等间隔分段多项式拟合法和CORDUC算法对Box_Muller算法进行了逼近,并对步骤4并行生成的两组M bit均匀白噪声进行了高斯化处理,在FPGA内部并行产生了N路M0bit的高斯白噪声。It can be seen that after steps 5.1 to 5.3, the present invention uses the non-equal interval segmental polynomial fitting method and the CORDUC algorithm to approximate the Box_Muller algorithm, and the two groups of M bit uniform white noise generated in parallel in step 4 with Gaussian processing is carried out, and Gaussian white noise of N channels M 0 bits is generated in parallel in the FPGA.

步骤6:对步骤5生成的N路高斯白噪声按顺序进行并-串转换处理后,经D/A外放产生最终的高斯白噪声。Step 6: Perform parallel-to-serial conversion processing on the N-channel Gaussian white noise generated in step 5 in sequence, and then output the final Gaussian white noise through D/A.

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。To sum up, the above are only preferred embodiments of the present invention, and are not intended to limit the protection scope of the present invention. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present invention shall be included within the protection scope of the present invention.

Claims (2)

1.一种实时高斯白噪声硬件发生器的并行实现方法,其特征在于,包括如下步骤:1. a parallel implementation method of real-time Gaussian white noise hardware generator, is characterized in that, comprises the steps: 步骤1,选定细胞自动机规则为零边界90/150细胞自动机规则,在该规则下,根据拟生成高斯白噪声的周期长度计算获得细胞自动机的阶次M及两个互逆的规则向量d1和d2,其中,d1={d1(m),m=1,2,...,M}和d2={d2(m),m=1,2,...,M},规则向量中的元素d1(m)和d2(m)为0或1;Step 1, select the cellular automata rule as the zero-boundary 90/150 cellular automata rule, under this rule, calculate the order M of the cellular automata and two reciprocal rules according to the period length of the Gaussian white noise to be generated Vectors d 1 and d 2 , where d 1 ={d 1 (m),m=1,2,...,M} and d 2 ={d 2 (m),m=1,2,... .,M}, elements d 1 (m) and d 2 (m) in the regular vector are 0 or 1; 步骤2,设定细胞自动机的初始向量s0为s0={s0(m),m=1,2,3...,M},且初始向量为非零向量;其中,元素s0(m)为0或1;Step 2, set the initial vector s 0 of the cellular automaton as s 0 ={s 0 (m),m=1,2,3...,M}, and the initial vector is a non-zero vector; where, the element s 0 (m) is 0 or 1; 步骤3,在FPGA内部产生两组并行实现的均匀白噪声,具体包括如下子步骤:Step 3, generate two groups of parallel implementations of uniform white noise inside the FPGA, specifically including the following sub-steps: 步骤3.1,根据实际应用系统的采样频率fs和FPGA的工作时钟fclk,计算并行路数其中表示向上取整;Step 3.1, according to the sampling frequency f s of the actual application system and the working clock f clk of the FPGA, calculate the number of parallel channels in Indicates rounding up; 步骤3.2,根据规则向量d1和初始向量s0,得到规则向量d1下的并行各路的初始向量sp={sp(m),m=1,2,...,M},p=1,2,…,N;Step 3.2, according to the regular vector d 1 and the initial vector s 0 , obtain the initial vector s p ={s p (m),m=1,2,...,M} of the parallel paths under the regular vector d 1 , p=1,2,...,N; 其中,第1路初始向量s1中任意元素s1(m)为:Among them, any element s 1 (m) in the first initial vector s 1 is: sthe s 11 (( mm )) == sthe s 00 (( mm -- 11 )) ⊕⊕ [[ dd 11 (( mm )) ×× sthe s 00 (( mm )) ]] ⊕⊕ sthe s 00 (( mm ++ 11 )) 其中,符号表异或运算,m=1,2,3,...,M;s0(0)≡0,s0(M+1)≡0;Among them, the symbol Express XOR operation, m=1,2,3,...,M; s 0 (0)≡0, s 0 (M+1)≡0; 任意并行第p路初始向量sp中元素sp(m)为:The element s p (m) in the initial vector s p of any parallel path p is: sthe s pp (( mm )) == sthe s pp -- 11 (( mm -- 11 )) ⊕⊕ [[ dd 11 (( mm )) ×× sthe s pp -- 11 (( mm )) ]] ⊕⊕ sthe s pp -- 11 (( mm ++ 11 )) ,, pp == 22 ,, 33 ,, ...... ,, NN 且sp(0)≡0和sp(M+1)≡0And s p (0)≡0 and s p (M+1)≡0 步骤3.3,同步骤3.2,根据规则向量d2和初始向量s0,得到规则向量d2下的并行各路的初始向量rp={rp(m),m=1,2,...,M},p=1,2,…,N;Step 3.3, same as step 3.2 , according to the rule vector d 2 and the initial vector s 0 , obtain the initial vector r p ={r p (m),m=1,2,... ,M}, p=1,2,...,N; 步骤3.4,根据零边界90/150细胞自动机规则,推导得到规则向量d1下的并行各路的递推函数f;其中,p=1,2,…,N;其中,为第p路、第n时刻的状态向量,为第p路、第n-1时刻的状态向量, Step 3.4, according to the zero-boundary 90/150 cellular automaton rule, deduce the recursive function f of each parallel path under the rule vector d 1 ; where, p=1,2,…,N; among them, is the state vector of the p-th road and the n-th moment, is the state vector of the pth road and the n-1th moment, 同样的,得到规则向量d2下的并行各路的递推函数g;其中,p=1,2,…,N;其中,为第p路、第n时刻的状态向量,为第p路、第n-1时刻的状态向量, Similarly, the recursive function g of each parallel path under the regular vector d 2 is obtained; where, p=1,2,…,N; among them, is the state vector of the p-th road and the n-th moment, is the state vector of the pth road and the n-1th moment, 步骤3.5,将步骤3.2产生的N个初始向量sp和步骤3.3产生的N个初始向量rp分别视为两组Mbit的二进制数,根据步骤3.4推导的递推函数关系f和g,在FPGA中并行生成2组N路均匀白噪声p=1,2,…,N;In step 3.5, the N initial vectors s p generated in step 3.2 and the N initial vectors r p generated in step 3.3 are respectively regarded as two sets of Mbit binary numbers, and according to the recursive function relationship f and g derived in step 3.4, in the FPGA Generate 2 groups of N-channel uniform white noise in parallel with p=1,2,...,N; 步骤4:生成并行N路的高斯白噪声,具体包括如下步骤:Step 4: Generate parallel N-way Gaussian white noise, specifically including the following steps: 步骤4.1,针对步骤3生成的第1组均匀白噪声采用非等间隔分段多项式拟合法对Box_Muller算法中的进行拟合,获得各非等间隔分段的拟合系数;将拟合系数量化后存储至FPGA内部存储器;在FPGA内部,根据已存储的拟合系数对步骤3并行产生的第1组M bit均匀白噪声进行并行的多项式计算,并截取高M bit作为中间结果 Step 4.1, for the first group of uniform white noise generated in step 3 Using non-equal interval piecewise polynomial fitting method for Box_Muller algorithm Perform fitting to obtain the fitting coefficients of each non-equal interval segment; quantize the fitting coefficients and store them in the internal memory of the FPGA; inside the FPGA, the first group of M bits generated in parallel in step 3 according to the stored fitting coefficients uniform white noise Perform parallel polynomial calculations and intercept high M bits as intermediate results 步骤4.2,针对步骤3生成的第2组均匀白噪声根据Box_Muller算法中的公式y2=cosx2,在FPGA内部采用CORDIC IP核并行计算生成M bit中间结果 Step 4.2, for the second group of uniform white noise generated in step 3 According to the formula y 2 =cosx 2 in the Box_Muller algorithm, use the CORDIC IP core parallel calculation inside the FPGA to generate M bit intermediate results 步骤4.3:在FPGA内部并行生成第p路高斯白噪声gp(n),p=1,2,…,N:在第p路,将两个Mbit的相乘,并将乘积结果截取高M0bit作为最终生成的高斯白噪声gp(n);其中,M0为数/模转换器的有效位数;Step 4.3: Generate p-th Gaussian white noise g p (n) in parallel in the FPGA, p=1, 2,..., N: in the p-th path, two Mbit and Multiply, and intercept the high M 0 bit of the product result as the Gaussian white noise g p (n) that is finally generated; where M 0 is the effective number of digits of the digital-to-analog converter; 步骤5:对步骤4生成的N路高斯白噪声按顺序进行并-串转换处理后,经数模转换产生最终的高斯白噪声。Step 5: After parallel-to-serial conversion processing is performed on the N-channel Gaussian white noise generated in step 4, the final Gaussian white noise is generated through digital-to-analog conversion. 2.如权利要求1所述的实时高斯白噪声硬件发生器的并行实现方法,其特征在于,所述步骤1中,规则向量由欧几里得算法或查表得到。2. the parallel realization method of real-time Gaussian white noise hardware generator as claimed in claim 1, is characterized in that, in described step 1, regular vector obtains by Euclidean algorithm or look-up table.
CN201611052554.1A 2016-11-24 2016-11-24 A kind of Parallel Implementation method of real-time white Gaussian noise hardware generator Pending CN106774624A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611052554.1A CN106774624A (en) 2016-11-24 2016-11-24 A kind of Parallel Implementation method of real-time white Gaussian noise hardware generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611052554.1A CN106774624A (en) 2016-11-24 2016-11-24 A kind of Parallel Implementation method of real-time white Gaussian noise hardware generator

Publications (1)

Publication Number Publication Date
CN106774624A true CN106774624A (en) 2017-05-31

Family

ID=58912379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611052554.1A Pending CN106774624A (en) 2016-11-24 2016-11-24 A kind of Parallel Implementation method of real-time white Gaussian noise hardware generator

Country Status (1)

Country Link
CN (1) CN106774624A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108390648A (en) * 2018-01-16 2018-08-10 四川安迪科技实业有限公司 A kind of Gaussian white noise generator based on FPGA
CN110096677A (en) * 2019-05-08 2019-08-06 广西大学 A kind of quick calculation method and system of the high-order differentiable functions based on probability calculation
RU2723271C1 (en) * 2019-10-01 2020-06-09 Акционерное общество "Концерн "Созвездие" Method for generation of digital white gaussian noise using the wallace method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5063351A (en) * 1990-09-24 1991-11-05 Bell Communications Research, Inc. Digital signal processing relating to near-end crosstalk cable measurements
CN101807880A (en) * 2009-12-17 2010-08-18 北京交通大学 Gaussian white noise generator and implement method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5063351A (en) * 1990-09-24 1991-11-05 Bell Communications Research, Inc. Digital signal processing relating to near-end crosstalk cable measurements
CN101807880A (en) * 2009-12-17 2010-08-18 北京交通大学 Gaussian white noise generator and implement method thereof

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
YANG ZHOU 等: "Parallel Gaussian White Noise Generator based on Cellular Automaton Theory and Box Muller Algorithm", 《2014 INTERNATIONAL CONFERENCE ON WIRELESS COMMUNICATION AND SENSOR NETWORK》 *
王宁: "无线信道衰落特性模拟技术研究及实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
王钿 等: "《基于Verilog HDL的数字系统应用设计》", 31 August 2007 *
钱柳羲: "高斯随机数发生器的研究与设计", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108390648A (en) * 2018-01-16 2018-08-10 四川安迪科技实业有限公司 A kind of Gaussian white noise generator based on FPGA
CN110096677A (en) * 2019-05-08 2019-08-06 广西大学 A kind of quick calculation method and system of the high-order differentiable functions based on probability calculation
CN110096677B (en) * 2019-05-08 2023-08-25 广西大学 Quick calculation method and system for high-order derivative function based on probability calculation
RU2723271C1 (en) * 2019-10-01 2020-06-09 Акционерное общество "Концерн "Созвездие" Method for generation of digital white gaussian noise using the wallace method

Similar Documents

Publication Publication Date Title
CN112486455B (en) Hardware computing system for solving complex N times of root numbers based on CORDIC method and computing method thereof
CN103812447B (en) White Gaussian noise method for generation and device
CN107202979B (en) Coherent lognormal distribution radar clutter real-time simulation method and system
CN106774624A (en) A kind of Parallel Implementation method of real-time white Gaussian noise hardware generator
CN109814836A (en) A kind of trigonometric function calculation method and device based on interval division and CORDIC
CN105138306A (en) Generation method for pseudo-random signals with optional data bits
Hussain et al. An efficient and fast softmax hardware architecture (EFSHA) for deep neural networks
CN105227259A (en) A kind of M sequence walks abreast production method and device
CN104038770A (en) Discrete cosine transform (DCT) implementation method and system based on randomized computation
CN104135457B (en) Digital phase discrimination method and device based on improved CORDIC (coordinated rotation digital computer) algorithm
CN110837624B (en) An approximate calculation device for sigmoid function
Rekha et al. FPGA implementation of exponential function using cordic IP core for extended input range
CN108508426B (en) SAR echo signal generation method based on multi-core DSP and echo simulator
CN104102471B (en) Method for extending convergence domain of exponential CORDIC (coordinate rotation digital computer) algorithm by aid of FPGA (field programmable gate array) fixed-point technology
CN110097613A (en) A kind of B-spline curves generation method and system based on probability calculation
CN107273624B (en) Method and device for generating burst random impulse noise based on FPGA (field programmable Gate array) and MC (media card) models
Abdelhamid et al. Applying the residue number system to network inference
CN106774625A (en) A kind of Parallel Implementation method of real-time phase noise hardware generator
CN108008665B (en) Large-scale circular array real-time beam former based on single-chip FPGA and beam forming calculation method
CN103713878B (en) A kind of method that sine and cosine cordic algorithm applying complement method realizes at FPGA
Delgado-Mohatar et al. Performance evaluation of highly efficient techniques for software implementation of LFSR
CN204856461U (en) Optional pseudo -random signal generator of data bits
CN111666063B (en) Function increasing implementation device based on random calculation
Du et al. Data Processing and Encryption in UAV Radar
CN113127802B (en) Complex logarithm realization method, device, equipment and computer storage medium based on CORDIC algorithm

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170531