论文部分内容阅读
Abstract — Direction of arrival (DOA) estimation is an important research direction in array signal processing field, which has a very broad application prospects, such as radar, communication, sonar, navigation, electronic countermeasures, smart antenna and so on. In this paper, implementation of MUSIC algorithm, which is widely applied in array signal processing, has been analyzed. Results comparison is based on MATLAB and ARM processor. Comparison result indicates that in practice the ARM processor can estimate DOA satisfactorily.
Index Terms — Direction of arrival estimation, Mobile antennas, Adaptive arrays, Antenna arrays, Signal processing algorithm.
I. INTRODUCTION
Array signal processing has two main aspects, namely, DOA estimation and beamforming. DOA estimation of space used the mechanical scanning method at first, which failed in practice of both speed and accuracy. However, beamforming technology research makes a breakthrough progress in this field. But when the difference between the sources of the incident angle is smaller than the beam width, it will also cause the increase of the angle estimation error, which is called the Rayleigh limitation. One solution is to increase the array antenna aperture. In order to achieve under the smaller size of the array antenna conditions, the distinction between the two signals within the beam width, it is necessary to look for super-resolution algorithm. Super-resolution technology is expected in a limited array of conditions than the conventional method to obtain excellent technical performance. Super-resolution techniques have now made significant progress, in order to improve the angular resolution, it adopted a similar spectrum estimation in time-domain nonlinear processing technology to enable breakthrough in angular resolution limit of Rayleigh criteria, such as maximum likelihood estimation, maximum entropy estimation and decomposition of the characteristics of the correlation matrix approach, the typical method in which is multiple signal classification algorithm (Music) and Esprit.
In this paper, the implementation issue of MUSIC (Multiple Signal Classification) on an ARM processor is presented. The incoming signals are sampled at first (the antennas receive signals). The sampled signals data are stored in txt files. The microcontroller (i.e. ARM) read data (sampled signals) from the data files in previous step. At last, it will generate a txt file which contains the spectrum data. It connects to PC via USB. There is a MATLAB program generating three spectrums (from MATLAB, Visual C, ARM processor) in one figure. From the figure, we can see clearly the DOA (peaks on spectrum) and difference among the three spectrums. In the meantime, the microcontroller connects to a host PC via USB which is as both transmitting and receiving data. The message from the microcontroller will appear on PC. The whole process is show in Figure 1. This paper is organized as follows. Sect.II presents the principle DOA estimation in MUSIC Method briefly. Sect.III introduces performance of MUSIC algorithm in MATLAB and Sect.IV describes the basic ideas of MUSIC algorithm in C language. In Sect.V, given the characteristics of mbed microcontroller to complete the implementation on ARM, it gives the specifications. Sect.VI discusses the MUSIC algorithm performance on three programing tools.
II. MUSIC of DOA estimation
For last twenty years, various algorithms of spectral estimation have gained much achievement. MUSIC (Multiple signal classification) is one classic algorithm among them.
MUSIC detects frequencies in a signal or autocovariance matrix by computing the eigenvalues and eigenvectors on the covariance matrix of a vector y of M samples from the received signal.
The data model of MUSIC:
where v is a vector of M noise samples, s is a vector of N signal amplitudes, and A is the matrix of samples of the signal frequencies.
Assume a zero-mean signal and thermal noise, and then the covariance of y has the form
is the signal autocovariance matrix, I is the identity matrix, and is the noise variance. From the eigendecomposition of Ry use the eigenvectors related to the N maximum eigenvalues to define the signal subspace (the column space of A, which is not used to compute the spectrum), and use the other eigenvectors to define the noise subspace, . From the orthogonality of the signal and noise subspaces, finding the peaks in the estimator function
for various values yields the strongest frequencies, where refers to the columns of A.
III. MUSIC Algorithm on MATLAB
The simulation performance on MATLAB presents the characteristics of MUSIC algorithm.
In this algorithm, it is assumed the number of signal source and antenna element for a uniform linear array is known.
In the definition, there are three signals in -45o, 30o and 50o direction. Then it gets the number of source and antenna element. It is assumed the element spacing is 0.5λ(λ is the wavelength). The incoming signals power of 1 is simply for the computation. The number of snapshot L is 500.
The MATLAB program gets the MUSIC spectrum in which peaks point the direction of incoming signals. The range of the spectrum is -90o to 90o.
The performance of this algorithm is depended on each parameter above. Next, it will show how these parameters influence it. After several experiments on parameters of MUSIC, following conditions should be set for the MUSIC algorithm.
?Signal degree should not be too large (10O~15O to 90O)
?Signals degree should not be too close (more than 15O)
?The number of signals is less than the number of antenna elements (N>K)
?The number of snapshot should be large enough ( more than 200)
The following figures show the bad performance on MATLAB beyond the conditions.
V. Implementation on ARM microcontroller
This mbed Microcontroller is based on the NXP LPC1768 with an ARM Cortex-M3 Core running at 96MHz, 512KB FLASH, 64KB RAM and lots of interfaces including Ethernet, USB Device and Host, CAN, SPI, I2C and other I/O.
ARM controller has serial communication with a PC (SerialPC) and a file system (localfilesystem) to read and write files. Moreover, the hardware limitation should be considered such as the size of RAM.
The mbed Microcontroller communicates with the host PC through a "USB Virtual Serial Port" over the same USB cable that is used for programming.
Serial pc(USBTX, USBRX); // tx, rx
“Localfilesystem” is a file system for accessing the local mbed Microcontroller USB disk drive.
This allows programs to read and write files on the same disk drive that is used to program the mbed Microcontroller.
?Example
#include "mbed.h"
LocalFileSystem local("local");
// Create the local filesystem under the name "local"
int main() {
FILE *fp = fopen("/local/out.txt", "w");
// Open "out.txt" on the local file system for writing
fprintf(fp, "Hello World!");
fclose(fp);
}
After the function declaration, the standard C file access functions are used to open, read and write files. Moreover, it does not need to add “pc” to “fprintf” like “pc.printf”, just like it in the orginal C program.
The biggest disadvantage for MUSIC algorithm is large computation. Moreover, two methods used in this paper add more computation to the microcontroller. One is the “for” statement to compute every element in the matrix, and the other one is reading large data files.
In the original C program, the number of snapshot L is 500. The sampled signals matrix X is a matrix of 5*500. The data files generated from MATLAB are 61KB in total but the RAM is 64KB. That is why the complier can generated the “.bin” file but it cannot run. To solve this problem, I reduce L to 200 to decrease the size of files to 25KB. The sampled signals matrix X turns to be a matrix of 5*200. Another big matrix is the steering vector al whose size of 5*181. The original setting is that the angles to compute the spectrum are from -90o to 90o, every 1o is a point. I do not change the range of angles but make every 3o is a point. So the steering matrix al is a 5*61 matrix and then the microcontroller can read data and execute the program. VI. Results discussion
At first let us see the results from Visual Studio and ARM microprocessor. This comparison is under the same programming language, with different parameters and processors.
Here are three spectrums from different tools – MATLAB, C language, ARM microprocessor.
I will discuss the MUSIC algorithm performance in the three programming tools in three respects.
?Accuracy
In MATLAB the float number types are divided into single and double, respectively, in the corresponding C language float and double which occupies 4byte and 8byte storage space respectively. In MATLAB, the default matrix type is double. In C language, I set the float number are double. As double type is more accuracy than float type, the spectrum is in good performance in MATLAB and C language. However, double type occupancies double size of memory, so the program is under control of the microcontroller RAM.
?Efficiency
In my C program, I use “for” statement to compute matrix. This makes the C program is quite lower efficient than MATLAB program. If MTL (Matrix Template Library) is added into C program, its efficiency will highly increase [5].
?Stability
Compared MATLAB which is widely used in simulation in software, C program can access the physical address in hardware. Due to the flexibility of C language, implementation with C language program is easy to cause memory leaks, abnormal operation, and the unexpected results problems. In the C language development process, quality procedures are must attached great importance. Ways to improve program stability for project management and development process maximize the stability of the program to ensure the success of the project development.
VII. Conclusion
The paper is about implementation MUSIC algorithm on ARM processor and discusses its performance. Though there are many researches have been done on MUSIC algorithm, rarely researchers work on implementation on hardware. This paper gives a novel method to implement MUSIC algorithm on ARM processor in C language. In addition, discussion on the performance is also presented in this paper.
ACKNOWLEDGEMENT
First and foremost, I would like to show my deepest gratitude to my supervisor, Dr. Ahmet Erdogan, a respectable, responsible and resourceful scholar, who has provided me with valuable guidance in every stage of my project and this thesis. I shall extend my thanks to Mr. Ahmed EI-Rayis for all his kindness and help.
REFERENCES
[1] C. A. Balanis and P. I. Ioannides, Introduction to Smart Antenna, First ed: Morgan and Claypool, 2007.
[2] L. C. Godara, "Application of antenna arrays to mobile communications. II. Beam-forming and direction-of-arrival considerations," Proceedings of the IEEE, vol.85, pp. 1195-1245, 1997.
[3] L. C. Godara, "Applications of antenna arrays to mobile communications. I. Performance improvement, feasibility, and system considerations," Proceedings of the IEEE, vol. 85, pp. 1031-1060, 1997.
[4] P. Ioannides and C. A. Balanis, "Uniform circular arrays for smart antennas," Antennas and Propagation Magazine, IEEE, vol. 47, pp. 192-206, 2005.
[5]http://ptolemy.eecs.berkeley.edu/papers/96/dtmf_ict/www/node5.html, “MUSIC Algorithm”, Brian L. Evans, 211-105 Cory Hall, Berkeley, CA 94720-1772
[6] http://osl.iu.edu/research/mtl/performance.php3, ?2001-2008 The Trustees of Indiana University, Page last modified: 29-Oct-2007
Index Terms — Direction of arrival estimation, Mobile antennas, Adaptive arrays, Antenna arrays, Signal processing algorithm.
I. INTRODUCTION
Array signal processing has two main aspects, namely, DOA estimation and beamforming. DOA estimation of space used the mechanical scanning method at first, which failed in practice of both speed and accuracy. However, beamforming technology research makes a breakthrough progress in this field. But when the difference between the sources of the incident angle is smaller than the beam width, it will also cause the increase of the angle estimation error, which is called the Rayleigh limitation. One solution is to increase the array antenna aperture. In order to achieve under the smaller size of the array antenna conditions, the distinction between the two signals within the beam width, it is necessary to look for super-resolution algorithm. Super-resolution technology is expected in a limited array of conditions than the conventional method to obtain excellent technical performance. Super-resolution techniques have now made significant progress, in order to improve the angular resolution, it adopted a similar spectrum estimation in time-domain nonlinear processing technology to enable breakthrough in angular resolution limit of Rayleigh criteria, such as maximum likelihood estimation, maximum entropy estimation and decomposition of the characteristics of the correlation matrix approach, the typical method in which is multiple signal classification algorithm (Music) and Esprit.
In this paper, the implementation issue of MUSIC (Multiple Signal Classification) on an ARM processor is presented. The incoming signals are sampled at first (the antennas receive signals). The sampled signals data are stored in txt files. The microcontroller (i.e. ARM) read data (sampled signals) from the data files in previous step. At last, it will generate a txt file which contains the spectrum data. It connects to PC via USB. There is a MATLAB program generating three spectrums (from MATLAB, Visual C, ARM processor) in one figure. From the figure, we can see clearly the DOA (peaks on spectrum) and difference among the three spectrums. In the meantime, the microcontroller connects to a host PC via USB which is as both transmitting and receiving data. The message from the microcontroller will appear on PC. The whole process is show in Figure 1. This paper is organized as follows. Sect.II presents the principle DOA estimation in MUSIC Method briefly. Sect.III introduces performance of MUSIC algorithm in MATLAB and Sect.IV describes the basic ideas of MUSIC algorithm in C language. In Sect.V, given the characteristics of mbed microcontroller to complete the implementation on ARM, it gives the specifications. Sect.VI discusses the MUSIC algorithm performance on three programing tools.
II. MUSIC of DOA estimation
For last twenty years, various algorithms of spectral estimation have gained much achievement. MUSIC (Multiple signal classification) is one classic algorithm among them.
MUSIC detects frequencies in a signal or autocovariance matrix by computing the eigenvalues and eigenvectors on the covariance matrix of a vector y of M samples from the received signal.
The data model of MUSIC:
where v is a vector of M noise samples, s is a vector of N signal amplitudes, and A is the matrix of samples of the signal frequencies.
Assume a zero-mean signal and thermal noise, and then the covariance of y has the form
is the signal autocovariance matrix, I is the identity matrix, and is the noise variance. From the eigendecomposition of Ry use the eigenvectors related to the N maximum eigenvalues to define the signal subspace (the column space of A, which is not used to compute the spectrum), and use the other eigenvectors to define the noise subspace, . From the orthogonality of the signal and noise subspaces, finding the peaks in the estimator function
for various values yields the strongest frequencies, where refers to the columns of A.
III. MUSIC Algorithm on MATLAB
The simulation performance on MATLAB presents the characteristics of MUSIC algorithm.
In this algorithm, it is assumed the number of signal source and antenna element for a uniform linear array is known.
In the definition, there are three signals in -45o, 30o and 50o direction. Then it gets the number of source and antenna element. It is assumed the element spacing is 0.5λ(λ is the wavelength). The incoming signals power of 1 is simply for the computation. The number of snapshot L is 500.
The MATLAB program gets the MUSIC spectrum in which peaks point the direction of incoming signals. The range of the spectrum is -90o to 90o.
The performance of this algorithm is depended on each parameter above. Next, it will show how these parameters influence it. After several experiments on parameters of MUSIC, following conditions should be set for the MUSIC algorithm.
?Signal degree should not be too large (10O~15O to 90O)
?Signals degree should not be too close (more than 15O)
?The number of signals is less than the number of antenna elements (N>K)
?The number of snapshot should be large enough ( more than 200)
The following figures show the bad performance on MATLAB beyond the conditions.
V. Implementation on ARM microcontroller
This mbed Microcontroller is based on the NXP LPC1768 with an ARM Cortex-M3 Core running at 96MHz, 512KB FLASH, 64KB RAM and lots of interfaces including Ethernet, USB Device and Host, CAN, SPI, I2C and other I/O.
ARM controller has serial communication with a PC (SerialPC) and a file system (localfilesystem) to read and write files. Moreover, the hardware limitation should be considered such as the size of RAM.
The mbed Microcontroller communicates with the host PC through a "USB Virtual Serial Port" over the same USB cable that is used for programming.
Serial pc(USBTX, USBRX); // tx, rx
“Localfilesystem” is a file system for accessing the local mbed Microcontroller USB disk drive.
This allows programs to read and write files on the same disk drive that is used to program the mbed Microcontroller.
?Example
#include "mbed.h"
LocalFileSystem local("local");
// Create the local filesystem under the name "local"
int main() {
FILE *fp = fopen("/local/out.txt", "w");
// Open "out.txt" on the local file system for writing
fprintf(fp, "Hello World!");
fclose(fp);
}
After the function declaration, the standard C file access functions are used to open, read and write files. Moreover, it does not need to add “pc” to “fprintf” like “pc.printf”, just like it in the orginal C program.
The biggest disadvantage for MUSIC algorithm is large computation. Moreover, two methods used in this paper add more computation to the microcontroller. One is the “for” statement to compute every element in the matrix, and the other one is reading large data files.
In the original C program, the number of snapshot L is 500. The sampled signals matrix X is a matrix of 5*500. The data files generated from MATLAB are 61KB in total but the RAM is 64KB. That is why the complier can generated the “.bin” file but it cannot run. To solve this problem, I reduce L to 200 to decrease the size of files to 25KB. The sampled signals matrix X turns to be a matrix of 5*200. Another big matrix is the steering vector al whose size of 5*181. The original setting is that the angles to compute the spectrum are from -90o to 90o, every 1o is a point. I do not change the range of angles but make every 3o is a point. So the steering matrix al is a 5*61 matrix and then the microcontroller can read data and execute the program. VI. Results discussion
At first let us see the results from Visual Studio and ARM microprocessor. This comparison is under the same programming language, with different parameters and processors.
Here are three spectrums from different tools – MATLAB, C language, ARM microprocessor.
I will discuss the MUSIC algorithm performance in the three programming tools in three respects.
?Accuracy
In MATLAB the float number types are divided into single and double, respectively, in the corresponding C language float and double which occupies 4byte and 8byte storage space respectively. In MATLAB, the default matrix type is double. In C language, I set the float number are double. As double type is more accuracy than float type, the spectrum is in good performance in MATLAB and C language. However, double type occupancies double size of memory, so the program is under control of the microcontroller RAM.
?Efficiency
In my C program, I use “for” statement to compute matrix. This makes the C program is quite lower efficient than MATLAB program. If MTL (Matrix Template Library) is added into C program, its efficiency will highly increase [5].
?Stability
Compared MATLAB which is widely used in simulation in software, C program can access the physical address in hardware. Due to the flexibility of C language, implementation with C language program is easy to cause memory leaks, abnormal operation, and the unexpected results problems. In the C language development process, quality procedures are must attached great importance. Ways to improve program stability for project management and development process maximize the stability of the program to ensure the success of the project development.
VII. Conclusion
The paper is about implementation MUSIC algorithm on ARM processor and discusses its performance. Though there are many researches have been done on MUSIC algorithm, rarely researchers work on implementation on hardware. This paper gives a novel method to implement MUSIC algorithm on ARM processor in C language. In addition, discussion on the performance is also presented in this paper.
ACKNOWLEDGEMENT
First and foremost, I would like to show my deepest gratitude to my supervisor, Dr. Ahmet Erdogan, a respectable, responsible and resourceful scholar, who has provided me with valuable guidance in every stage of my project and this thesis. I shall extend my thanks to Mr. Ahmed EI-Rayis for all his kindness and help.
REFERENCES
[1] C. A. Balanis and P. I. Ioannides, Introduction to Smart Antenna, First ed: Morgan and Claypool, 2007.
[2] L. C. Godara, "Application of antenna arrays to mobile communications. II. Beam-forming and direction-of-arrival considerations," Proceedings of the IEEE, vol.85, pp. 1195-1245, 1997.
[3] L. C. Godara, "Applications of antenna arrays to mobile communications. I. Performance improvement, feasibility, and system considerations," Proceedings of the IEEE, vol. 85, pp. 1031-1060, 1997.
[4] P. Ioannides and C. A. Balanis, "Uniform circular arrays for smart antennas," Antennas and Propagation Magazine, IEEE, vol. 47, pp. 192-206, 2005.
[5]http://ptolemy.eecs.berkeley.edu/papers/96/dtmf_ict/www/node5.html, “MUSIC Algorithm”, Brian L. Evans, 211-105 Cory Hall, Berkeley, CA 94720-1772
[6] http://osl.iu.edu/research/mtl/performance.php3, ?2001-2008 The Trustees of Indiana University, Page last modified: 29-Oct-2007