How should I choose the OperatingFrequency parameter in phased array system toolbox functions for audio signal processing?

1 view (last 30 days)
I am trying to create beamforming algorithms for speech and audio processing applications using the PhaseShiftBeamformer() and SubbandMVDRBeamformer() objects. For my applications I am using a sample rate of 16000Hz.
From the examples in MATLAB documentation, I can see that OperatingFrequency refers to the carrier frequency in applications involving electromagnetic signals. However, in audio processing, we typically do not use any form of modulation.
What should I set the OperatingFrequency parameter to for audio processing?
Or is the SubbandMVDRBeamformer() not designed to work with audio signals? Should I use the FrostBeamformer() instead?

Answers (1)

Shubham
Shubham on 26 Jul 2023
Hi Sattwik,
In audio processing applications, the OperatingFrequency parameter in beamforming algorithms does not have a direct correspondence to carrier frequency used in electromagnetic signal applications. Instead, it represents the centre frequency of the audio signal or the frequency of interest for beamforming.
For audio processing, you can set the OperatingFrequency parameter to the center frequency of the audio band you are interested in. This frequency should be within the range of the audio signal you are processing. For your case, since the sampling frequency is 16000 Hz, so you should keep the operating frequency around 8000 Hz.
The SubbandMVDRBeamformer() is designed to work with audio signals and can be used for audio beamforming applications. It operates in the frequency domain by dividing the input signal into sub bands and applying the Minimum Variance Distortionless Response (MVDR) beamforming technique to each sub band.
On the other hand, the FrostBeamformer() is also suitable for audio processing and operates in the time domain. It uses the Frost beamforming algorithm, which is a popular choice for speech enhancement applications.
Both SubbandMVDRBeamformer() and FrostBeamformer() can be used for audio beamforming, but they differ in their implementation and performance characteristics. You can choose the one that best suits your specific requirements and experiment with both to see which one provides better results for your application.
  2 Comments
Sattwik
Sattwik on 30 Jul 2023
Hi Shubham,
Thanks for the response.
I am also using the phased.WidebandCollector object. This system object has a parameter called 'CarrierFrequency'. How should I set this value for audio processing? Again, my signals are not modulated.
I am using the WidebandCollector in order to generate microphone array data for subsequently processing with the FrostBeamformer().
Shubham
Shubham on 31 Jul 2023
Edited: Shubham on 31 Jul 2023
Hi Sattwack,
When using the phased.WidebandCollector object for audio processing, the 'CarrierFrequency' parameter is typically used for modulated signals, such as those used in wireless communications. Since your signals are not modulated, you can set the 'CarrierFrequency' to any value that is within the operating range of your audio system.
For audio processing, it is common to use an audio sampling rate, such as 44.1 kHz or 48 kHz, as the carrier frequency. These values are commonly used in audio applications and should work well for your microphone array data.
However, it's important to note that the 'CarrierFrequency' parameter does not have a direct impact on audio processing or the performance of the FrostBeamformer. It is primarily used for setting up the WidebandCollector object and is not directly related to your audio processing requirements.
Please refer to this documentation for more info.

Sign in to comment.

Categories

Find more on Sonar and Spatial Audio in Help Center and File Exchange

Products


Release

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!