2 thoughts on “Acoustic Massive MIMO Testbed”

  1. Dear profesor
    It’s great idea to show Massive MIMO Acoustic rather than microwave.

    One confusing matter in studying MIMO is the difference between DoA, phase of channel coefficient and eigen vector.
    I guess all these things means direction to a user. Could you clarify my understanding below?

    Consider single user SIMO (uplink) with N antennas.
    On the same configuration, some say MRC and some say beamforming (DoA estimation).
    Both consider how to find weighting vector (w).
    MRC means coherent combing which needs estimating phases of channel vector h. h is the trnaspose of [h1 h2…hN]

    1. LoS : DoA means One particular angle.
    Each channel coefficient(h1, h2..) has a phase respone related with this DoA.
    2. NLoS : Multiple DoA from a UE, multiple beams to that UE.
    What is the phase response of each h1..hN in this case ?

    3. What is the difference between DoA estimation and channel (phase response) estimation ?

    If the scenario changes to MU-MIMO (multi SIMO) with K +1 users, everyone says beamforming, spacial filtering, ZF/MMSE, etc.
    My understanding is as following. I assume DoA estimation and channel (phase) estimation are same thing.

    4. DoA estimation from each user.
    5. ZF/MMSE is method to find spacial filter from the estimated DoA.
    6. Spatial filter does interference nulling to isolate a user.
    7. K antennas out of N are used for nulling, N-K antennas can be exploited for diversity. So, MMSE/ZF and MRC runs simultaneously.

    Generally, all SIMO, MISO and MIMO calculate weighting vector.
    8. Weighting vector, beamformer and eigen vector are same concept ?
    9. DoA and eigen vector is the same thing ?

    Best Regards

    1. 1. Yes

      2. [h1 … hN] is the weighted sum of many channel vectors of the same kind as in 1. The amplitude and phase of a particular element hn cannot be directly connected to a particular DoA.

      3. DoA estimation assumes that the channel can be parameterized in terms of a single (or a few) DoAs. If that parametrization is correct, one can estimate the angles and then compute [h1 … hN] based on the parametrization, instead of directly estimating [h1 … hN].
      Channel estimation generally means estimating [h1 … hN] directly, without assuming that the channel has a known parametrization.

      The point with using parameterized models is to make use of known physical information to simplify the estimation. If there are more than N DOAs (as is typically the case in NLOS), then using a parametrized model will result in more coefficients to estimate than directly estimating [h1 … hN]. Hence, it is mainly in LOS cases where it makes sense to do.

      4. You need to estimate the channel from each user. DoA estimation can only be used if you know that the channels are dominated by a LOS path, so that there is a single DOA to estimate. This is generally not the case in practice.

      5-6. Yes, the channel estimates are used to compute the ZF/MMSE filter.

      7. You should avoid saying “K antennas out of N are used for nulling” because it is not the physical antennas that take these different roles. The channel is N dimensional (N-length vectors). For each user, you sacrifice K-1 dimensions for interference nulling (i.e., avoiding the K-1 dimensional subspace spanned by the interfering channels). Within the remaining N-K+1 dimensions, you can now apply MRC. You will get both a diversity and beamforming gain from doing that.

      8. Yes, weighting vector and beamformer are the same thing. Eigenvector is an ambiguous term that sometimes mean the same thing, and sometimes is given a more specific meaning. I would avoid using it.

      9. No, an eigenvector has a specific meaning in linear algebra: https://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors
      So it typically means that one should compute the eigenvector of a channel matrix and use it as beamformer. If there is only one single-antenna transmitter, the channel matrix is a vector and thus the eigenvector is the same thing as MRC. In other cases you run into ambiguity of what is meant with it.

Leave a Reply

Your email address will not be published. Required fields are marked *