How can I implement beamforming using functions from Signal Processing Toolbox?

Beamforming is a signal processing technique used to control the directionality of the reception or transmission of a signal. I am looking for an example of beamforming using Signal Processing Toolbox functions.

 採用された回答

MathWorks Support Team
MathWorks Support Team 2009 年 6 月 27 日
The following example implements a delay and sum beamformer using the UPFIRDN function in Signal Processing Toolbox.
Assume that there are 10 data sources. They are separated by known distance in space and therefore, the delay, in terms of number of samples, can be calculated for each source.
sig = rand(100, 10); %100 samples from the 10 sources
%Columns correspond to data sources
%Known delays in terms of number of samples.
delays = [0 1 3 5 6 9 11 2 7 8];
%Create delay filters
H = zeros(max(delays)+1, 10); %10 filters
%Specify delay filter by listing coefficients of the polynomial in z^-1
%[1 1 2 3 4 5 6 7 8 9 10] = 1 + z^-1 + 2z^-2 + 3z^-3 + ... + 10z^-10
%Delay filter with delay of 4 samples = z^-4. == transp([0 0 0 0 1])
H(sub2ind(size(H), delays+1, 1:length(delays))) = 1
%Use the function UPFIRDN to filter the signals
%i.e. apply the delay
filteredSig = upfirdn(sig, H);
%Now sum the resulting waveforms
s = sum(filteredSig, 2);
For information on the UPFIRDN and the SUB2IND functions execute the following at the MATLAB command prompt:
doc upfirdn
doc sub2ind

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeBeamforming and Direction of Arrival Estimation についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by