(GSoC) MIMO system

Hello everyone,

I’m a graduate student from China. I major in Computer Science and my
research focus on wireless networks. Today, I’m glad to share some of my
ideas on MIMO with you. (maybe a little pleonastic)

Definitely, MIMO is not a new terminology since it has been studied for
many years. But it was not until 2009 that MIMO really come to us. Now,
it
is much closer. MIMO is widely deployed in both cellular networks and
WLANs, with multiple antennas it can increase the performance of
wireless
systems significantly. The good news is, with the help of GNU Radio and
USRPs, we can also enjoy the benefits brought by MIMO. Now, I’m on a
project to build a simple MIMO system.

Basically, this system works a bit like a micro MIMO WLAN. The AP in
this
WLAN has two antennas and all of the Clients have only one antenna.
Apparently, such a system should support both uplink and downlink
transmission.

Uplink: Clients can transmit frames to the AP. With two antennas, the AP
will receive two copies of the same symbols transmitted by the Client.
The
only difference is that these symbols traverse different channels and
experience different degrees of channel attenuation. With the
CSI(Channel
State Information) which can be acquired by the preamble, the AP
leverages
some decoding techniques to combine the signals received by the two
antennas and decode the corresponding symbols. When there is only one
Client transmit to the AP, decoding can be done by MRC(Maximal-ratio
combining) algorithm. Multiply the symbols received by the antennas with
the conjugate complex of channel attenuation value h respectively, the
total SNR in this transmission can be increased. If there are two
clients
transmit to the AP simultaneously, decoding can be done by ZF or
ZF-SIC(zero-forcing Successive Interference Cancellation) algorithm.
Multiply the symbols received by the antennas with the orthogonal vector
of
the channel attenuation vector H, the contribution of corresponding
Client
can be eliminated. Thus, the symbols transmitted by the two clients can
be
separated and decoded. (ZF-SIC is difficult to implement due to the
synchronization issues between different Clients).

Downlink: AP can also transmit to the Clients. The biggest advantage is
that the AP can transmit to up to two different Clients simultaneously
with
two antennas. MIMO node can utilize Beamforming techniques to pre-code
the
symbols transmitted by the two antennas. If the AP transmit to only one
Client, it just need to adjust the signal transmit on the two antennas
according to the channel attenuation h. Thus the total power received by
the Client is increased. The AP can also transmit to two Clients
concurrently, as long as the two Client’s channel attenuation
coefficient
is linearly independent. Through transmitting linearly combination of
symbols to different receivers on separate antennas simultaneously, the
Clients can decode the symbols for them as if other signals do not
exist.
the total capacity is thus increased.

So, here is my basic proposal (which might be added to the “Signal
Processing” section of GR GSoC website?)

MIMO system

MIMO is a great technology which utilizes multiple antennas at both
transmitter and receiver to improve communication performance. It is
more
and more prevalent now. But MIMO is not a standard application in GNU
Radio
yet. Creating an OOT module (gr-mimo) that implements some of the basic
encoding and decoding algorithms would be great for the research
beginners
and engineers.

Objectives

  1. Build a MIMO system with one AP and several Clients, the AP has two
    antennas and all of the Clients has one antenna only.

  2. On the uplink, implement the MRC decoding algorithm at the AP. The
    Clients transmit to the AP randomly based on standard OFDM PHY.

  3. On the downlink, implement the Beamforming encoding algorithm at the
    AP.
    Upon receiving the frame from the Clients, the AP encodes the frames to
    two(one) of the clients and transmits the frames to them(it)
    simultaneously. Also based on OFDM PHY.

Notes: the channel state information (CSI) used in encoding and decoding
algorithms can be acquired by OFDM preambles (Sync words).

Requirements

Decent understanding of OFDM and MIMO. Algorithms would be coded in both
C++ and Python.

Potential mentor(s)


PS: I work on this project for both study and research purpose, before
it I
have gone through many relative papers and tutorials on how to build a
MIMO
system in GNU Radio. So I feel that implementing a MIMO system in GNU
Radio
is feasible. Nevertheless, I have to treat it cautiously since it is
really
complicated to make it work. Now, I have already built an elementary
MIMO
node with two USRPs (figure of the AP is attached to the end of the
Email)
and I’m working on a new module (gr-mimo) based on tx_ofdm.grc and
rx_ofdm.grc to implement uplink transmission. The next step is to debug
and
test the uplink transmission. Since there is no gr-mimo standard module
in
GNU Radio, I guess this project might be useful to GNU Radio beginners.
If
it has the honor of being involved in Google Summer of Code(GSoC) 2014,
that would be fantastic. Anyway, I am eager to get some insights from
you. :slight_smile:

Thanks,

Zhou YiZiRui

On 02/24/2014 12:33 AM, YiZiRui Z. wrote:

Hello everyone,

Im a graduate student from China. I major in Computer Science and my
research focus on wireless networks. Today, Im glad to share some of my
ideas on MIMO with you. (maybe a little pleonastic)

Nice to see a Chinese face here :slight_smile:

transmission. Since there is no gr-mimo standard module in GNU Radio, I
guess this project might be useful to GNU Radio beginners. If it has the
honor of being involved in Google Summer of Code(GSoC) 2014, that would
be fantastic. Anyway, I am eager to get some insights from you. :slight_smile:

Since you have done a lot of research, you should feel confident it is
feasible. I was involved in a MIMO project when I was doing my bachelor
thesis about two years ago, and we implemented a 2x2 MU-MIMO system with
CSI feedback and transmit precoding on USRP and GNU Radio. However, it
only implements downlink transmission and lacks of OFDM (so just narrow
band). Nevertheless it proved the feasibility. Unfortunately we hadn’t
furthered that research since then. It’s really glad to see you want to
explore it tightly with upstream. I attach the link to my thesis report
(it is in Chinese) below, and hopefully you will find something helpful.

[1]
http://cloud.alick.me/public.php?service=files&t=0a67a7f2d09a1b4385dc85018d487918

Regards,

Alick
Fedora release 20 (Heisenbug) user
https://fedoraproject.org/wiki/User:Alick

On Mon, Feb 24, 2014 at 12:36 AM, Alick Z. [email protected]
wrote:

transmission. Since there is no gr-mimo standard module in GNU Radio, I
band). Nevertheless it proved the feasibility. Unfortunately we hadn’t
Fedora release 20 (Heisenbug) user
https://fedoraproject.org/wiki/User:Alick

Yes, and Matt E. and I proved that we could to 2x2 MIMO OFDM with
GNU Radio on USRPs a number of years ago (there was not reason to
think that we couldn’t; just had to be done). Our code, though, was a
complete mess and fragile at the time. It’s even more obsolete now
that we’ve replaced the OFDM layer. Which is why it’s time to get this
done properly in GNU Radio.

Tom

On Mon, Feb 24, 2014 at 1:36 PM, Alick Z. [email protected] wrote:

transmission. Since there is no gr-mimo standard module in GNU Radio, I
band). Nevertheless it proved the feasibility. Unfortunately we hadn’t
Alick
Fedora release 20 (Heisenbug) user
https://fedoraproject.org/wiki/User:Alick


Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Hi Zhao,

It is very nice to receive your reply, seems I’m not alone here.
Your thesis is written with clarity and meaning, which is certainly
helpful
me. Besides, you know, it really feels enjoyable to read some relevant
materials in Chinese. :slight_smile:
Maybe we will have more discussion in the future.

Thank you,
Zhou

On Mon, Feb 24, 2014 at 11:22 PM, Tom R. [email protected] wrote:

Nice to see a Chinese face here :slight_smile:

transmission. The next step is to debug and test the uplink
only implements downlink transmission and lacks of OFDM (so just narrow

done properly in GNU Radio.

Tom


Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Hi Tom,

As far as I am concerned, plenty of work has done on MIMO. While both of
the software(GNU Radio) and the hardware(USRP) are developing fast, many
of
the source codes are not compatible. So, maybe I have to do this work
from
the beginning, while former works are still instructive.
Do you think I should add this idea to the GR GSoC website?

Thanks,
Zhou

Hi Alick,
Do you have an english copy of your thesis? I am looking to
read up on MIMO implementation and try a few basic things on gnuradio.

On 02/26/2014 01:57 AM, Karan T. wrote:

Hi Alick,
Do you have an english copy of your thesis? I am looking to
read up on MIMO implementation and try a few basic things on gnuradio.

Sorry, but I do not. I suggest you read the application notes
“Synchronization and MIMO Capability with USRP Devices” as a starter
if you are using USRP with GNU Radio.


Alick
Fedora release 20 (Heisenbug) user
https://fedoraproject.org/wiki/User:Alick

Karan T. wrote in post #1138019:

Hi Alick,
Do you have an english copy of your thesis? I am looking to
read up on MIMO implementation and try a few basic things on gnuradio.

Hi Karan,
Did you get Alick’s thesis in english?. If so, could you please
mail me to [email protected] Thanks in advance.

On 02/24/2014 05:08 PM, YiZiRui Z. wrote:

Hi Tom,

As far as I am concerned, plenty of work has done on MIMO. While both of
the software(GNU Radio) and the hardware(USRP) are developing fast, many
of the source codes are not compatible. So, maybe I have to do this work
from the beginning, while former works are still instructive.
Do you think I should add this idea to the GR GSoC website?

Sure, go ahead!

M

Just out of curiosity … do you still have your MIMO code around for us
to look at? It might be a complete mess and fragile, but it also might
be instructive in some ways. If not, that’s OK too; just thought it
worth asking. Thanks! - MLD

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs