I am trying to implement simple FSK system with USRP and I am using two
USRP’s each with one RFX2400 daughter card. I have tried fsx_tx.py and
fsk_rx.py which are available in gnuradio_examples folder. after using
tune
to set the proper ferquency I was able to run transmitter and receiver
sussfully. I didnt change anything else in the example. The problem is
data
which I receive is too much corrupt (lot of data errors). Can any one
suggest what can be the errors or problems and what can I do to get
correct
data.
Secondally how can I remove the ISM bandpass filter which is by default
there with RFX2400.
Secondally how can I remove the ISM bandpass filter which is by default
there with RFX2400.
You have to de-solder it. Optionally (in case you don’t want to remove
the part, since it will be difficult to reinstall it), you could
install a jumper (zero-ohm resistor) or (better) a small 10pF
capacitor in parallel (there is a pad), but this may cause some weird
side-effects if you use the USRP in the ISM band after installation.
You need to put a cap of between 25 and 500 pF in that location, AND you
need to cut the traces which go to the filter. If you don’t you will
get weird resonances.
Can anyone also address the first part of my question aslo, I mean how to
improve the quality of received data. I mean is it normal with GNU
Radio/USRP that we receive so currupt data or I am doing something wrong.
Any suggestion please…???
Thanks
Oh, where to begin…
Look, there are so many possible reasons for errors that it’s impossible
to help
you out when you just ask where they are coming from. Corruption of bits
is what
radio channels do best.
Can anyone also address the first part of my question aslo, I mean how
to
improve the quality of received data. I mean is it normal with GNU
Radio/USRP that we receive so currupt data or I am doing something
wrong.
Any suggestion please…???
Thanks
Matt E. wrote:
side-effects if you use the USRP in the ISM band after installation.
You can find attached the code for transmit and receive sides, and the
file
which I am sending (send.txt) and one which I am receiving (rcv.txt).
You
can see that nearly 80%-90% received data is corrupt. I am receiving
around
50dBm at receiver antenna, and I have tried with both stations at less
than
1 meter. so transmission power can not be the problem. There is nearly
zero
interference where I am checking it so interference cant be the problem.
If you have two USRP boards and two RFX2400 daughter cards then you can
try
these codes (fsk_tx.py and fsk_rx.py) using:
./fsk_tx.py send.txt for transmitter
./fsk_tx.py -f rcv.txt for receiver (But dont forget to empty rcv.txt
before
running this)
I’ll be thankfull if you can point out the reason.
I have just provided the information which can be helpful for you, and
the
code is also attached with it and a sample received file is also there
along
with actual sent file.
Please just scroll up and you will find my message with all this
information. Additionally OS is ‘openSUSI’ a favour of Linux. But if you
still need some more info then please let me know.
Thaks
Patrick S. wrote:
Radio, hardware setup, used parts (cable, antennas), environment.
If you have two USRP boards and two RFX2400 daughter cards then you can try
these codes (fsk_tx.py and fsk_rx.py) using:
Which version of GNU Radio are you using?
Which cable/antenna setup do you use?
You are hard coding your frequency. You could extend the options to set
the frequency with a parameter to get more flexibility.
Moreover with two USRP you are probably not exactly at the same
frequency. Read [email protected] [1]:
--------8<----------
The 64MHz oscillator on the board has a maximum 50PPM error. This
gives an error of up to 3200Hz.
--------8<----------
You can watch the sender (and find the apparent receiver frequency) with
usrp_fft.py (from gr-utils) .
You could try it first with a lower frequency. Start with a Basic{RX,TX}
if you have, this results in less error. If you really need to use
2.6GHz, you will have to find and lock your signal before you will be
able to get good transmissions.
Can anyone also address the first part of my question aslo, I mean how to
improve the quality of received data. I mean is it normal with GNU
Radio/USRP that we receive so currupt data or I am doing something wrong.
Any suggestion please
Before you wrote
after using tune
to set the proper ferquency I was able to run transmitter and receiver
sussfully. I didnt change anything else in the example.
The problem is data
which I receive is too much corrupt (lot of data errors)…
Your description is not very exact. You could help us to help you with
more information:
What is your setup? OS, distribution, used version of packages, GNU
Radio, hardware setup, used parts (cable, antennas), environment.
What do you do? Which code do you use?
What did you change?
What did you get? Error messages? (add exact transcripts of errors)
What did you expect?
Please provide exact information, code should be attached. If you
changed something, mark the changes so helpers will find it easier.
If you have recorded samples of a good and bad transmissions, send us a
representative part of it. If you need to show more than a hand full of
kilobytes, put them on a web server or ftp server and provide a link.
Are you sure to have read the FAQ and introducing documentation?
Patrick
Engineers motto: cheap, good, fast: choose any two
Patrick S.
Student of Telematik, Techn. University Graz, Austria
Each USRP has its on reference crystal oscillator. This oscillator may
have maximum +/- 50 PPM ( Matt said the new USRPs has maximum 20 PPM)
frequency error. Lets assume the error is 10 PPM in each USRP. This
means, that at 2500 MHz (2.5 GHz) the error = 2500 * 10 = 25000 Hz =
25KHz.
Now imagine that the first USRP has +25 KHz frequency deviation error
and the second one has - 25KHz frequency error. This means + 50 KHz
frequency mismtch between your TX and Rx Frequencies. This is probably
what is causing this high error rate that you see.
To solve this problem you simply do :
Use usrp_siggen.py to send single tone at F1 frequency (For example,
use F1 = 2475 MHz) from your TX USRP. The best thing is F1 be the
frequency used in your FSK experiments.
With your RX USRP, start usrp_fft.py with frequency F1 and
decimation= 128 (or 256). You should see your transmitted tone but may
be it’s frequency is shifted. Calculate this frequency shift.
Add/subtract this frequency shift to your RX USRP frequency tunning
function.
Now your two USRPs frequency mismatch should not be the problem. If
the errors is still there, then you have to search for another reason.
Regards,
Firas
— On Wed, 7/23/08, kaleem ahmad [email protected] wrote:
From: kaleem ahmad [email protected]
Subject: Re: [Discuss-gnuradio] FSK with RFX2400
To: [email protected]
Date: Wednesday, July 23, 2008, 5:23 PM
I have just provided the information which can be helpful for you, and
the
code is also attached with it and a sample received file is also there
along
with actual sent file.
Please just scroll up and you will find my message with all this
information. Additionally OS is ‘openSUSI’ a favour of Linux. But if
you
still need some more info then please let me know.
Thaks
Patrick S. wrote:
kaleem ahmad wrote am 2008-07-23 11:38:
Dear All,
Can anyone also address the first part of my question aslo, I mean how
to
improve the quality of received data. I mean is it normal with GNU
Radio/USRP that we receive so currupt data or I am doing something
wrong.
Your description is not very exact. You could help us to help you with
Student of Telematik, Techn. University Graz, Austria
Can some one explain in a little bit detail about where is the clock or
oscillator (on daughter board or on mother board) and how much is its
resulution for RFX2400 daughter board.
I tried to solve the problem of frequency mismatching by calculating the
frequency shift at receiver end by using usrp_fft.py and then by
adding/subtracting that frequency from RX USRP frequency as explained by
Firas and Patrick. But it dont solve the problem although it improves
the
quality of data but because of this effort at least I understand that
the
problem is really some where because of frequency mismatching.
So it will be helpful for me if some one either give some good document
of
USRP explaining clock/oscillator or just explaing the fuctionality of it
by
him/her self.
Thanks
Firas A. wrote:
mismtch between your TX and Rx Frequencies. This is probably what is
frequency is shifted. Calculate this frequency shift.
along
Any suggestion please
more information:
If you have recorded samples of a good and bad transmissions, send us a
To make nearly 0 Hz frequency shift between your TX and RX you have
to use a third device Spectrum analyzer or third USRP (no need to warry
about its calibration since the error will be the same for both) as
follows:
a) Start transmitting single tone from TX USRP (using usrp_siggen.py)
b) Observe and record spectrum analyzer received tone frequency.
c) Stop TX USRP.
d) Start transmitting single tone from your RX USRP (using
usrp_siggen.py).
e) Observe spectrum analyzer received tone frequency. Adjust your
transmitting frequency from your RX USRP until you get exactly the same
value found in step-b
I appolagize about my previous post so many spelling errors!.
Can some one explain in a little bit detail about where is the clock or
oscillator (on daughter board or on mother board) and how much is its
resulution for RFX2400 daughter board.
I tried to solve the problem of frequency mismatching by calculating the
frequency shift at receiver end by using usrp_fft.py and then by
adding/subtracting that frequency from RX USRP frequency as explained by
Firas and Patrick. But it dont solve the problem although it improves
the
quality of data but because of this effort at least I understand that
the
problem is really some where because of frequency mismatching.
So it will be helpful for me if some one either give some good document
of
USRP explaining clock/oscillator or just explaing the fuctionality of it
by
him/her self.
Thanks
Firas A. wrote:
mismtch between your TX and Rx Frequencies. This is probably what is
frequency is shifted. Calculate this frequency shift.
along
with actual sent file.
Please just scroll up and you will find my message with all this
information. Additionally OS is ‘openSUSI’ a favour of Linux. But
if
Dear All,
Can anyone also address the first part of my question aslo, I mean
how
to
improve the quality of received data. I mean is it normal with GNU
Radio/USRP that we receive so currupt data or I am doing something
wrong.
Any suggestion please
Before you wrote
after using tune
to set the proper ferquency I was able to run transmitter and
receiver
sussfully. I didnt change anything else in the example.
The problem is data
which I receive is too much corrupt (lot of data errors)…
Your description is not very exact. You could help us to help you with
If you have recorded samples of a good and bad transmissions, send us
a
representative part of it. If you need to show more than a hand full
of
kilobytes, put them on a web server or ftp server and provide a link.
Are you sure to have read the FAQ and introducing documentation?
Patrick
Engineers motto: cheap, good, fast: choose any two
Patrick S.
I am facing another problem in (fsk_tx.py, fsk_rx.py) , At receive end
it do
not always write the received data to file. Although it always receive
signal which I can see from fft window and received ‘seqno’ are also
printed
on command prompt but when I check the received file I find it empty.
What can be the problem…???
Kaleem Ahmad
Firas A. wrote:
use a third device Spectrum analyzer or third USRP (no need to warry about
Firas
Can some one explain in a little bit detail about where is the clock or
So it will be helpful for me if some one either give some good document of
Hi Kaleem,
causing this high error rate that you see.
code is also attached with it and a sample received file is also there
improve the quality of received data. I mean is it normal with GNU
The problem is data
What did you get? Error messages? (add exact transcripts of errors)
Are you sure to have read the FAQ and introducing documentation?