RTL real-time implementation system and method of adaptive beam forming algorithm
The system utilizes an adaptive beamforming algorithm to implement real-time RTL, and by employing conjugate gradient algorithm and module optimization, it solves the problems of high resource consumption and long computation time in existing technologies, and achieves real-time processing on FPGA.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-12
- Publication Date
- 2026-03-10
AI Technical Summary
In the existing technology, the Vivado-HLS-based LCMV sidelobe suppression method consumes a lot of resources and takes a long time to compute when implemented on FPGA, and cannot achieve real-time processing of RTL.
The real-time implementation system of RTL using an adaptive beamforming algorithm includes a temporary echo storage module, a fixed-point to floating-point conversion module, a multiplication module, a configuration module, and a registered variable module. It converts multi-channel echo data in fixed-point format to floating-point format and uses the conjugate gradient algorithm to calculate adaptive weight coefficients. The multiplication, addition/subtraction, and division modules are independently designed to optimize resources and time.
Real-time RTL processing of an adaptive beamforming algorithm with low resource consumption and short computation time on FPGA was achieved, improving the algorithm's real-time performance and resource utilization efficiency.
Smart Images

Figure CN121635964A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of array signal processing, and in particular to a register transfer level (RTL) real-time implementation system and method of an adaptive beamforming algorithm. BACKGROUND
[0002] Adaptive beamforming is a core technology in array signal processing, and is widely used in radar, sonar, wireless communication and other fields. Among numerous adaptive beamforming algorithms, algorithms based on constraint optimization criteria are widely concerned due to their stable performance. Among them, the linearly constrained minimum variance (LCMV) algorithm is a classic and important theoretical framework in adaptive beamforming algorithms. The LCMV algorithm uses sample matrix inversion (SMI) to estimate the covariance matrix, and calculates the adaptive weight coefficient according to the estimated covariance matrix, while realizing different pointing directions of the adaptive directional diagram by inputting static weights of different pointing directions.
[0003] At present, an LCMV sidelobe suppression method based on Vivado-HLS gives an implementation of the LCMV algorithm based on HLS. In the method, Vivado-HLS is used to generate an optimal weight vector as a target IP core, and the target IP core is called through a field-programmable gate array (FPGA) to realize sidelobe suppression. However, the LCMV sidelobe suppression method based on Vivado-HLS realizes the calling of the IP core on the FPGA, which leads to a large resource consumption and a long calculation time due to the difficulty in time-sharing multiplexing of the four arithmetic operation modules, and cannot realize the real-time implementation of the RTL. SUMMARY
[0004] The purpose of the embodiments of the present application is to provide a register transfer level (RTL) real-time implementation system and method of an adaptive beamforming algorithm, which solves the problems of resource consumption and the inability to realize the real-time implementation of the RTL in the prior art.
[0005] To solve the above technical problems, the embodiments of the present application provide the following technical solutions: The first aspect of the present application provides a register transfer level (RTL) real-time implementation system of an adaptive beamforming algorithm, comprising: The temporary echo module is used for receiving input multi-channel echo data and outputting the multi-channel echo data in a predetermined sequence according to a configuration instruction, and the output multi-channel echo data is in fixed-point number format. The fixed-point to floating-point module is connected with the temporary echo module and is used for converting the multi-channel echo data in fixed-point number format into floating-point number format. The multiplication module is connected with the fixed-point to floating-point module and is used for performing conjugate multiplication on the multi-channel echo data in floating-point number format to obtain a conjugate multiplication result. The configuration module is used for outputting static weight coefficients, configurable sampling point numbers and minimum residual values in corresponding formats according to a format control instruction. The register variable module is connected with the multiplication module and the configuration module and is used for calling the addition / subtraction module to perform accumulation operation according to the conjugate multiplication result and the configurable sampling point numbers to obtain a covariance matrix, calling the division module to perform division operation according to the product of the inverse matrix of the covariance matrix and the static weight coefficients to obtain a conjugate gradient result, and calling the division module to perform division operation according to the conjugate gradient result, the static weight coefficients and the minimum residual values to determine an adaptive weight coefficient, which is used for suppressing interference.
[0006] The second aspect of the present application provides an RTL real-time implementation method of an adaptive beam forming algorithm, which is suitable for an RTL real-time implementation system of the adaptive beam forming algorithm and includes the following steps: Receiving input multi-channel echo data and outputting the multi-channel echo data in a predetermined sequence according to a configuration instruction, and the output multi-channel echo data is in fixed-point number format. Converting the multi-channel echo data in fixed-point number format into floating-point number format. Performing conjugate multiplication on the multi-channel echo data in floating-point number format to obtain a conjugate multiplication result. Outputting static weight coefficients, configurable sampling point numbers and minimum residual values in corresponding formats according to a format control instruction. Obtaining a covariance matrix according to the conjugate multiplication result and the configurable sampling point numbers. Using a conjugate gradient algorithm to obtain a conjugate gradient result according to the product of the inverse matrix of the covariance matrix and the static weight coefficients. Determining an adaptive weight coefficient according to the conjugate gradient result, the static weight coefficients and the minimum residual values, which is used for suppressing interference.
[0007] Compared with the prior art, the RTL real-time implementation system and method of the adaptive beam forming algorithm provided by the application, wherein the RTL real-time implementation system of the adaptive beam forming algorithm comprises a temporary echo module for receiving input multi-channel echo data and outputting the multi-channel echo data in a predetermined order according to a configuration instruction, and the output multi-channel echo data is in fixed-point number format; a fixed-point to floating-point module connected with the temporary echo module for converting the multi-channel echo data in fixed-point number format into floating-point number format; a multiplication module connected with the fixed-point to floating-point module for performing conjugate multiplication on the multi-channel echo data in floating-point number format to obtain a conjugate multiplication result; a configuration module for outputting a corresponding format static weight coefficient, a configurable sampling point number and a minimum residual value according to a format control instruction; a register variable module connected with the multiplication module and the configuration module for calling an addition / subtraction module to perform accumulation operation according to the conjugate multiplication result and the configurable sampling point number to obtain a covariance matrix; using a conjugate gradient algorithm, the product of the inverse matrix of the covariance matrix and the static weight coefficient is obtained to obtain a conjugate gradient result; the adaptive weight coefficient is determined by calling a division module to perform division operation according to the conjugate gradient result, the static weight coefficient and the minimum residual value, and the adaptive weight coefficient is used to suppress interference. In this way, the fixed-point to floating-point module for converting the multi-channel echo data in fixed-point number format into floating-point number format, the configurable sampling point number and the multiplication module for performing conjugate multiplication on the multi-channel echo data can be used to seek the balance between the calculation time and the use of resources, and the four arithmetic operations are written into three modules of the multiplication module, the addition / subtraction module and the division module, which can be called when needed, so that the resource consumption is less; the calculation time is shorter under the condition of less resource consumption, so that the RTL real-time implementation system can realize the real-time implementation of RTL. BRIEF DESCRIPTION OF DRAWINGS
[0008] The above and other objects, features and advantages of the exemplary embodiments of the present application will be more apparent from the following detailed description read in conjunction with the accompanying drawings, in which several embodiments of the present application are shown by way of example, and wherein like reference numerals refer to like elements throughout. In the drawings: Figure 1 A structure schematic diagram of the RTL real-time implementation system of the adaptive beam forming algorithm is schematically shown; Figure 2 An internal data flow schematic diagram of the register variable module is schematically shown; Figure 3 A state transition diagram of the register variable module is schematically shown; Figure 4 A structure schematic diagram of the temporary echo module is schematically shown; Figure 5 A structure schematic diagram of the fixed-point to floating-point module is schematically shown; Figure 6 a structure diagram of a multiplication module is shown schematically; Figure 7 a structure diagram of an addition / subtraction module is shown schematically; Figure 8 a structure diagram of a main control module is shown schematically; Figure 9 a flow chart of an RTL real-time implementation method of an adaptive beamforming algorithm is shown schematically. DETAILED DESCRIPTION
[0009] Exemplary embodiments of the present application will be described in detail with reference to the drawings. Although exemplary embodiments of the present application are shown in the drawings, it should be understood that the present application can be implemented in various forms and should not be limited by the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the application to those skilled in the art.
[0010] It should be noted that unless otherwise specified, technical or scientific terms used in the present application should be understood as their common meanings to those skilled in the art to which the present application pertains.
[0011] The method in the embodiments of the present application will be described in detail below.
[0012] Figure 1 a structure diagram of an RTL real-time implementation system of an adaptive beamforming algorithm in the embodiments of the present application is shown schematically, referring to Figure 1 As shown, the RTL real-time implementation system of the adaptive beamforming algorithm can include: a temporary echo module, configured to receive inputted multi-channel echo data and output the multi-channel echo data in a predetermined order according to a configuration instruction, wherein the outputted multi-channel echo data is in fixed-point number format; a fixed-point to floating-point module, connected with the temporary echo module, configured to convert the multi-channel echo data in fixed-point number format into floating-point number format; a multiplication module, connected with the fixed-point to floating-point module, configured to perform conjugate multiplication on the multi-channel echo data in floating-point number format to obtain a conjugate multiplication result; a configuration module, configured to output static weight coefficients, configurable sampling point numbers and minimum residual values in corresponding formats according to a format control instruction; The register variable module is connected with the multiplication module and the configuration module, and is used for calling the addition / subtraction module to perform accumulation operation according to the conjugate multiplication result and the configurable sampling point number, so as to obtain the covariance matrix; the conjugate gradient result is obtained according to the product of the inverse matrix of the covariance matrix and the static weight coefficient by using the conjugate gradient algorithm; the adaptive weight coefficient is determined by calling the division module to perform division operation according to the conjugate gradient result, the static weight coefficient and the minimum residual value, and the adaptive weight coefficient is used to suppress interference.
[0013] Specifically, the adaptive beam forming algorithm RTL real-time implementation system of the application can also be deployed on an application-specific integrated circuit (ASIC) to realize less resources, shorter calculation time and lower power consumption.
[0014] The multiplication module has three different states, which are conjugate multiplication on echo data, conjugate multiplication on variables and complex multiplication on variables. The register variable module can save the covariance matrix and each variable. The addition / subtraction module has two different states, which are subtraction and addition. The division module is used for division. The configuration module can transmit the output corresponding format static weight coefficient, the configurable sampling point number and the minimum residual value to the register variable module.
[0015] In the embodiment, the RTL real-time implementation system further comprises an output adaptive weight module; The output adaptive weight module is connected with the register variable module, and is used for outputting the covariance matrix or the adaptive weight coefficient when receiving an output instruction.
[0016] In the embodiment, the floating point number format is a single precision floating point number format.
[0017] In the embodiment, the configuration instruction comprises a configurable channel number and a parallel multiplier number. The temporary echo module is specifically used for receiving input multi-channel echo data, storing the input multi-channel echo data in a group of block RAMs, grouping the block RAMs according to the configurable channel number and the parallel multiplier number, and outputting the multi-channel echo data according to a predetermined sequence and the grouped block RAMs.
[0018] Specifically, the echo data of each channel is input, and the input echo data of each channel is first temporarily stored in a group of block RAMs (the number of block RAMs is twice the number of channels), and the temporary echo module groups the block RAMs according to the configurable channel number and the parallel multiplier number used.
[0019] In the embodiment, the parallel multiplier number is configured to have an integral division relationship with the configurable channel number.
[0020] Specifically, taking the configurable channel number 16 as an example, the number of parallel multipliers used is 4, and then the block RAM is divided into 4 groups, and the output is divided into a multiplier part and a multiplicand part.
[0021] In the embodiment, the format control instruction includes a holding instruction and a conversion instruction; The configuration module is specifically configured to output the static weight coefficient in fixed-point number format, the configurable sampling point number in fixed-point number format and the minimum residual value in fixed-point number format when the holding instruction is received; and convert the static weight coefficient in fixed-point number format, the configurable sampling point number in fixed-point number format and the minimum residual value in fixed-point number format into corresponding floating-point number formats, and output the static weight coefficient in floating-point number format, the configurable sampling point number in floating-point number format and the minimum residual value in floating-point number format when the conversion instruction is received.
[0022] In the embodiment, the register variable module is further configured to receive the static weight coefficient, the configurable sampling point number and the minimum residual value output by the configuration module after reset, and enter an idle state after receiving is completed, before calling the addition / subtraction module to perform accumulation operation according to the conjugate multiplication result and the configurable sampling point number to obtain the covariance matrix; and assign the static weight coefficient to a residual variable and an initial direction vector of the conjugate gradient algorithm respectively; perform conjugate transposition on the residual variable, and calculate an initial residual modulus value of the conjugate gradient algorithm according to the residual variable and the conjugate transposed residual variable.
[0023] Specifically, the main control module changes the state of the register variable module through the state control bus, and after the four arithmetic operation results are input, the register variable module is stored in different addresses of the random access memory (RAM) according to different states.
[0024] Figure 2 An internal data flow diagram of the register variable module is schematically shown, referring to Figure 2 As shown in the figure, the register variable module includes a register variable RAM, a register 1, a register 2, a register a and a register b. The internal data flow of the register variable module is specifically as follows: Accepting the static weight coefficient: first, after reset is completed, the register variable module is always in a configurable state until the configuration module sends the static weight coefficient, the sampling point number and the minimum residual value into the register variable module (through the register a writing into the register variable module), and then enters an idle state.
[0025] Second, after the configuration state ends, the written static weight coefficients are assigned to variables r (residual variable) and p0 (initial direction vector) respectively. Then, the variable r is transposed (after transposition, each element of the variable r occupies an address of all register variables ram), and finally, the initial residual modulus is calculated and the covariance matrix state is entered.
[0026] Covariance matrix calculation: first, the multiplication module inputs the conjugate multiplication result into the register variable module, and then the register a is tapped (in order to align with the data read out by the register variable ram). The data output by the register variable ram is sent to register 1, and the data of the register a is sent to register 2. Then, the register 1 and the register 2 are allocated to the register b, and finally output to any one of the multiplication module, the addition / subtraction module and the division module. When the addition calculation is completed, the addition result is input into the module at the same time, and finally exists in the register variable ram. When the register variable ram has the addition result of the previous configurable sampling point, the conjugate multiplication result is input at the same time, and the previous accumulated result is read out and continued to be accumulated.
[0027] Second, after the accumulation of all configurable sampling points is completed, a result is read out from the register variable ram and then sent to the register a. According to its specific index and address (calculated and stored in the register variable ram), it is sent to the specified register variable ram.
[0028] Finally, the number of configurable sampling points is read out and sent to the register 2. The accumulated result is read out from the register variable ram (each time only the data of the number of multipliers*64 bits is read out), and then sent to the register 1. After the division is completed, the first division result is sent to the low 64 bits, and then the second last 64 bits, …, with the number of multipliers as a cycle.
[0029] Conjugate gradient method for inversion: first, the covariance matrix and the direction vector are multiplied, and then the address of the intermediate variable is used as the address of the accumulated result for accumulation.
[0030] Second, the direction vector is conjugate multiplied with the intermediate variable , and 0 to the number of multipliers-1 is used as the address of the accumulated result for accumulation.
[0031] Third, the calculation , is updated, and the variable , is updated, where , , is the coefficient matrix, is the conjugate transpose of the direction vector, is the step size, is the square of the old residual norm, is the solution vector in the iteration update, is the residual variable.
[0032] Finally, the new residual norm is calculated where, is the square of the new residual norm, is the conjugate transposed residual variable, and it is determined whether the square of the new residual norm is less than the minimum residual value. If yes, the loop is exited; otherwise, the direction vector is updated, and the operation of "first multiplying the covariance matrix with the direction vector , and then accumulating the address of the variable as the address of the accumulated result" is performed.
[0033] The adaptive weight coefficient is calculated: first, each element of the transposed variable of the solution x_cg of the conjugate gradient method is read from the register variable ram and written into the register a, and then it is written into the address corresponding to the transposed solution vector x_trans (an address of x_trans only stores one element of the transposed variable x_cg).
[0034] Secondly, two variables are read from the addresses of the vector x_trans and the transposed initial direction vector trans_p0 respectively, and written into the register 1 and the register 2 respectively, and the conjugate multiplication is performed.
[0035] Thirdly, the accumulated result is saved, and only two numbers are added each time. After the previous accumulated result is read out, it is output through the register 1, and the addend is output through the register 2.
[0036] Finally, after the accumulation is completed, the accumulated result is read out and stored in the register 2. Then each element of the transposed variable x_cg is read out and output to the division module through the register 1, and finally the result is output through the output adaptive weight module.
[0037] Figure 3 The state transition diagram of the register variable module is schematically shown, and the states are described as follows with reference to FIG. 4: Figure 3 Idle state: no operation is performed. Calculate the covariance matrix state: accumulate the echo data after the conjugate multiplication. Calculate the variable v state: calculate the variable . Calculate the variable multiply state: calculate (not accumulated). Calculate the variable alpha state: calculate the variable alpha. Calculate the variable increment state: calculate the change value of the variable . Update the variable Status: Update variable Calculate variables State: Calculated variables Termination State: End the loop and output the adaptive weights. Loop Termination Condition Satisfaction State: Check if it's possible to exit the loop. Covariance Matrix Construction State: Store the accumulated echo multiplication results in the registered variable ram in a specific order. Accumulation State: Accumulate the multiplication results. Configuration State: Accept input static weight coefficients. Variable Copying Give variables State: Variable Assign to Divide by the number of sampling points: Calculate the covariance matrix. Transpose variable State: Transpose variable Transpose variable State: Transpose variable Transpose variable State: Transpose variable Update variables Status: Updated Clear state: Clears the value at the specified address in the register variable ram. Clear temporary state: Clears the value at the specified address. Transpose variable p0 state: Sets the transposed variable p0 to p0. Save. State of transpose variable x_cg: Transpose variable x_cg.
[0038] In this embodiment, the expression for the adaptive weight coefficient in the registered variable module is: ; in, These are adaptive weighting coefficients. Let covariance matrix be the variance matrix. It is the inverse of the covariance matrix. These are static weight coefficients. This is the conjugate transpose of the static weight coefficients. This is the result of the conjugate gradient.
[0039] In this embodiment, the RTL real-time implementation system is implemented on the Vivado development platform using the System Verilog hardware description language.
[0040] Specifically, Figure 4 A schematic diagram of the temporary echo storage module is shown below. Figure 4 As shown, the temporary echo module includes multiple pseudo-dual-port RAMs. The echo data is input via the AXI bus. The status control of the temporary echo module is controlled by the main control module. The temporary echo module reassembles the input echo data and outputs it to the fixed-point to floating-point module.
[0041] Figure 5 A schematic diagram of the fixed-point to floating-point module is shown below. Figure 5 As shown, the input of the fixed-point to floating-point module is a fixed-point number, and its status control bus is connected to the main control module. The status control of the fixed-point to floating-point module is controlled by the main control module, and the output is a floating-point number. The fixed-point to floating-point module can convert multiple fixed-point numbers to floating-point numbers.
[0042] Figure 6 A schematic diagram of the multiplication module is shown below. Figure 6 As shown, the multiplication module includes a selector and multiple parallel multipliers, each connected to the selector. The input echo data and variables in the multiplication module first pass through a data selector, which selects different data based on different states. Secondly, it selects between complex multiplication and conjugate multiplication based on the different states. For example, when calculating the covariance matrix, it selects the number of sampling points corresponding to the covariance matrix calculation, and the [number of]th [number of] echo data [is selected]. The sampling point and the first echo data The conjugate transpose of each sample point is used to calculate these data, and conjugate multiplication is selected. This is done when calculating variables... take When in a state, select the calculation variable. take intermediate variables corresponding to the state conjugate transpose of direction vector And choose conjugate multiplication. When calculating variables When in a state, select the calculation variable. The direction vector corresponding to the state sum coefficient matrix And choose complex number multiplication.
[0043] Figure 7 A schematic diagram of the addition / subtraction module is shown below. Figure 7 As shown, the addition / subtraction module includes a selector and multiple adders / subtractors, each connected to the selector. A status control bus connects to the main control module, which controls the status of the addition / subtraction module. The module selects whether to perform addition or subtraction based on different states. For example, when updating a variable... In the case of a state, when updating variables When adding, choose to do addition; when updating variables. When that happens, choose to subtract.
[0044] Figure 8 A schematic diagram of the main control module is shown below. Figure 8As shown, the main control module is connected to the multiplication module, addition / subtraction module, fixed-point to floating-point module, temporary echo module, registered variable module, configuration module, and output adaptive weight module. The main control module controls the state of the multiplication module, addition / subtraction module, fixed-point to floating-point module, temporary echo module, registered variable module, configuration module, and output adaptive weight module through various state control buses.
[0045] Table 1 below shows a comparison of FPGA resource usage and computation time under different channel numbers and group numbers (clock frequency is 200MHz, FPGA model is xcvu13p-fhgb2104-2-i). Comparing Table 1, it can be seen that with 16 channels and 4 groups, resource usage is almost half that of Vivado HLS, and the computation speed is increased by approximately 3.92 times. With 4 channels and 1 group, resource usage is half that of Vivado HLS, and the computation speed is increased by approximately 1.52 times.
[0046] Table 1 Comparison of FPGA resource usage and computation time
[0047] This invention features configurable channel counts, adaptable to varying channel numbers; configurable number of parallel multipliers, allowing for resource and time balance with the same channel count; and configurable number of sampling points. Implemented in System Verilog and Vivado 2020.2 (hardware description language), with all internal calculations using single-precision floating-point numbers, this invention offers advantages over Vivado-HLS implementations, including higher algorithm accuracy, shorter computation time, and lower resource usage. Each module's function is highly specialized and clearly defined, utilizing a superior matrix inversion algorithm for even shorter computation time and lower resource consumption. This invention does not use IP cores, making it easy and quick to port.
[0048] This invention utilizes Vivado 2020.2 and System Verilog to implement the LCMV (Linear Constrained Minimum Variance) algorithm on an FPGA. The real-time RTL implementation system for the adaptive beamforming algorithm of this invention can be adapted to different channel numbers by configuring the number of channels, the number of parallel multipliers used, and the number of sampling points. Furthermore, since the number of parallel multipliers used is configurable, a balance between computation time and resource usage can be sought through configuration, further enhancing the versatility of the real-time RTL implementation system for the adaptive beamforming algorithm of this invention. This solves the shortcomings of existing LCMV algorithms, such as difficulty in implementation, poor versatility, and unbalanced resource and time consumption.
[0049] Based on the above Figure 1As can be seen from the implementation method, the real-time implementation system of the adaptive beamforming algorithm in this embodiment of the invention includes a temporary echo storage module, used to receive input multi-channel echo data and output multi-channel echo data in a predetermined order according to configuration instructions. The output multi-channel echo data is in fixed-point format; a fixed-point to floating-point module, connected to the temporary echo storage module, used to convert the fixed-point format multi-channel echo data into floating-point format; a multiplication module, connected to the fixed-point to floating-point module, used to perform conjugate multiplication on the floating-point format multi-channel echo data to obtain the conjugate multiplication result; and a configuration module. This module is used to output the static weight coefficients, configurable number of sampling points, and minimum residual value in the corresponding format according to the format control instructions. The registered variable module, connected to both the multiplication and configuration modules, is used to call the addition / subtraction module to perform an accumulation operation based on the conjugate multiplication result and the configurable number of sampling points to obtain the covariance matrix. Using the conjugate gradient algorithm, the conjugate gradient result is obtained by multiplying the inverse of the covariance matrix by the static weight coefficients. Based on the conjugate gradient result, static weight coefficients, and minimum residual value, the division module is called to perform a division operation to determine the adaptive weight coefficients, which are used to suppress interference. In this way, a balance between computation time and resource usage can be sought by using a fixed-point to floating-point module that converts multi-channel echo data in fixed-point format to floating-point format, as well as a multiplication module with configurable sampling points and conjugate multiplication of multi-channel echo data. Furthermore, the four arithmetic operations are written separately as three modules: multiplication, addition / subtraction, and division, which can be called as needed, resulting in less resource consumption. With less resource consumption, the computation time is shorter, enabling the RTL real-time implementation system to achieve real-time RTL implementation.
[0050] Based on the same inventive concept, as an implementation of the above-mentioned real-time RTL implementation system for an adaptive beamforming algorithm, this embodiment of the invention also provides a real-time RTL implementation method for an adaptive beamforming algorithm.
[0051] Figure 9 This is a flowchart of the real-time RTL implementation method of the adaptive beamforming algorithm in an embodiment of the present invention. See [link / reference]. Figure 9 As shown, the real-time RTL implementation method of this adaptive beamforming algorithm may include: S901: Receives input multi-channel echo data and outputs multi-channel echo data in a predetermined order according to configuration instructions.
[0052] The output multi-channel echo data is in fixed-point format. Configuration instructions include the configurable number of channels and the number of parallel multipliers.
[0053] Specifically, step S901 includes: Step A1: Receive the input multi-channel echo data and store the input multi-channel echo data in a set of RAM blocks.
[0054] Step A2: Group a set of RAM blocks according to the configurable number of channels and the number of parallel multipliers.
[0055] Step A3: Output multi-channel echo data according to the predetermined order and grouped block RAM.
[0056] S902. Convert multi-channel echo data in fixed-point format to floating-point format.
[0057] The floating-point format is a single-precision floating-point format.
[0058] S903. Perform conjugate multiplication on the multi-channel echo data in floating-point format to obtain the conjugate multiplication result.
[0059] S904. According to the format control instructions, output the static weight coefficients, configurable number of sampling points, and minimum residual value in the corresponding format.
[0060] The format control instructions include hold instructions and conversion instructions.
[0061] Specifically, step S904 includes: Step B1: Upon receiving the hold instruction, output the static weight coefficients in fixed-point format, the configurable number of sampling points in fixed-point format, and the minimum residual value in fixed-point format.
[0062] Step B2: Upon receiving the conversion instruction, convert the static weight coefficients, configurable number of sampling points, and minimum residual value in the fixed-point format to the corresponding floating-point format, and output the static weight coefficients, configurable number of sampling points, and minimum residual value in the floating-point format.
[0063] S905. Based on the conjugate multiplication result and the configurable number of sampling points, obtain the covariance matrix.
[0064] Specifically, before calling the addition / subtraction module to perform accumulation operations based on the conjugate multiplication result and the configurable number of sampling points to obtain the covariance matrix, the real-time RTL implementation method also includes: Step C1: After reset, receive the static weight coefficients, configurable number of sampling points and minimum residual value output by the configuration module, and enter the idle state after receiving the data.
[0065] Step C2: Assign the static weight coefficients to the residual variables and initial direction vectors of the conjugate gradient algorithm, respectively.
[0066] Step C3: Perform conjugate transpose on the residual variable, and calculate the initial residual magnitude of the conjugate gradient algorithm based on the residual variable and the conjugate transposed residual variable.
[0067] S906. Using the conjugate gradient algorithm, the conjugate gradient result is obtained by multiplying the inverse of the covariance matrix with the static weight coefficients.
[0068] S907. Determine the adaptive weighting coefficients based on the conjugate gradient results, static weighting coefficients, and minimum residual value.
[0069] The adaptive weighting coefficients are used to suppress interference.
[0070] The method of the present invention further includes: upon receiving an output instruction, outputting a covariance matrix or adaptive weight coefficients.
[0071] The expression for the adaptive weight coefficients is as follows: ; in, These are adaptive weighting coefficients. Let covariance matrix be the variance matrix. It is the inverse of the covariance matrix. These are static weight coefficients. This is the conjugate transpose of the static weight coefficients. This is the result of the conjugate gradient.
[0072] It should be noted that the above description of the embodiment of the real-time RTL implementation method for the adaptive beamforming algorithm is similar to the description of the above embodiment of the real-time RTL implementation system for the adaptive beamforming algorithm, and has similar beneficial effects as the embodiment of the real-time RTL implementation system for the adaptive beamforming algorithm. For technical details not disclosed in the embodiments of the real-time RTL implementation method for the adaptive beamforming algorithm of this invention, please refer to the description of the embodiment of the real-time RTL implementation system for the adaptive beamforming algorithm of this invention for understanding.
[0073] The above are merely specific embodiments of the present invention, but the scope of protection of the present invention is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in the present invention should be included within the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be determined by the scope of the claims.
Claims
1. A system for real-time implementation of adaptive beamforming algorithms, characterized in that, The application relates to an adaptive interference suppression system based on real-time implementation (RTL) technology. The system comprises the following modules: a temporary echo module for receiving input multi-channel echo data and outputting the multi-channel echo data in a predetermined sequence according to a configuration instruction, wherein the output multi-channel echo data is in a fixed-point number format; a fixed-point to floating-point module connected with the temporary echo module and used for converting the multi-channel echo data in the fixed-point number format into a floating-point number format; a multiplication module connected with the fixed-point to floating-point module and used for performing conjugate multiplication on the multi-channel echo data in the floating-point number format to obtain a conjugate multiplication result; a configuration module used for outputting static weight coefficients, configurable sampling points and a minimum residual value in corresponding formats according to a format control instruction; 2. The RTL real-time implementation system of adaptive beamforming algorithm according to claim 1, characterized in that, a register variable module connected with the multiplication module and the configuration module and used for calling an addition / subtraction module to perform accumulation operation according to the conjugate multiplication result and the configurable sampling points, obtaining a covariance matrix, using a conjugate gradient algorithm to obtain a conjugate gradient result according to a product of an inverse matrix of the covariance matrix and the static weight coefficients, and calling a division module to perform division operation according to the conjugate gradient result, the static weight coefficients and the minimum residual value to determine an adaptive weight coefficient, wherein the adaptive weight coefficient is used for suppressing interference. The RTL real-time implementation system further comprises an output adaptive weight module; 3. The RTL real-time implementation system of adaptive beamforming algorithm according to claim 1, wherein, the output adaptive weight module is connected with the register variable module and is used for outputting the covariance matrix or the adaptive weight coefficient when an output instruction is received.
4. The RTL real-time implementation system of adaptive beamforming algorithm according to claim 1, wherein, The floating-point number format is a single-precision floating-point number format. The configuration instruction comprises configurable channel numbers and parallel multiplier numbers. The temporary echo module is specifically used for receiving the input multi-channel echo data and storing the input multi-channel echo data in a group of block RAMs. The group of block RAMs is grouped according to the configurable channel numbers and the parallel multiplier numbers.
5. The RTL real-time implementation system of adaptive beamforming algorithm according to claim 4, characterized in that, The multi-channel echo data is output according to the predetermined sequence and the grouped block RAMs.
6. The RTL real-time implementation system of adaptive beamforming algorithm according to claim 1, wherein, The parallel multiplier numbers are configured to have an integral division relationship with the configurable channel numbers. The format control instruction comprises a keeping instruction and a conversion instruction. The configuration module is specifically used for outputting static weight coefficients in a fixed-point number format, configurable sampling points in a fixed-point number format and a minimum residual value in a fixed-point number format when the keeping instruction is received, and converting the static weight coefficients in the fixed-point number format, the configurable sampling points in the fixed-point number format and the minimum residual value in the fixed-point number format into corresponding floating-point number formats and outputting static weight coefficients in a floating-point number format, configurable sampling points in a floating-point number format and a minimum residual value in a floating-point number format when the conversion instruction is received.
7. The RTL real-time implementation system of adaptive beamforming algorithm according to claim 1, wherein, The register variable module is further configured to receive the static weight coefficient, the configurable sampling point number and the minimum residual value output by the configuration module after reset before performing accumulation operation on the conjugate multiplication result and the configurable sampling point number to obtain the covariance matrix by calling an addition / subtraction module, and enter an idle state after receiving is completed; assign the static weight coefficient to a residual variable and an initial direction vector of the conjugate gradient algorithm respectively; perform conjugate transposition on the residual variable, and calculate an initial residual modulus value of the conjugate gradient algorithm according to the residual variable and the residual variable after conjugate transposition.
8. The RTL real-time implementation system of adaptive beamforming algorithm according to claim 1, wherein, In the register variable module, the expression of the adaptive weight coefficient is: ; wherein, is the adaptive weight coefficient, is the covariance matrix, is the inverse of the covariance matrix, is the static weight coefficient, is the conjugate transpose of the static weight coefficient, is the conjugate gradient result.
9. The RTL real-time implementation system of adaptive beamforming algorithm according to claim 1, characterized in that, The RTL real-time implementation system is implemented by using a System Verilog hardware description language on a Vivado development platform.
10. A method for real-time implementation of an adaptive beamforming algorithm, characterized in that, The RTL real-time implementation system suitable for the adaptive beamforming algorithm in any one of claims 1-9 comprises: receiving input multi-channel echo data, and outputting the multi-channel echo data in a predetermined order according to a configuration instruction, wherein the output multi-channel echo data is in a fixed-point number format; converting the multi-channel echo data in the fixed-point number format into a floating-point number format; performing conjugate multiplication on the multi-channel echo data in the floating-point number format to obtain a conjugate multiplication result; outputting a static weight coefficient, a configurable sampling point number and a minimum residual value in a corresponding format according to a format control instruction; obtaining a covariance matrix according to the conjugate multiplication result and the configurable sampling point number; obtaining a conjugate gradient result according to a product of an inverse matrix of the covariance matrix and the static weight coefficient by using a conjugate gradient algorithm; determining an adaptive weight coefficient according to the conjugate gradient result, the static weight coefficient and the minimum residual value, wherein the adaptive weight coefficient is used for suppressing interference.