# Channel measurements?

Hey all,

What is the best way to measure the channel for use in space-time
coding schemes using an RFX2400 board?

As far as I know you can only get the I and Q streams out of the USRP,
and I’m not sure how you would get a set of channel coefficients.

I am planning on using the conjugate of the measured channel to
‘reverse’ the damage done by transmission.

Sorry if I am missing something fundamental here, I’ve only done
channel coding in theory and am trying to get a practical
implementation going on.

Jason

On Wed, Jul 23, 2008 at 10:43 PM, Jason U. [email protected]
wrote:

Sorry if I am missing something fundamental here, I’ve only done
channel coding in theory and am trying to get a practical
implementation going on.

I’m no expert, but it seems like the general procedure for
equalization is as follows:

``````- Send some type of reference signal followed by unknown data
- Figure out the channel using the known reference signal
- Invert the channel conditions to the best of your ability
- Apply inverse channel to unknowns
``````

Good luck!

Brian

On Wed, Jul 23, 2008 at 10:43 PM, Jason U. [email protected]
wrote:

Hey all,

What is the best way to measure the channel for use in space-time
coding schemes using an RFX2400 board?

As far as I know you can only get the I and Q streams out of the USRP,
and I’m not sure how you would get a set of channel coefficients.

Are you trying to measure the impulse response of the channel? If so,
then
one technique would be to transmit a known pseudo-random bit sequence
(an
m-sequence) using BPSK modulation at the carrier frequency of interest.
The
chip rate of the sequence determines the measurement system bandwidth,
while
the sequence length determines the ‘dynamic range’ of the measurement.

At the receiver set the LO to the same carrier frequency as that at the
transmitter. Here you need to cross-correlate the equivalent low-pass
received signal with the known m-sequence to give the (complex) impulse
response of the channel. Any ‘peaks’ that exceed your definition of a
threshold noise level would be your channel coefficients in the time
domain.

Nikhil

On Thu, Jul 24, 2008 at 12:30 PM, Nikhil [email protected] wrote:

threshold noise level would be your channel coefficients in the time domain.
This is actually implemented in gr-sounder.

Unfortunately, the cross-correlation done on the very limited space
FPGA has no frequency offset compensation, so the resulting impulse
response vectors “roll” in the time domain.

Johnathan C.
Corgan Enterprises LLC
http://corganenterprises.com/

On Thu, Jul 24, 2008 at 4:37 PM, Johnathan C. <
[email protected]> wrote:

the sequence length determines the ‘dynamic range’ of the measurement.
Unfortunately, the cross-correlation done on the very limited space
FPGA

I’m curious – in a channel sounder application what benefit, if any is
there to performing the cross-correlation on the FPGA? This is
assuming
you are continuously transmitting the PRBS and computing the impulse
response at the receive end at a rate that is consistent with variations
in
the channel (i.e. not continuously).

Thanks.
Nikhil

On Fri, Jul 25, 2008 at 6:12 PM, Nikhil [email protected] wrote:

I’m curious – in a channel sounder application what benefit, if any is
there to performing the cross-correlation on the FPGA? This is assuming
you are continuously transmitting the PRBS and computing the impulse
response at the receive end at a rate that is consistent with variations in
the channel (i.e. not continuously).

The channel sounder transmitter is sending the PRNG modulated BPSK at
32 Mchips/sec. You need to do the correlation at this speed; it’s not
possible to send that much data over the USB to the host.

A channel sounder in software would work for chip rates less than 4
Mchip/sec. But that limits the resolution of your impulse response to
about 250 ns per bin, or 75 meters per bin in the spatial domain.

Johnathan C.
Corgan Enterprises LLC
http://corganenterprises.com/

Hi
Johnathan is right, If you fulfill the channel measurement in
software your temporal resolution is not sufficient and you may not be
able to resolve lots of paths specially for indoor applications. For
Communications: Principles and Practice (2nd Edition)”. If you want to
have a channel sounder you have to implement the correlation part
inside the FPGA.
Actually we are working on that. I have implement a channel sounder
which works using 802.11b packets. As you may know 802.11b use DSSS in
its physical layer. We implement the de-spreading part inside the FPGA.
(you can find the 802.11b receiver here:
SPAN Lab)

Thanks to that now we have a channel sounder with the resolution of
30ns which is fine for indoor measurements. We plan to published it on
the web in the next two weeks after doing the last testing and
debuging. But if anyone is interested s/he can contact me to send
her/him the code.

regards,
hamed

Quoting Johnathan C. [email protected]:

possible to send that much data over the USB to the host.

[email protected]

ECE Department, U of Utah
Salt Lake City
UT, 48112

On Fri, Jul 25, 2008 at 9:57 PM, Johnathan C. <
[email protected]> wrote:

32 Mchips/sec. You need to do the correlation at this speed; it’s not
possible to send that much data over the USB to the host.

I was thinking that since you don’t need to probe the channel at the Rx
continuously as it does not change that fast, one solution would be to
buffer a sequence length (~2kB for a 511 bit m-seq) and then transfer it
over the USB link at a slower rate.

Hey all,
I want to measure the impulse response of the channel.
I transmit a known pseudo-random bit sequence (an m-sequence) using BPSK
modulation(dbpsk.py)at 2.4G, USRP1.

At the receiver set ,where should I cross-correlate the equivalent
low-pass
received signal with the known m-sequence to give the (complex) impulse
response of the channel?

I don’t need to probe the channel at the Rx continuously so I think the
gr-sounder is not suitable.

Thanks
zhou