LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Steering Vector of the Vector Antenna in LabView

I am using the MUSIC algorithm and the Vector Antenna to determine the AoA of the incoming signals in LabView. My question is how can I implement the Steering Vector for the Vector Antenna in LabView? The mathematical equation of the Vector antenna is:

 

hadeelobaid_1-1648249110105.png

 

Where 𝜙 is the azimuth angle and 𝜃 is the elevation angle.

0 Kudos
Message 1 of 17
(2,875 Views)

I don't understand what you don't understand.  I don't know about the "MUSIC algorithm", "Vector Antenna", or "AoA", but I certainly know how to evaluate an expression such as "cos(phi)*cos(theta)" in LabVIEW, and (given phi and theta) derive a 6 x 2 array similar to your d(phi, theta).

 

If I were going to do something like this, I would write a sub-VI called "Compute d" (though I might come up with a better name if I understood what you are really trying to do), pass it phi and theta, and compute these terms.  I'd probably create a pair of nested FOR loops, the outer one for the 6 rows of your matrix and the inner one for the 2 columns, and put in each "inner" FOR loop the appropriate formula (so that 0, 0 would have cos(phi)*cos(theta)).  Note that you can take the 2D array that comes out of these nested FOR loops and wire it to a Matrix Front Panel control (since, I'm guessing, you'll be using it in Matrix operations).  Alternatively, you can also treat it as a 2D Array ...

 

Bob Schor

0 Kudos
Message 2 of 17
(2,847 Views)

Dear Bob, thank you for your reply.

Actually, I am very new to LabView.....The steering vector (represents the set of phase delays a plane wave experiences, evaluated at a set of array elements (antennas)). For example, the VI attached is the steering vector to search one angle which is the azimuth angle (Angle of Arrival of the incoming signal) in 180° for the 4-elemnets Uniform Linear Array (ULA) based on the equation of the the ULA :

hadeelobaid_0-1648319678917.png

Now, I want to replace the ULA with a 2D Vector Antenna to search two angles (azimuth θ and Elevation ϕ angles) based on the equation of the 2D Vector Antenna:

hadeelobaid_0-1648320162370.png

As I am very new to LabView, I even don't know how to do the steering vector of the 2D Vector based on the above the equation.

 

 

 

0 Kudos
Message 3 of 17
(2,842 Views)

Your "Steering Vector" VI has an "Untitled 1" sub-VI inside it that take Rx Wavelength (in numbers) and Azimuth (in radians) and outputs a 1D Array of "something".  However, my crystal ball is not working, so I can't tell what "Untitled" is doing.  Maybe you could attach that, as well, and anything else you think might be useful for me to know (I'm good at math, including spherical polar coordinates, but am not an Engineer ...).

 

Bob Schor

0 Kudos
Message 4 of 17
(2,837 Views)

Sorry, I forgot to attach the sub VI....Here it is.

 

0 Kudos
Message 5 of 17
(2,834 Views)

Well, it appears that one really needs to understand the math behind the Multiple Signal Classification (a.k.a. Music) algorithm.  I gather your attached VI was somehow related to the 1D (Azimuth only) algorithm, but I don't understand why you have factprs of 0, 1, 2, and 3 times the cosine of the Azimuth angle in your sub-VI, so figuring out how to go from 1D to 2D (adding elevation) is a bit beyond me.  Better get some EEs with experience in radar and similar technologies involved.

 

Bob Schor

0 Kudos
Message 6 of 17
(2,827 Views)

No worries, thank you so much.

By the way, the 0,1,2,3 are the number of the elements of the ULA which is 4 antenna.

 

 

0 Kudos
Message 7 of 17
(2,823 Views)

@hadeelobaid wrote:

No worries, thank you so much.

By the way, the 0,1,2,3 are the number of the elements of the ULA which is 4 antenna


I figured that out, but was puzzled by your using them in a multiplication (effectively giving a 0 weight to the first antenna).  But as I said, I didn't go steep myself in the derivation of the ULA (which I'm sure I would understand, but have other "fish to fry", as they say ...).

 

Bob Schor

0 Kudos
Message 8 of 17
(2,800 Views)

Well, I finished coding the first matrix in Labview, but now I want to multiply with the 1D array like below:

hadeelobaid_1-1649097503766.png

I want to transpose the 1D array to be able to multiply with the matrix.....Actually, there is a 1D transpose function but it doesn't work 🙁. I attached the VI.

0 Kudos
Message 9 of 17
(2,766 Views)

Your VI "Steering Vector" is almost correct.  You create a 6 x 2 array, and a 2 x 1 array.  Now, if you had a 6 x 2 matrix and you wanted to multiply it by a 2 x 1 matrix, you'd expect to get a 6 x 1 matrix.  Furthermore, if the 2 x 1 matrix was the transpose of [1, 0], you'd expect to get the first column of the 6 x 2 matrix.

 

That's exactly what happens!  Congratulations, your code "almost" works!  All that is missing are ... matrices.  There is a function on the Array Palette, in the Matrix sub-Palette, that turns Arrays (1D or 2D) into matrices.  Multiply those two matrices and you'll get another matrix that has the Result You've Been Looking For.

 

Bob Schor

0 Kudos
Message 10 of 17
(2,753 Views)