FFT based adaptive MVDR beamforming
古いコメントを表示
Hello,
I have a small question on FFT based adaptive beamforming based on Spectral Matrix Inversion technique.
I have estimated the Spectral Matrix (Sxx) from my data by dividing it into blocks and averaging them for each bin, to get sufficient rank on the matrix.
Now my question is :
To produce the MVDR weighting vector (8x1 vector in my case since I have 8 microphones) for each bin, I multiply the inverse of Sxx for each bin (say bin#1) with the steering vector 'a' given by exp(i*2*pi*D*omega), where D is the set of time delays(8x1 vector) pointing towards look direction(say +10°). Here what should be 'omega'? Isit equal to the first frequency bin of data from first channel and so on for all the bins? please clarify.
1 件のコメント
Gu
2012 年 11 月 22 日
I want to know how do you generate your signal? narrowband or wide.
回答 (3 件)
Honglei Chen
2012 年 9 月 24 日
0 投票
Looks like you are doing subband MVDR. It should be the frequency for each corresponding band.
11 件のコメント
zozo
2012 年 9 月 24 日
Honglei Chen
2012 年 9 月 25 日
I mean the frequency vector. Note that in general Fs is in the order of bandwidth, so you may need to add center frequency to it.
zozo
2012 年 9 月 25 日
Honglei Chen
2012 年 9 月 25 日
If you are sampling at, say 100MHz, and your carrier is 1GHz, your band should be between 950MHz and 1050MHz, not -50 MHz and 50 MHz.
zozo
2012 年 9 月 25 日
Honglei Chen
2012 年 9 月 25 日
Can you rearrange the array? If your desired signal is less than 200Hz, then you should construct your array that way too. Seems that your array is designed for 500Hz to 1.2kHz?
zozo
2012 年 9 月 25 日
Honglei Chen
2012 年 9 月 25 日
That's why I ask whether you can rearrange the array. In general, the spacing within the array is determined by the highest frequency to avoid aliasing
Honglei Chen
2012 年 9 月 26 日
For an arbitrary shaped array (sounds like your situation), I don't think there are a lot of theoretical results. It's a design problem you need to solve.
zohar
2012 年 10 月 9 日
Hi zozo,
You allready posted a question
http://www.mathworks.com/matlabcentral/answers/39458-covariance-matrix-stimation-in-mvdr-beamforming
Combining the two questions ,evrything looks OK!
1) What is the shape of the array ? In the previous question you mentiond that it's spherical shape.
2) It's seems that in step 9 you want to go back to time domain, I do not understand what you doing ! can you supply the relevant matlab code ?
3) Insted of steps 7-9 calc P - the narrowband power spectrum, where P is:
P = zeros(Nbins,Nbeam)
for k = 1:Nbins
% for each bin
% calc A - sterring matrix.
% calc IRf - Inverse spatial covariance matrix.
P(k,:) = real(Nbeam./sum(A'*IRf*A));
end
Now calc
Plog = 20*log10(P);
mesh(Plog);
And let me know what the result is...
カテゴリ
ヘルプ センター および File Exchange で Beamforming についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!