Matlab:实现使用麦克风阵列的声波束形成的多核模拟
microphone = ...
phased.OmnidirectionalMicrophoneElement('FrequencyRange',[20 4000]);
Nele = 10;
ula = phased.ULA(Nele,0.05,'Element',microphone);
c = 340;
ang_dft = [-30; 0];
ang_cleanspeech = [-10; 10];
ang_laughter = [20; 0];
fs = 8000;
collector = phased.WidebandCollector('Sensor',ula,'PropagationSpeed',c, ...
'SampleRate',fs,'NumSubbands',1000,'ModulatedInput', false);
t_duration = 3;
t = 0:1/fs:t_duration-1/fs;
prevS = rng(2008);
noisePwr = 1e-4;
NSampPerFrame = 1000;
NTSample = t_duration*fs;
sigArray = zeros(NTSample,Nele);
voice_dft = zeros(NTSample,1);
voice_cleanspeech = zeros(NTSample,1);
voice_laugh = zeros(NTSample,1);
player = audioDeviceWriter('SampleRate',fs);
dftFileReader = dsp.AudioFileReader('SpeechDFT-16-8-mono-5secs.wav', ...
'SamplesPerFrame',NSampPerFrame)