On 26/11/2022 15:19, Al Amiri, Wesam (waalamiri42) wrote:
Dears,
I am working on the implementation of OFDM TX and RX using GNURadio
3.10.3 and USRP N210 (with UHD_4.2.0). In the implementation, I
followed the GRC flow graph provided by GNU Radio Workshop (Slides 259
- 260) with changing the carrier frequency to 2 GHz, Sampling rate
1MHz at TX, and 10 MHz for Rx.
The Tx USRP is connected to a Log Periodic antenna and similarly for
the Rx USRP. There is no LOS between the TX and Rx antennas. They
directed toward a reflective board so that the transmitted signal will
be reflected by the board and received by the receiver. The
implementation works fine, and I was able to receive the OFDM signal
by the RX USRP.
What I am trying to do is to *extract some carriers from the FFT bins
at the demodulator to do phase measurements on each one of the
extracted carriers*.
I tried to create my own block to do that, but that didn't work and
caused the GRC graph to freeze. Then, I tried to do that offline using
Matlab, where I attached the FFT block to a file sink.
In Matlab, I plotted the absolute of I/Q samples of the file sink as
shown in the attached figure. But still, I am not able to distinguish
between the subcarriers.
Could anyone please give me advice how to extract certain carriers
from the FFT bins of the demodulator?
Regards,
Wesam Al Amiri
Without completely dissecting your flow-graph, if this were MY problem,
I might make an embedded Python block that allows me
to select a single FFT bin and pass that along to an analysis
function. The FFT output is a vector, so it should be straightforward
to implement a "pick a single carrier" function in Python, since your
sample-rate is only 1Msps, and your FFT size is (I think) 64,
that means your function has to deal with a new vector at 15kHz,
which is achievable for a Python embedded block.
That's a quick thought based on an only superficial analysis of the
problem, and others here might have better ways of
doing it.