How to use MVDREstimator2D with real acoustic signals received by rectangle Microphone array ?
Mostra commenti meno recenti
Hi,I have a microphone array consisting of 8 MEMS microphones, and I recorded an audio piece for testing the MVDREstimator2D.
Before the test, I made a simulation with chirp signal and my array successfully. But what confuses me is that the real signal test result is so bad.
I want to know the reason and how to solve this problem.
My recording code is as follows:
clear; close all; clc;
%The sample rate of my array is 44100
deviceReader = audioDeviceReader('Device','MicArray (YDM8MIC Audio)','ChannelMappingSource','Auto','NumChannels',8);
setup(deviceReader);
fileWriter = dsp.AudioFileWriter('audio_for_test/mySpeech.wav','FileFormat','WAV');
disp('Start...');
tic
while toc < 5 % Record for 5 seconds
acquiredAudio = deviceReader();
fileWriter(acquiredAudio);
end
disp('End');
release(deviceReader)
release(fileWriter)
My estimator code:
close all;clear;
clc;
microphone = phased.OmnidirectionalMicrophoneElement;
array = phased.URA('Size',[2 4],'ElementSpacing',[0.03 0.03],'Element',microphone); % Just as my real array
estimator = phased.MVDREstimator2D('SensorArray',array,...
'DOAOutputPort',true,'NumSignals',1,'OperatingFrequency',44100,'PropagationSpeed',343, ...
'AzimuthScanAngles',-90:90,...
'ElevationScanAngles',-90:90);
[~,doas] = estimator(data); % data is from mySpeech.wav
figure;
plotSpectrum(estimator);
xlabel('Azi(degree)')
ylabel('Ele(degree)')
zlabel('Power(dB)');

My test audio file ‘mySpeech.wav’ is stored in the compressed file attached.
1 Commento
隐
il 10 Feb 2024
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Direction of Arrival Estimation in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!