System and method for determining direction of arrival of signal

By fitting multiple signals into sparse arrays, calculating the covariance matrix and eigenvalues, decomposing the signal subspace, and finally determining the signal arrival direction based on spectral peak search, the problem of degradation of DOA estimation accuracy in a multi-signal source environment is solved, and high-precision and low-power hardware implementation is realized.

CN119519791APending Publication Date: 2025-02-25BEIJING UNIV OF POSTS & TELECOMM
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411646879.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-18
Publication Date
2025-02-25

AI Technical Summary

Technical Problem

The existing MUSIC algorithm has reduced DOA estimation accuracy in a multi-signal source environment, and the hardware implementation is complex, making it difficult to meet the needs of high real-time and low power consumption.

Method used

A system and method are proposed. Through the data input module, a fitting module fits the signal into a sparse array or a uniform linear array, the calculation module calculates the covariance matrix and eigenvalues, the decomposition module obtains the signal subspace, and the spectral peak search module determines the signal arrival direction based on the signal subspace.

Benefits of technology

DOA estimation of sparse arrays is realized, which significantly improves the estimation accuracy of signal arrival direction and reduces the complexity and power consumption of hardware implementation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119519791A_ABST
    Figure CN119519791A_ABST
Patent Text Reader

Abstract

The invention provides a system and a method for determining a direction of arrival of a signal. The data input module is used for receiving a plurality of signals corresponding to a plurality of antennas, the fitting module is used for determining to fit the plurality of signals into a sparse array or a uniform linear array, the first calculation module is used for responding to fitting the plurality of signals into the sparse array, calculating a covariance matrix of the sparse array, and calculating the covariance matrix of the sparse array. The first calculation module is used for calculating a covariance matrix, the second calculation module is used for calculating a characteristic value and a characteristic vector of the covariance matrix, the decomposition module is used for obtaining a signal subspace according to the characteristic value and the characteristic vector, and the spectrum peak search module is used for determining the arrival direction of multiple signals based on the signal subspace. According to the system and the method provided by the invention, DOA estimation for a sparse array can be realized, and the estimation precision of the arrival direction of the signal can be remarkably improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a system and method for determining a signal arrival direction. Background Art

[0002] With the continuous development of wireless communication technology, array direction finding systems play an important role in communication, radar, sonar and other fields, and direction of arrival (DOA) estimation is the core part of the system. The Multiple Signal Classification (MUSIC) algorithm is one of the most classic algorithms in DOA estimation. It has been widely used due to its high accuracy and high resolution advantages in incoherent signal source identification.

[0003] At present, the hardware implementation of the MUSIC algorithm is mainly designed for uniform linear arrays. When the number of signal sources is large, the estimation accuracy will drop significantly. In addition, the simplified method usually adopted by the existing hardware implementation to reduce complexity often leads to a decrease in the DOA estimation accuracy. Summary of the invention

[0004] In view of this, the purpose of the present application is to propose a system and method for determining a signal arrival direction, so as to solve or partially solve the above-mentioned problem.

[0005] Based on the above objectives, the present application provides a system for determining a signal arrival direction, comprising:

[0006] A data input module is configured to receive a plurality of signals corresponding to a plurality of antennas;

[0007] A fitting module, configured to determine to fit the plurality of signals into a sparse array or a uniform linear array;

[0008] A first computing module, configured to, in response to fitting the plurality of signals into a sparse array, compute a covariance matrix of the sparse array;

[0009] A second calculation module is configured to calculate the eigenvalues ​​and eigenvectors of the covariance matrix;

[0010] A decomposition module is configured to obtain a signal subspace according to the eigenvalue and the eigenvector;

[0011] The spectrum peak search module is configured to determine the arrival directions of the multiple signals based on the signal subspace.

[0012] Optionally, the spectrum peak search module is further configured to:

[0013] Calculate the first pseudo-spectral function of the signal subspace with a step size of 1°;

[0014] determining a first trough angle value according to the first pseudo-spectral function;

[0015] Calculate the second pseudo-spectral function of the signal subspace with a step size of 0.1°;

[0016] determining a second trough angle value according to the second pseudo-spectral function;

[0017] Calculate the third pseudo-spectral function of the signal subspace with a step size of 0.01°;

[0018] Determining a third trough angle value according to the third pseudo-spectral function;

[0019] The arrival directions of the plurality of signals are calculated according to the first trough angle value, the second trough angle value and the third trough angle value.

[0020] Optionally, the second computing module is further configured to:

[0021] Calculating off-diagonal elements of the covariance matrix;

[0022] According to the non-diagonal elements, a first matrix parameter and a second matrix parameter are obtained;

[0023] Obtaining an eigenvalue matrix and an eigenvector matrix according to the first matrix parameters and the second matrix parameters;

[0024] The eigenvalues ​​and the eigenvectors are obtained according to the eigenvalue matrix and the eigenvector matrix.

[0025] Optionally, the first computing module is further configured to:

[0026] Performing a matrix multiplication operation on the sparse array and calculating the arrangement of the sparse array;

[0027] Calculating a virtual array of a differential common array according to the arrangement of the sparse array;

[0028] The virtual array is divided into a plurality of sub-arrays, and the covariance matrix is ​​obtained according to the plurality of sub-arrays.

[0029] Optionally, the fitting module is further configured to:

[0030] Based on the array structure register, it is determined whether to fit the plurality of signals into a sparse array or a uniform linear array.

[0031] Optionally, the spectrum peak search module is further configured to:

[0032] Calculating a direction vector of the signal subspace;

[0033] The first pseudo spectral function, the second pseudo spectral function and the third pseudo spectral function are calculated according to the direction vector, and the direction vector is stored in a memory corresponding to the signal subspace.

[0034] Optionally, the first computing module is further configured to:

[0035] Using a RISC-V processor, the covariance matrix of the sparse array is calculated.

[0036] Optionally, the system further includes a configuration register, wherein the configuration register is configured as:

[0037] Parameters in the system are configured, the parameters including at least array structure, array elements, number of sources, snapshots, and maximum number of iterations.

[0038] Optionally, the system is written based on the RISC-V instruction set architecture.

[0039] Based on the above purpose, the present application also provides a method for determining a signal arrival direction, comprising:

[0040] receiving multiple signals corresponding to multiple antennas;

[0041] Determining to convert the plurality of signals into a sparse array or a uniform linear array;

[0042] In response to converting the plurality of signals into a sparse array, calculating a covariance matrix of the sparse array;

[0043] Calculating the eigenvalues ​​and eigenvectors of the covariance matrix;

[0044] Obtaining a signal subspace according to the eigenvalue and the eigenvector;

[0045] Based on the signal subspace, directions of arrival of the plurality of signals are determined.

[0046] As can be seen from the above, the present application provides a system and method for determining the direction of arrival of a signal. The data input module is used to receive multiple signals corresponding to multiple antennas, the fitting module is used to determine whether to fit the multiple signals into a sparse array or a uniform linear array, the first calculation module is used to calculate the covariance matrix of the sparse array in response to fitting the multiple signals into a sparse array, the second calculation module is used to calculate the eigenvalues ​​and eigenvectors of the covariance matrix, the decomposition module is used to obtain the signal subspace according to the eigenvalues ​​and eigenvectors, and the spectrum peak search module is used to determine the direction of arrival of multiple signals based on the signal subspace. The system and method provided by the present application can realize DOA estimation for sparse arrays, and can significantly improve the estimation accuracy of the direction of arrival of the signal. BRIEF DESCRIPTION OF THE DRAWINGS

[0047] In order to more clearly illustrate the technical solutions in the present application or related technologies, the drawings required for use in the embodiments or related technical descriptions are briefly introduced below. Obviously, the drawings described below are only embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0048] Figure 1 A schematic diagram of an exemplary system for determining a signal arrival direction according to an embodiment of the present application is shown.

[0049] Figure 2 A schematic flow chart of an exemplary method for determining a signal arrival direction according to an embodiment of the present application is shown.

[0050] Figure 3 A schematic diagram of an exemplary electronic device according to an embodiment of the present application is shown. DETAILED DESCRIPTION

[0051] In order to make the objectives, technical solutions and advantages of the present application more clearly understood, the present application is further described in detail below in combination with specific embodiments and with reference to the accompanying drawings.

[0052] It should be noted that, unless otherwise defined, the technical terms or scientific terms used in the embodiments of the present application should be the usual meanings understood by people with ordinary skills in the field to which the present application belongs. The "first", "second" and similar words used in the embodiments of the present application do not represent any order, quantity or importance, but are only used to distinguish different components. "Including" or "comprising" and similar words mean that the elements or objects appearing in front of the word cover the elements or objects listed after the word and their equivalents, without excluding other elements or objects. "Connect" or "connected" and similar words are not limited to physical or mechanical connections, but can include electrical connections, whether direct or indirect. "Up", "down", "left", "right" and the like are only used to indicate relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.

[0053] With the continuous development of wireless communication technology, array direction finding systems play an important role in communication, radar, sonar and other fields, and direction of arrival (DOA) estimation is the core part of the system. The Multiple Signal Classification (MUSIC) algorithm is one of the most classic algorithms in DOA estimation. It has been widely used due to its high accuracy and high resolution advantages in incoherent signal source identification.

[0054] After the advent of the MUSIC algorithm, many improved MUSIC algorithms have been proposed one after another, but there are also a lot of problems: most optimized MUSIC algorithms are difficult to implement in hardware, or have high computational costs and low efficiency; and the existing mainstream architecture of the MUSIC algorithm has many limitations. For example, the closed nature of the architecture limits the freedom of development and is difficult to meet high real-time requirements, as well as low power management efficiency, long development cycle, and high threshold. Finally, the current hardware implementation of the MUSIC algorithm is mainly designed for uniform linear arrays. When the number of signal sources is large, the estimation accuracy will drop significantly, and the simplified method usually adopted by the existing hardware implementation to reduce complexity often leads to a decrease in DOA estimation accuracy.

[0055] In order to at least solve the above problems, the present application provides a system and method for determining the direction of arrival of a signal. The data input module is used to receive multiple signals corresponding to multiple antennas, the fitting module is used to determine whether to fit the multiple signals into a sparse array or a uniform linear array, the first calculation module is used to calculate the covariance matrix of the sparse array in response to fitting the multiple signals into a sparse array, the second calculation module is used to calculate the eigenvalues ​​and eigenvectors of the covariance matrix, the decomposition module is used to obtain the signal subspace according to the eigenvalues ​​and eigenvectors, and the spectrum peak search module is used to determine the direction of arrival of multiple signals based on the signal subspace. The system and method provided by the present application can realize DOA estimation for sparse arrays, and can significantly improve the estimation accuracy of the direction of arrival of the signal.

[0056] The present application provides a system and method for determining the direction of arrival of a signal: first, a RISC-V processor is used to calculate the covariance matrix of a uniform linear array or a nested array. Then, a complex Jacobi algorithm with simplified calculation is used to facilitate hardware implementation; finally, the signal source position is estimated with a step size of 0.01° through a three-stage spectrum peak search method, thereby realizing a hardware acceleration system of the MUSIC algorithm under the RISC-V instruction set architecture. Among them, RISC-V is an open source instruction set architecture (ISA) based on the reduced instruction set (RISC) principle. The MUSIC algorithm is a method based on matrix eigenspace decomposition.

[0057] First, we focus on the hardware implementation under the RISC-V architecture. By combining optimized algorithms and customized RISC-V instructions with supporting hardware, we can realize the hardware acceleration system of the MUSIC algorithm. The process of the entire MUSIC algorithm hardware acceleration system is as follows:

[0058] The signal is received by the data input module, and the signal is fitted into a sparse array or a uniform linear array through the fitting module to receive the original data input, and then the angle of the signal source is finally output through the calculation of the covariance matrix calculation module (for example, the first calculation module), the second calculation module, the complex Jacobi decomposition module (for example, the decomposition module), and the three-level spectrum peak search module (for example, the spectrum peak search module). In addition, the working state of the entire system can also be changed by configuring the register. The main configuration parameters include array structure, array elements, number of sources, snapshots, maximum number of iterations, and iteration accuracy of the complex Jacobi algorithm. The covariance matrix calculation module is used to calculate the signal covariance matrix from the array, the complex Jacobi decomposition module performs eigenvalue decomposition on the covariance matrix to distinguish the signal subspace and the noise subspace, and the three-level spectrum peak search module searches on the pseudo spectrum through the MUSIC algorithm to determine the arrival direction of the signal.

[0059] 1. Calculate the covariance matrix

[0060] The system provided by the present application is based on the structure of a complex matrix. When calculating the covariance matrix, two random access memories (RAM) are used to store the real part and the imaginary part respectively. By configuring the "array structure" register, it is determined whether to fit a uniform linear array or a sparse array. If it is a sparse array, steps a, b and c are executed. If it is a uniform linear array, only step a is executed and the result is output.

[0061] (1) Step a

[0062] Different array structures, array elements, and snapshots have different input data sizes in different situations. In order to be compatible with the above-mentioned various situations, large matrix multiplication operations need to be calculated one by one. Matrix multiplication is completed by three nested modules. The outermost module is responsible for generating the row and column values ​​of the elements to be calculated, and the innermost module is used to implement the multiplication of complex numbers: (a+bi)×(c+di)=(ac-bd)+(ad+bc)i. The middle module accumulates the multiplication results to obtain the value of the specified element. Among them, a is the real part, b is the imaginary part, and i is the imaginary unit, c is the coefficient of the real part, and d is the coefficient of the imaginary part.

[0063] (2) Step b

[0064] When vectorizing a matrix Rxx consisting of multiple signals, the arrangement of the sparse array is first calculated by the following formula and stored in RAM.

[0065]

[0066] Among them, N sare the dimensions of the matrix Rxx, and N1 and N2 are used to define how the sparse array is arranged.

[0067] Then use the formula D = d x -d y ,0≤x,y≤N1+N2-1 calculate the virtual array of the differential common array. Finally, delete the repeated virtual arrays and take out the vector z values ​​corresponding to the non-repeated virtual arrays to form a new vector z1. Where D represents the virtual array, d x and d y is an element in the matrix Rxx, and x,y are the indices of the above elements.

[0068] (3) Step c

[0069] The data of the virtual array in step b is coherent, which will cause the covariance matrix of the virtual array to fail to meet the full rank condition, and thus fail to correctly distinguish the signal subspace from the noise subspace. The solution adopted in the embodiment of the present application is to first divide the virtual array into M+1 subarrays, and then multiply the subarray itself with its conjugate transpose to obtain a (M+1)×(M+1) matrix. Finally, the M+1 matrices are accumulated and the average value is calculated. The covariance matrix can be obtained. Among them, R i is the matrix obtained by multiplying each subarray by its conjugate transpose, where i represents the index.

[0070] 2. Complex Jacobi Algorithm

[0071] The Jacobi algorithm is an iterative algorithm. Each time, a plane rotation matrix is ​​constructed based on the largest off-diagonal element. After a finite number of plane rotations, the original matrix can be converted into a diagonal matrix, whose diagonal elements are eigenvalues ​​and the product of the plane rotation matrix is ​​the eigenvector. The complex version of the Jacobi algorithm can solve the eigenvalues ​​and eigenvectors of the Hermite matrix.

[0072] (1) Find the largest off-diagonal element

[0073] The matrix is ​​stored row by row in memory from the upper left corner to the lower right corner. Assume the size of the matrix is ​​m row ×m col , where m row Indicates the number of rows in the matrix, m col represents the number of columns in the matrix, row represents the row of the matrix element, and col represents the column of the matrix element. Then the address of the element in memory is add relement =(row-1)×m col +col. Since the matrix is ​​a Hermian matrix, we only need to find the maximum value of the off-diagonal elements in the upper triangular matrix. Using the formula add relement =(row-1)×m col+col calculates the addresses of the off-diagonal elements in memory one by one, and then finds the maximum value after taking them out.

[0074] (2) Calculate the values ​​of sinθ and cosθ

[0075] Since sinθ, cosθ, and tan are directly calculated -1 The hardware implementation cost of the function is relatively high. Therefore, in some embodiments, the following simplifications can be made: Through trigonometric functions, we get Sinθ and cosθ can be obtained directly from tan(2θ). The calculation process only involves division and square roots of real numbers. This is because the matrix is ​​a Hermian matrix, r i,j is plural, r i,i and r j,j is a real number. The hardware structure of this calculation process uses only two dividers and a square root operator, and the square root operation is performed using a coordinate rotation digital computer (CORDIC) core.

[0076] (3) Constructing the identity matrix

[0077] Build a module for calculating the identity matrix and name it cs module. Calculate the identity matrix based on different inputs The cosine value c1 and sine value s1 in are calculated in parallel using two sets of cs modules.

[0078] (4) Update the eigenvalue matrix and eigenvector matrix

[0079] The unit matrix has only 4 valid data, so there is no need to perform a full matrix multiplication when updating the eigenvalue matrix and the eigenvector matrix. Multiplying the original matrix with the unit matrix on the left will only change the values ​​of the i-th and j-th rows of the original matrix, and multiplying the original matrix with the unit matrix on the right will only change the values ​​of the i-th and j-th columns of the original matrix. Updating the eigenvalue matrix requires multiplication from left to right, while updating the eigenvector matrix only requires multiplication from right to left. The two can be operated in parallel, and when the eigenvalue matrix is ​​updated, it is considered to have completed one round of iteration.

[0080] (5) Determine whether the iteration is completed

[0081] After one iteration, it is necessary to determine whether all non-diagonal element values ​​in the eigenvalue matrix are less than the threshold. If they are, the iteration is complete, otherwise the next iteration will start until the iteration is complete. This threshold is parameterized and configured by "iteration accuracy". This value can be adjusted according to actual conditions.

[0082] 3. Three-level spectrum peak search

[0083] Before performing a spectrum peak search, it is necessary to distinguish the signal subspace and the noise subspace based on the eigenvalues ​​of the covariance matrix. Specifically, each eigenvalue needs to be compared with other eigenvalues. First, a series of variables are used to represent the sorting results of each eigenvalue, and their initial values ​​are all 1 and stored in RAM. Then, each eigenvalue needs to be compared with all eigenvalues ​​except itself. During the comparison process, if it is less than a certain eigenvalue, its sorting result will be increased by 1. Finally, the eigenvector corresponding to the eigenvalue whose sorting result is greater than the number of sound sources M is read out and stored in the noise subspace RAM.

[0084] Peak search requires calculation of pseudo-spectral function, and calculation of pseudo-spectral function requires knowing the direction vector Its value is related to the array arrangement μ and the scanning angle For a certain μ and Under these conditions, the value of A(θ) is a constant, and the calculation involves exponential solution and trigonometric functions, which requires a large amount of calculation and a long delay time. Therefore, in some embodiments, all values ​​of A(θ) can be stored in a read-only memory (ROM) and read out when needed, which can speed up the calculation and reduce the amount of calculation.

[0085] Then you need to find the trough position, and the search process is as follows: calculate the pseudo-spectral function one by one with a step size of 1°, and search for the trough. After finding the trough, pause the search with an accuracy of 1°, and subtract 1° from the trough angle value as the initial search angle for the second stage; start calculating the pseudo-spectral function with a step size of 0.1°, and search for the trough. After the search is completed, subtract 0.1° from the trough angle value as the starting search angle for the third stage; start calculating the pseudo-spectral function with a step size of 0.01°, and search for the trough. After the search is completed, three search results are output at the same time, and then it is determined whether the number of angle information searched is equal to the number of signal sources. If they are equal, the DOA estimation is completed and returns to the initial state. Otherwise, it will continue to search for the next trough. From this, the final source angle value can be calculated: θ source =θ first ×1°+θ second ×0.1°+θ third ×0.01°. Among them, θ first Represents the angle value calculated in the first stage, θ second Represents the angle value calculated in the second stage, θ third Indicates the angle value calculated in the third stage.

[0086] Figure 1A schematic diagram of an exemplary system 100 for determining the direction of arrival of a signal according to an embodiment of the present application is shown. In some embodiments, the system 100 may be written based on the RISC-V instruction set architecture. The system 100 written based on the RISC-V instruction set architecture can reduce deployment costs and development difficulty: due to the use of the open source RISC-V architecture, the reliance on high-performance processors and complex software is reduced, the development difficulty and cost of the system are reduced, and the product development cycle is accelerated. Low operation and maintenance costs: Since the RISC-V architecture has a good power consumption control module, and is open source and low in price, it effectively reduces operation and maintenance costs and R&D costs.

[0087] like Figure 1 As shown, in some embodiments, the system 100 may include a data input module 101, a fitting module 102, a first calculation module 103, a second calculation module 104, a decomposition module 105, and a spectrum peak search module 106. The data input module 101 may be used to receive multiple signals corresponding to multiple antennas, and the fitting module 102 is connected to the data input module 101, and may be used to determine whether to fit the multiple signals into a sparse array or a uniform linear array.

[0088] The first calculation module 103 can be connected to the fitting module 102, and is used to receive signals from the nested array or the uniform linear array, and calculate the corresponding covariance matrix. In some embodiments, the first calculation module 103 can further include a first submodule: used to calculate the basic covariance matrix Rxx; a second submodule: used to calculate the data of the equivalent virtual array for the sparse array; and a third submodule: used to perform spatial smoothing processing to enhance the resolution of multiple signal sources. In some embodiments, the spatial smoothing processing in the first calculation module 103 improves the system's resolution of multiple signal sources, enhances the performance in a complex signal environment, and enhances the resolution of multiple signal sources.

[0089] The second calculation module 104 can be connected to the first calculation module 103 to calculate the eigenvalues ​​and eigenvectors of the covariance matrix. The decomposition module 105 can be connected to the second calculation module 104 to perform eigenvalue decomposition based on the covariance matrix to distinguish the signal subspace from the noise subspace. In some embodiments, the decomposition module 105 can use an optimized complex Jacobi algorithm to further improve the calculation accuracy and ensure the accuracy of DOA estimation.

[0090] The spectrum peak search module 106 can be connected to the decomposition module 105, and is used to calculate the pseudo spectrum using the MUSIC algorithm, and search on the spectrum to determine the arrival direction of the signal. Finally, the arrival direction is used as an output result.

[0091] In some embodiments, the system 100 may further include a configuration register 107, which may be used for parameters in various modules in the system 100, and the parameters include at least array structure, number of array elements, number of signal sources, number of snapshots, maximum number of iterations, and iteration accuracy of the complex Jacobi algorithm. In some embodiments, the configuration register 107 provides a variety of system parameter setting options, including array structure, number of elements, number of signal sources, number of snapshots, and algorithm iteration parameters. Users can adjust the system configuration independently according to specific application requirements, thereby improving the flexibility of the system.

[0092] In some embodiments, each module in the system 100 can be integrated on a processor of the RISCV instruction set architecture, and the real-time performance and accuracy of DOA estimation can be improved through customized instructions and hardware acceleration technology. Each functional module in the system 100 is independent of each other, which is convenient for integration with other systems or components, has good integration and scalability, and can adapt to future technological developments and changes in market demand.

[0093] In some embodiments, the decomposition module 105 may further include: a maximum non-diagonal element detection unit, used to quickly locate the maximum non-diagonal element in the covariance matrix; an angle calculation unit, which uses a simplified trigonometric function relationship to implement the calculation of sinθ and cosθ through the CORDIC kernel to reduce computing resource consumption; a unit matrix construction and update unit, which constructs a rotation unit matrix according to the calculated angle, and updates the eigenvalue matrix and the eigenvector matrix; an iteration judgment unit, which judges whether the eigenvalue decomposition is completed by comparing all non-diagonal elements with a preset threshold, and continues to iterate if not completed.

[0094] In some embodiments, the spectrum peak search module 106 adopts a three-stage spectrum peak search method, including: in the first stage, a preliminary spectrum peak search is performed with a step size of 1°; in the second stage, based on the results of the first stage, the step size is reduced to 0.1° to accurately locate the spectrum peak; in the third stage, the step size is further reduced to 0.01° to achieve high-precision spectrum peak estimation. The spectrum peak search module improves the efficiency and accuracy of the spectrum peak search by pre-storing the A(θ) constant table (ROM), combining parallel computing and optimized search algorithms. By pre-storing the A(θ) constant, simplifying the complex number operation process and time-division multiplexing computing resources, the hardware resource occupancy and power consumption are reduced. This enables the system to operate efficiently even in a resource-constrained environment, with a higher cost-effectiveness.

[0095] In summary, the system 100 of the embodiment of the present application achieves high-precision, low-latency and low-resource-consumption DOA estimation by optimizing the hardware-accelerated MUSIC algorithm under the RISC-V architecture. The high parallelism, configurability and adaptability of the system give it significant advantages in the field of modern signal processing, and meet the strict requirements of various high-performance applications for real-time and accuracy.

[0096] Figure 2 A flow chart of an exemplary method 200 for determining a direction of arrival of a signal according to an embodiment of the present application is shown. The method 200 may be executed by the above-mentioned system 100. In some embodiments, the system 100 is written based on the RISC-V instruction set architecture. The method 200 may include the following steps.

[0097] In step 202, a plurality of signals corresponding to a plurality of antennas are received.

[0098] In step 204, it is determined whether to convert the plurality of signals into a sparse array or a uniform linear array.

[0099] In some embodiments, based on an array structure register, it is determined whether to fit the plurality of signals into a sparse array or a uniform linear array.

[0100] In step 206, in response to converting the plurality of signals into a sparse array, a covariance matrix of the sparse array is calculated.

[0101] In some embodiments, matrix multiplication is performed on the sparse array, and the arrangement of the sparse array is calculated; based on the arrangement of the sparse array, a virtual array of the differential covariance array is calculated; the virtual array is divided into a plurality of sub-arrays, and the covariance matrix is ​​obtained based on the plurality of sub-arrays.

[0102] In some embodiments, a RISC-V processor is used to calculate the covariance matrix of the sparse array.

[0103] In step 208, the eigenvalues ​​and eigenvectors of the covariance matrix are calculated.

[0104] In some embodiments, the non-diagonal elements of the covariance matrix are calculated; based on the non-diagonal elements, first matrix parameters and second matrix parameters are obtained; based on the first matrix parameters and the second matrix parameters, eigenvalue matrix and eigenvector matrix are obtained; based on the eigenvalue matrix and the eigenvector matrix, the eigenvalues ​​and the eigenvectors are obtained.

[0105] In step 210, a signal subspace is obtained according to the eigenvalues ​​and the eigenvectors.

[0106] In step 212, the directions of arrival of the plurality of signals are determined based on the signal subspace.

[0107] In some embodiments, the first pseudo-spectral function of the signal subspace is calculated with a step size of 1°; the first trough angle value is determined based on the first pseudo-spectral function; the second pseudo-spectral function of the signal subspace is calculated with a step size of 0.1°; the second trough angle value is determined based on the second pseudo-spectral function; the third pseudo-spectral function of the signal subspace is calculated with a step size of 0.01°; the third trough angle value is determined based on the third pseudo-spectral function; the arrival directions of the multiple signals are calculated based on the first trough angle value, the second trough angle value and the third trough angle value.

[0108] In some embodiments, a direction vector of the signal subspace is calculated; based on the direction vector, the first pseudo-spectral function, the second pseudo-spectral function and the third pseudo-spectral function are calculated, and the direction vector is stored in a memory corresponding to the signal subspace.

[0109] In some embodiments, parameters in the system are configured, the parameters including at least array structure, array elements, number of sources, snapshots, and maximum number of iterations.

[0110] The system and method for determining the direction of arrival of a signal provided by the present application can also be used as follows.

[0111] 1. Cross-domain integration and innovative applications

[0112] The hardware acceleration system 100 of the present application can be combined with other technical fields based on the multi-signal classification (MUSIC) algorithm to create new application value. For example, combined with artificial intelligence (AI) technology, an intelligent signal processing system can be developed that can learn and predict signal patterns and automatically adjust parameters to optimize DOA estimation. In addition, the technology can be combined with Internet of Things (IoT) devices for sound positioning and tracking in smart homes and smart cities to improve security and user experience.

[0113] 2. Technology iteration and optimization

[0114] With the advancement of semiconductor technology, the hardware acceleration system 100 in this application can be further iterated and optimized. For example, by using more advanced chip manufacturing processes, the chip area can be further reduced, the power consumption can be reduced, and the operation speed can be increased. At the same time, the algorithm itself can also be optimized by introducing more efficient mathematical models and calculation methods, such as using machine learning algorithms to automatically adjust the parameters of eigenvalue decomposition to adapt to different signal environments.

[0115] 3. Internationalization and Standardization

[0116] This application adopts the open source RISC-V architecture, and its interfaces and parameters are set according to the open source specifications, ensuring compatibility and interoperability on a global scale. In addition, considering the differences in radio frequencies and data protection laws in different countries and regions, the system needs to be appropriately adjusted and optimized to meet the regulatory requirements of various regions.

[0117] 4. Development of new application scenarios

[0118] The hardware acceleration system 100 of the present application can be applied to a variety of emerging scenarios. For example, in self-driving cars, the system can be used to accurately locate environmental sounds, which can improve the vehicle's perception ability and increase driving safety. In the field of health care, the system can be used for non-invasive monitoring equipment to monitor the patient's breathing and heartbeat through sound analysis. In addition, the technology can also be used for environmental monitoring, such as sound monitoring in wildlife reserves, to effectively identify and track the activities of different animals. Since RISC-V can use customized instruction sets and is an open source architecture, it has rich interfaces, which is convenient for future connection with equipment in different fields.

[0119] It should be noted that the method of the embodiment of the present application can be performed by a single device, such as a computer or server. The method of this embodiment can also be applied to a distributed scenario and completed by multiple devices cooperating with each other. In the case of such a distributed scenario, one of the multiple devices can only perform one or more steps in the method of the embodiment of the present application, and the multiple devices will interact with each other to complete the described method.

[0120] It should be noted that the above describes some embodiments of the present application. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the above embodiments and still achieve the desired results. In addition, the processes depicted in the accompanying drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0121] Based on the same technical concept, corresponding to any of the above-mentioned embodiments, the present application also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the method 200 described in any of the above embodiments when executing the program.

[0122] Figure 3A schematic diagram of an exemplary electronic device according to an embodiment of the present application is shown, and the device may include: a processor 1010, a memory 1020, an input / output interface 1030, a communication interface 1040, and a bus 1050. The processor 1010, the memory 1020, the input / output interface 1030, and the communication interface 1040 are connected to each other in communication within the device through the bus 1050.

[0123] The processor 1010 can be implemented by a general-purpose CPU (Central Processing Unit), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this specification.

[0124] The memory 1020 may be implemented in the form of ROM (Read Only Memory), RAM (Random Access Memory), static storage device, dynamic storage device, etc. The memory 1020 may store an operating system and other application programs. When the technical solutions provided in the embodiments of this specification are implemented by software or firmware, the relevant program codes are stored in the memory 1020 and are called and executed by the processor 1010.

[0125] The input / output interface 1030 is used to connect the input / output module to realize information input and output. The input / output module can be configured in the device as a component (not shown in the figure), or it can be externally connected to the device to provide corresponding functions. The input device may include a keyboard, a mouse, a touch screen, a microphone, various sensors, etc., and the output device may include a display, a speaker, a vibrator, an indicator light, etc.

[0126] The communication interface 1040 is used to connect a communication module (not shown) to realize communication interaction between the device and other devices. The communication module can realize communication through a wired mode (such as USB, network cable, etc.) or a wireless mode (such as mobile network, WIFI, Bluetooth, etc.).

[0127] The bus 1050 includes a path that transmits information between the various components of the device (eg, the processor 1010, the memory 1020, the input / output interface 1030, and the communication interface 1040).

[0128] It should be noted that, although the above device only shows the processor 1010, the memory 1020, the input / output interface 1030, the communication interface 1040 and the bus 1050, in the specific implementation process, the device may also include other components necessary for normal operation. In addition, it can be understood by those skilled in the art that the above device may also only include the components necessary for implementing the embodiments of the present specification, and does not necessarily include all the components shown in the figure.

[0129] The electronic device of the above embodiment is used to implement the corresponding method 200 in any of the above embodiments, and has the beneficial effects of the corresponding method embodiment, which will not be described in detail here.

[0130] Based on the same technical concept, corresponding to any of the above-mentioned embodiments, the present application also provides a non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium stores computer instructions, and the computer instructions are used to enable the computer to execute method 200 described in any of the above embodiments.

[0131] The computer-readable medium of this embodiment includes permanent and non-permanent, removable and non-removable media, and information storage can be achieved by any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, tape disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device.

[0132] The computer instructions stored in the storage medium of the above embodiment are used to enable the computer to execute the method 200 described in any of the above embodiments, and have the beneficial effects of the corresponding method embodiments, which will not be repeated here.

[0133] Those skilled in the art should understand that the discussion of any of the above embodiments is merely illustrative and is not intended to imply that the scope of the present application (including the claims) is limited to these examples. In line with the concept of the present application, the technical features in the above embodiments or different embodiments may be combined, the steps may be implemented in any order, and there are many other variations of the different aspects of the embodiments of the present application as described above, which are not provided in detail for the sake of simplicity.

[0134] In addition, to simplify the description and discussion, and in order not to make the embodiments of the present application difficult to understand, the known power supply / ground connection with the integrated circuit (IC) chip and other components may or may not be shown in the provided drawings. In addition, the device can be shown in the form of a block diagram to avoid making the embodiments of the present application difficult to understand, and this also takes into account the fact that the details of the implementation of these block diagram devices are highly dependent on the platform to be implemented in the embodiments of the present application (that is, these details should be fully within the scope of understanding of those skilled in the art). In the case of elaborating specific details (e.g., circuits) to describe exemplary embodiments of the present application, it is obvious to those skilled in the art that the embodiments of the present application can be implemented without these specific details or when these specific details are changed. Therefore, these descriptions should be considered to be illustrative rather than restrictive.

[0135] Although the present application has been described in conjunction with specific embodiments of the present application, many replacements, modifications and variations of these embodiments will be apparent to those skilled in the art from the foregoing description. For example, other memory architectures (e.g., dynamic RAM (DRAM)) may use the embodiments discussed.

[0136] The embodiments of the present application are intended to cover all such substitutions, modifications and variations that fall within the broad scope of the appended claims. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the embodiments of the present application should be included in the scope of protection of the present application.

Claims

1. A system for determining a direction of arrival of a signal, comprising: A data input module is configured to receive a plurality of signals corresponding to a plurality of antennas; A fitting module configured to determine whether to fit the plurality of signals into a sparse array or a uniform linear array; A first computing module, configured to, in response to fitting the plurality of signals into a sparse array, compute a covariance matrix of the sparse array; A second calculation module is configured to calculate the eigenvalues ​​and eigenvectors of the covariance matrix; A decomposition module is configured to obtain a signal subspace according to the eigenvalue and the eigenvector; The spectrum peak search module is configured to determine the arrival directions of the multiple signals based on the signal subspace.

2. The system of claim 1, wherein: The peak search module is further configured to: Calculate the first pseudo-spectral function of the signal subspace with a step size of 1°; determining a first trough angle value according to the first pseudo-spectral function; Calculate the second pseudo-spectral function of the signal subspace with a step size of 0.1°; determining a second trough angle value according to the second pseudo-spectral function; Calculate the third pseudo-spectral function of the signal subspace with a step size of 0.01°; Determining a third trough angle value according to the third pseudo-spectral function; The arrival directions of the plurality of signals are calculated according to the first trough angle value, the second trough angle value and the third trough angle value.

3. The system of claim 1, wherein: The second computing module is further configured to: Calculating off-diagonal elements of the covariance matrix; According to the non-diagonal elements, a first matrix parameter and a second matrix parameter are obtained; Obtaining an eigenvalue matrix and an eigenvector matrix according to the first matrix parameters and the second matrix parameters; The eigenvalues ​​and the eigenvectors are obtained according to the eigenvalue matrix and the eigenvector matrix.

4. The system of claim 1, wherein: The first computing module is further configured to: Performing a matrix multiplication operation on the sparse array and calculating the arrangement of the sparse array; Calculating a virtual array of a differential common array according to the arrangement of the sparse array; The virtual array is divided into a plurality of sub-arrays, and the covariance matrix is ​​obtained according to the plurality of sub-arrays.

5. The system of claim 1, wherein: The fitting module is further configured to: Based on the array structure register, it is determined whether to fit the plurality of signals into a sparse array or a uniform linear array.

6. The system of claim 2, wherein: The peak search module is further configured to: Calculating a direction vector of the signal subspace; The first pseudo spectral function, the second pseudo spectral function and the third pseudo spectral function are calculated according to the direction vector, and the direction vector is stored in a memory corresponding to the signal subspace.

7. The system of claim 1, wherein: The first computing module is further configured to: Using a RISC-V processor, the covariance matrix of the sparse array is calculated.

8. The system of claim 1, wherein: The system further includes a configuration register, wherein the configuration register is configured as: Parameters in the system are configured, the parameters including at least array structure, array elements, number of sources, snapshots, and maximum number of iterations.

9. The system of claim 1, wherein: The system is written based on the RISC-V instruction set architecture.

10. A method for determining a direction of arrival of a signal, comprising: receiving multiple signals corresponding to multiple antennas; Determining to convert the plurality of signals into a sparse array or a uniform linear array; In response to converting the plurality of signals into a sparse array, calculating a covariance matrix of the sparse array; Calculating the eigenvalues ​​and eigenvectors of the covariance matrix; Obtaining a signal subspace according to the eigenvalue and the eigenvector; Based on the signal subspace, directions of arrival of the plurality of signals are determined.