Визуализация эффективности широкополосного Beamformer

Этот пример показывает, как построить график отклика элемента акустического микрофона и массива элементов микрофона, чтобы подтвердить эффективность 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')

Figure contains an axes. The axes with title Azimuth Cut (elevation angle = 0.0°) contains an object of type surface.

Этот график показывает, что шаблон элемента является постоянным по всей полосе пропускания.

Постройте график диаграммы направленности массива с 11 элементами на том же наборе частот.

pattern(array,plotFreq,[-180:180],0,'CoordinateSystem','rectangular',...
    'PlotStyle','waterfall','Type','powerdb','PropagationSpeed',c)

Figure contains an axes. The axes with title Azimuth Cut (elevation angle = 0.0°) contains an object of type surface.

Этот график показывает, что 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)

Figure contains an axes. The axes with title Azimuth Cut (elevation angle = 0.0°) contains an object of type surface.

Вышеописанный график показывает диаграмму шаблона на центральной частоте каждого поддиапазона.

Постройте график диаграммы направленности на трех частотах в двухмерных измерениях.

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')

Figure contains an axes. The axes with title Azimuth Cut (elevation angle = 0.0°) contains 3 objects of type line. These objects represent 1.500 kHz, 2.000 kHz, 2.375 kHz.

Этот график показывает, что направление основного луча остается постоянным, в то время как ширина луча уменьшается с частотой.