System object: phased.CustomMicrophoneElement
Package: phased

Output response of microphone




RESP = step(H,FREQ,ANG) returns the microphone's magnitude response, RESP, at frequencies specified in FREQ and directions specified in ANG.

    Note:   The object performs an initialization the first time the step method is executed. This initialization locks nontunable properties and input specifications, such as dimensions, complexity, and data type of the input data. If you change a nontunable property or an input specification, the System object™ issues an error. To change nontunable properties or inputs, you must first call the release method to unlock the object.

Input Arguments


Microphone object.


Frequencies in hertz. FREQ is a row vector of length L.


Directions in degrees. ANG can be either a 2-by-M matrix or a row vector of length M.

If ANG is a 2-by-M matrix, each column of the matrix specifies the direction in the form [azimuth; elevation]. The azimuth angle must be between –180 and 180 degrees, inclusive. The elevation angle must be between –90 and 90 degrees, inclusive.

If ANG is a row vector of length M, each element specifies a direction's azimuth angle. In this case, the corresponding elevation angle is assumed to be 0.

Output Arguments


Response of microphone. RESP is an M-by-L matrix that contains the responses of the microphone element at the M angles specified in ANG and the L frequencies specified in FREQ.


Construct a custom cardioid microphone with an operating frequency of 500 Hz. Find the microphone response in the directions of [0;0] and [40;50].

h = phased.CustomMicrophoneElement;
h.PolarPatternFrequencies = [500 1000];
h.PolarPattern = mag2db([...
fc = 500; ang = [0 0;40 50]';
resp = step(h,fc,ang);


The total response of a custom microphone element is a combination of its frequency response and spatial response. phased.CustomMicrophoneElement calculates both responses using nearest neighbor interpolation and then multiplies them to form the total response. When the PolarPatternFrequencies property value is nonscalar, the object specifies multiple polar patterns. In this case, the interpolation uses the polar pattern that is measured closest to the specified frequency.

Was this topic helpful?