Этот пример показывает, как построить график отклика элемента акустического микрофона и массива элементов микрофона, чтобы подтвердить эффективность beamformer. Массив должен поддерживать приемлемый шаблон массива на всей полосе пропускания.
Создайте 11-элементный равномерный линейный массив (ULA) микрофонов, используя антенные элементы косинуса в качестве микрофонов. The phased.CosineAntennaElement
Системный object™ является достаточно общим, чтобы использоваться в качестве элемента микрофона, потому что он создает или получает скалярное поле. Необходимо изменить частоты отклика на звуковую область значений. В сложении убедитесь, что PropagationSpeed
параметр в массиве pattern
методы устанавливаются на скорость звука в воздухе.
c = 340; freq = [1000 2750]; fc = 2000; numels = 11; microphone = phased.CosineAntennaElement('FrequencyRange',freq); array = phased.ULA('NumElements',numels,... 'ElementSpacing',0.5*c/fc,'Element',microphone);
Постройте график диаграммы направленности элемента микрофона по набору частот.
plotFreq = linspace(min(freq),max(freq),15); pattern(microphone,plotFreq,[-180:180],0,'CoordinateSystem','rectangular',... 'PlotStyle','waterfall','Type','powerdb')
Этот график показывает, что шаблон элемента является постоянным по всей полосе пропускания.
Постройте график диаграммы направленности массива с 11 элементами на том же наборе частот.
pattern(array,plotFreq,[-180:180],0,'CoordinateSystem','rectangular',... 'PlotStyle','waterfall','Type','powerdb','PropagationSpeed',c)
Этот график показывает, что mainlobe шаблона элемента уменьшается с частотой.
Примените к массиву поддиапазон фазового сдвига. Направление интереса 30 ° азимут и 0 ° повышения. Существует 8 поддиапазонов.
direction = [30;0]; numbands = 8; beamformer = phased.SubbandPhaseShiftBeamformer('SensorArray',array,... 'Direction',direction,... 'OperatingFrequency',fc,'PropagationSpeed',c,... 'SampleRate',1e3,... 'WeightsOutputPort',true,'SubbandsOutputPort',true,... 'NumSubbands',numbands); rx = ones(numbands,numels); [y,w,centerfreqs] = beamformer(rx);
Постройте график диаграммы направленности массива с помощью весов и центральных частот от beamformer.
pattern(array,centerfreqs.',[-180:180],0,'Weights',w,'CoordinateSystem','rectangular',... 'PlotStyle','waterfall','Type','powerdb','PropagationSpeed',c)
Вышеописанный график показывает диаграмму шаблона на центральной частоте каждого поддиапазона.
Постройте график диаграммы направленности на трех частотах в двухмерных измерениях.
centerfreqs = fftshift(centerfreqs); w = fftshift(w,2); idx = [1,5,8]; pattern(array,centerfreqs(idx).',[-180:180],0,'Weights',w(:,idx),'CoordinateSystem','rectangular',... 'PlotStyle','overlay','Type','powerdb','PropagationSpeed',c) legend('Location','South')
Этот график показывает, что направление основного луча остается постоянным, в то время как ширина луча уменьшается с частотой.