Main Content

ULA MUSIC Spectrum

MUSIC spatial spectrum estimator for ULA

  • ULA MUSIC Spectrum block

Libraries:
Phased Array System Toolbox / Direction of Arrival

Description

The ULA MUSIC Spectrum block estimates the spatial spectrum of incoming narrowband signals using the MUSIC algorithm. The algorithm computes the MUSIC pseudo-spectrum of a ULA by scanning a region of broadside angles. The block optionally calculates the direction of arrival (DOA) of a specified number of signals by estimating peaks of the spectrum.

Ports

Input

expand all

Received signal, specified as an M-by-N complex-valued matrix. The quantity M is the number of sample values (snapshots) contained in the signal and N is the number of sensor elements in the array.

The size of the first dimension of the input matrix can vary to simulate a changing signal length. A size change can occur, for example, in the case of a pulse waveform with variable pulse repetition frequency.

Data Types: double
Complex Number Support: Yes

Output

expand all

MUSIC spatial spectrum, returned as a non-negative, real-valued column vector representing the magnitude of the estimated MUSIC spatial spectrum. Each entry corresponds to an angle specified by the Scan angles (deg) parameter.

Data Types: double

Directions of arrival of the signals, returned as a real-valued row vector. The direction of arrival angle is the broadside angle between the source direction and the array axis. The length of the vector is the number of signals specified by the Number of signals parameter. If the object cannot identify peaks in the spectrum, it will return NaN. Angle units are in degrees.

Dependencies

Select the Enable DOA output parameter to enable this output port.

Data Types: double

Parameters

expand all

Main Tab

Signal propagation speed, specified as a real-valued positive scalar. The default value of the speed of light is the value returned by physconst('LightSpeed'). Units are in meters per second.

Example: 3e8

Data Types: double

System operating frequency, specified as a positive scalar. Units are in Hz.

Select this parameter to use forward-backward averaging to estimate the covariance matrix for sensor arrays with a conjugate symmetric array manifold structure.

Specify the amount of averaging used by spatial smoothing to estimate the covariance matrix as a nonnegative integer. Each increase in smoothing handles one extra coherent source, but reduces the effective number of elements by one. The maximum value of this parameter is N – 2, where N is the number of sensors in the ULA.

Specify the scan angles in degrees as a real-valued row vector. The angles are array broadside angles and must lie between –90° and 90°, inclusive. You must specify the angles in increasing order.

Select this parameter to output the signals directions of arrival (DOA) through the Ang output port.

Specify the expected number of signals for DOA estimation as a positive scalar integer.

Block simulation, specified as Interpreted Execution or Code Generation. If you want your block to use the MATLAB® interpreter, choose Interpreted Execution. If you want your block to run as compiled code, choose Code Generation. Compiled code requires time to compile but usually runs faster.

Interpreted execution is useful when you are developing and tuning a model. The block runs the underlying System object™ in MATLAB. You can change and execute your model quickly. When you are satisfied with your results, you can then run the block using Code Generation. Long simulations run faster with generated code than in interpreted execution. You can run repeated executions without recompiling, but if you change any block parameters, then the block automatically recompiles before execution.

This table shows how the Simulate using parameter affects the overall simulation behavior.

When the Simulink® model is in Accelerator mode, the block mode specified using Simulate using overrides the simulation mode.

Acceleration Modes

Block SimulationSimulation Behavior
NormalAcceleratorRapid Accelerator
Interpreted ExecutionThe block executes using the MATLAB interpreter.The block executes using the MATLAB interpreter.Creates a standalone executable from the model.
Code GenerationThe block is compiled.All blocks in the model are compiled.

For more information, see Choosing a Simulation Mode (Simulink).

Programmatic Use

Block Parameter:SimulateUsing
Type:enum
Values:Interpreted Execution, Code Generation
Default:Interpreted Execution
Sensor Array Tab

Method to specify array, specified as Array (no subarrays) or MATLAB expression.

  • Array (no subarrays) — use the block parameters to specify the array.

  • MATLAB expression — create the array using a MATLAB expression.

MATLAB expression used to create an array, specified as a valid Phased Array System Toolbox array System object.

Example: phased.URA('Size',[5,3])

Dependencies

To enable this parameter, set Specify sensor array as to MATLAB expression.

Element Parameters

Antenna or microphone type, specified as one of the following:

  • Isotropic Antenna

  • Cosine Antenna

  • Custom Antenna

  • Omni Microphone

  • Custom Microphone

Specify the operating frequency range of the antenna or microphone element as a 1-by-2 row vector in the form [LowerBound,UpperBound]. The element has no response outside this frequency range. Frequency units are in Hz.

Dependencies

To enable this parameter, set Element type to Isotropic Antenna, Cosine Antenna, or Omni Microphone.

Specify the frequencies at which to set antenna and microphone frequency responses as a 1-by-L row vector of increasing real values. The antenna or microphone element has no response outside the frequency range specified by the minimum and maximum elements of this vector. Frequency units are in Hz.

Dependencies

To enable this parameter, set Element type to Custom Antenna or Custom Microphone. Use Frequency responses (dB) to set the responses at these frequencies.

Select this check box to baffle the back response of the element. When back baffled, the responses at all azimuth angles beyond ±90° from broadside are set to zero. The broadside direction is defined as 0° azimuth angle and 0° elevation angle.

Dependencies

To enable this check box, set Element type to Isotropic Antenna or Omni Microphone.

Specify the exponents of the cosine pattern as a nonnegative scalar or a real-valued 1-by-2 matrix of nonnegative values. When Exponent of cosine pattern is a 1-by-2 vector, the first element is the exponent in the azimuth direction and the second element is the exponent in the elevation direction. When you set this parameter to a scalar, both the azimuth direction and elevation direction cosine patterns are raised to the same power.

Dependencies

To enable this parameter, set Element type to Cosine Antenna.

Frequency response of a custom antenna or custom microphone for the frequencies defined by the Operating frequency vector (Hz) parameter. The dimensions of Frequency responses (dB) must match the dimensions of the vector specified by the Operating frequency vector (Hz) parameter.

Dependencies

To enable this parameter, set Element type to Custom Antenna or Custom Microphone.

Coordinate system of custom antenna pattern, specified az-el or phi-theta. When you specify az-el, use the Azimuth angles (deg) and Elevations angles (deg) parameters to specify the coordinates of the pattern points. When you specify phi-theta, use the Phi angles (deg) and Theta angles (deg) parameters to specify the coordinates of the pattern points.

Dependencies

To enable this parameter, set Element type to Custom Antenna.

Specify the azimuth angles at which to calculate the antenna radiation pattern as a 1-by-P row vector. P must be greater than 2. Azimuth angles must lie between –180° and 180°, inclusive, and be in strictly increasing order.

Dependencies

To enable this parameter, set the Element type parameter to Custom Antenna and the Input Pattern Coordinate System parameter to az-el.

Specify the elevation angles at which to compute the radiation pattern as a 1-by-Q vector. Q must be greater than 2. Angle units are in degrees. Elevation angles must lie between –90° and 90°, inclusive, and be in strictly increasing order.

Dependencies

To enable this parameter, set the Element type parameter to Custom Antenna and the Input Pattern Coordinate System parameter to az-el.

Phi angles of points at which to specify the antenna radiation pattern, specify as a real-valued 1-by-P row vector. P must be greater than 2. Angle units are in degrees. Phi angles must lie between 0° and 360° and be in strictly increasing order.

Dependencies

To enable this parameter, set the Element type parameter to Custom Antenna and the Input Pattern Coordinate System parameter to phi-theta.

Theta angles of points at which to specify the antenna radiation pattern, specify as a real-valued 1-by-Q row vector. Q must be greater than 2. Angle units are in degrees. Theta angles must lie between 0° and 360° and be in strictly increasing order.

Dependencies

To enable this parameter, set the Element type parameter to Custom Antenna and the Input Pattern Coordinate System parameter to phi-theta.

Magnitude of the combined polarized antenna radiation pattern, specified as a Q-by-P matrix or a Q-by-P-by-L array. The value of Q must equal the value of Q specified by Elevation angles (deg). The value of P must equal the value of P specified by Azimuth angles (deg). The value of L must equal the value of L specified by Operating frequency vector (Hz).

Dependencies

To enable this parameter, set Element type to Custom Antenna.

Magnitude of the combined antenna radiation pattern, specified as a Q-by-P matrix or a Q-by-P-by-L array.

  • When the Input Pattern Coordinate System parameter is set to az-el, Q equals the length of the vector specified by the Elevation angles (deg) parameter and P equals the length of the vector specified by the Azimuth angles (deg) parameter.

  • When the Input Pattern Coordinate System parameter is set to phi-theta, Q equals the length of the vector specified by the Theta Angles (deg) parameter and P equals the length of the vector specified by the Phi Angles (deg) parameter.

The quantity L equals the length of the Operating frequency vector (Hz).

  • If this parameter is a Q-by-P matrix, the same pattern is applied to all frequencies specified in the Operating frequency vector (Hz) parameter.

  • If the value is a Q-by-P-by-L array, each Q-by-P page of the array specifies a pattern for the corresponding frequency specified in the Operating frequency vector (Hz) parameter.

Dependencies

To enable this parameter, set Element type to Custom Antenna.

Phase of the combined antenna radiation pattern, specified as a Q-by-P matrix or a Q-by-P-by-L array.

  • When the Input Pattern Coordinate System parameter is set to az-el, Q equals the length of the vector specified by the Elevation angles (deg) parameter and P equals the length of the vector specified by the Azimuth angles (deg) parameter.

  • When the Input Pattern Coordinate System parameter is set to phi-theta, Q equals the length of the vector specified by the Theta Angles (deg) parameter and P equals the length of the vector specified by the Phi Angles (deg) parameter.

The quantity L equals the length of the Operating frequency vector (Hz).

  • If this parameter is a Q-by-P matrix, the same pattern is applied to all frequencies specified in the Operating frequency vector (Hz) parameter.

  • If the value is a Q-by-P-by-L array, each Q-by-P page of the array specifies a pattern for the corresponding frequency specified in the Operating frequency vector (

Dependencies

To enable this parameter, set Element type to Custom Antenna.

Select this check box to rotate the antenna element pattern to align with the array normal. When not selected, the element pattern is not rotated.

When the antenna is used in an antenna array and the Input Pattern Coordinate System parameter is az-el, selecting this check box rotates the pattern so that the x-axis of the element coordinate system points along the array normal. Not selecting uses the element pattern without the rotation.

When the antenna is used in an antenna array and Input Pattern Coordinate System is set to phi-theta, selecting this check box rotates the pattern so that the z-axis of the element coordinate system points along the array normal.

Use the parameter in conjunction with the Array normal parameter of the URA and UCA arrays.

Dependencies

To enable this parameter, set Element type to Custom Antenna.

Polar pattern microphone response frequencies, specified as a real scalar, or a real-valued, 1-by-L vector. The response frequencies lie within the frequency range specified by the Operating frequency vector (Hz) vector.

Dependencies

To enable this parameter, set Element type set to Custom Microphone.

Specify the polar pattern response angles, as a 1-by-P vector. The angles are measured from the central pickup axis of the microphone and must be between –180° and 180°, inclusive.

Dependencies

To enable this parameter, set Element type to Custom Microphone.

Specify the magnitude of the custom microphone element polar patterns as an L-by-P matrix. L is the number of frequencies specified in Polar pattern frequencies (Hz). P is the number of angles specified in Polar pattern angles (deg). Each row of the matrix represents the magnitude of the polar pattern measured at the corresponding frequency specified in Polar pattern frequencies (Hz) and all angles specified in Polar pattern angles (deg). The pattern is measured in the azimuth plane. In the azimuth plane, the elevation angle is 0° and the central pickup axis is 0° degrees azimuth and 0° degrees elevation. The polar pattern is symmetric around the central axis. You can construct the microphone response pattern in 3-D space from the polar pattern.

Dependencies

To enable this parameter, set Element type to Custom Microphone.

Array Parameters

The number of array elements for ULA arrays, specified as an integer greater than or equal to two.

Example: 11

Data Types: double

Distance between adjacent ULA elements, specified as a positive scalar. Units are in meters.

Example: 1.5

Linear axis direction of ULA, specified as y, x, or z. Then, all ULA array elements are uniformly spaced along this axis in the local array coordinate system.

Specify element tapering as a complex-valued scalar or a complex-valued 1-by-N row vector. In this vector, N represents the number of elements in the array.

Also known as element weights, tapers multiply the array element responses. Tapers modify both amplitude and phase of the response to reduce side lobes or steer the main response axis.

If Taper is a scalar, the same weight is applied to each element. If Taper is a vector, a weight from the vector is applied to the corresponding sensor element. The number of weights must match the number of elements of the array.

Data Types: double

Version History

Introduced in R2016b