GLONASS - frist experiments
Front-end "gnss-sdr" can not only be used to record GPS L1 signals but also to record GLONASS L1 signals (on the figure below tracking loop results are presented)...
To be able to work with GLONASS following modifications had to be made:
1) MAX2769 heterodyne frequency was set to 1601 MHz;
2) Both I and Q outputs were used;
3) MAX2769 embeded intermediate frequency filter was set in a low-pass mode with corner frequency = 9 MHz.
This way in the project MAX2769 permits to work with 16 MHz bandwidth signals. This bandwidth exceeds all GLONASS L1 bandwidth.
On the figure below recorded signal spectrum is presented. Zero frequency corresponds to 1601 MHz.
On the next figure PVT solution for the recorded signal is made:
The GLONASS signal recorded can be downloaded
What's the sample rate of your recorded signal? And can U show me the format of the data file? 3ks.
Sampling frequency is 16 MHz;
1 byte contains 1 sample;
Quadratures are used. I and Q samples are interleaved (I1, Q1, I2, Q2, I3...);
There are signals from 6 satellites.
You can use this code: http://gnss-sdr.com/sklad/G...
to play with this file: http://smqigg.1fichier.com/...
(You should only install scilab. It can be donwloaded from: http://www.scilab.org/
). The main file in GLON_SDR_scilab.rar is "init.sce". Just open it in scilab and press "Ctrl+Shift+E" to start the script.
what is Quadrature in transmitted signal?
I can make Q in my receiver. what need to receive Q? do Glonass Transmitter send I/Q signals? please, specify success acquired satellites. please,Guide me.
In my previous answer I was talking about MAX2769 output. This chip produces quadratures from incoming rf-signal by multiplying it on sin(wt) and cos(wt). You can find more details about max2769 in it's datasheet ( http://datasheets.maxim-ic....
What do you mean "I can make Q in my receiver"?
OK. I understand MAx2769's goal from using I/Q.Now, what is If-frequency of the input signal?
Good question ;)
As GLONASS uses FDMA (unlike GPS with CDMA) each satellite uses it's own frequency. So the correct question would sound "What IF will have satellite that uses frequency channel number X?". But even better would be to ask "What LO-frequency was chosen in MAX2769?". The answer on the last question is "MAX2769 LO-frequency was 1601 MHz".
So all you need is to look in GLONASS ICD and find what frequencies are used in L1 band. The ICD can be found here: http://gnsssdr.googlecode.c...
Thanks for your answer.But, Based on your answer, I have two question.
1. Since, 1601MHz( your selection for LO freq.) is not the center frequency of all the band of GLONASS (1598.0625MHz-1605.375MHz), the resultant IF band is asymmetric and this is in contradiction with your code. What is your comment?
2. Since the MAX2769 datasheet offers that the IF freq. set to 4.092MHz, Does this selection provide datasheet's suggestion?
1) What do you mean by "contradiction with your code"? ;) If we are talking about scilab glonass receiver published on googlecode then I chose IF that corresponds to glonass zero channel (1602 MHz on L1). Let's look in file initSettings.sci
. As you can see I set settings.IF = 1.0000e6; (1602 MHz - 1601 MHz, where 1601 is LO frequency and 1602 is glonass L1 zero-frequency-channel).
Later in acquisition.sci
I set IF-frequency for each frequency channel with the following code: (settings.IF + FCH*settings.L1_IF_step). Where settings.IF = 1MHz; FCH is the current frequency channel number in the range from -7 to +6. And L1_IF_step = 0.5625MHz - distance between neighbour frequency channels.
In previous versions I chose IF that corresponded to frequency channel -8! But now it's different!
2) I gues that MAX2769 datasheet recommends this IF for GPS! For GLONASS I use low-pass filter with maximum bandwidth. Check one the last parts of datasheet "Operation in Wideband Galileo and
GLONASS Applications". There are direct recommendation for GLONASS and GPS P-code modes to use zero-IF receiver configuration. And I chose not exactly (1598.0625+1605.375)/2 = 1601.71875 MHz because it's easier to set 1602 MHz LO frequency.
I am trying to use your data and have two comments:
1) When you say "sampling frequency 16 MHz', is it in fact 16.368 MHz? I think this is one of the options with the MAX2769.
2) When I read your data file in format 'schar', I get four possible values (+/1 and +/2), but the histogram is quite unbalanced. I would expect something Gaussian-like, with quite similar +/-1, and lower +/-2. What I get instead is like a "stair", from -2 (minimum), then -1, +1 and finally +2 (maximum). Are you using 'schar' or something else? Am I doing something wrong?
Thanks a lot for your help!
Here are the answers on your questions:
1) Sampling frequency is exactly 16.000000 MHz.
2) Ideally you should get Gaussian-like distribution of the samples values (like you expect). But in real life I sometimes get not Gaussial-like distribution. I can not name exact reason why is it so.
So you are doing everything right. All the samples are 'schar'.
PS Sorry for the delay with the answer.
many thanks for your assistance. in the initsetting.sci code IF.settings is equal to 1MHz. For generating (settings.IF + FCH*settings.L1_IF_step) by hardware NCO I need to a NCO that generate both exp(-jx) and exp(+ix) that it is not efficient for my hardware NCO.do you have any way to solve this problem?(it means that selecting frequency channels done by positive frequency). note that I can compensate input signal by a negative frequency before NCO. for example I tested exp(-j2*pi*3.5MHz*t) before selecting channel frequency and doppler frequency compensation in the acquisition.sci code.acquisition was failed by this change.why compensating -3.5MHz before selecting channel frequency and doppler frequency compensation changed acquisition result? please guide me.
Thanks. my problem solved. I have a problem about MAX2769. Can i ask it?
feel free to ask any questions. If I understand them - I try to answer...
The GLONASS signal recorded is expired so I can't download it. Can you reupload it?
I've reuploaded the file with GLONASS L1 signal record. Here is the link: http://y0c7hi.1fichier.com/en/
can we use passive GPS antenna to detect GLONASS signal in MAX2769 Ev Kit?
I used a passive GPS antenna to detect GLONASS signal by MAX2769B EV Kit, in which registers have been set as follows:
1. IQ was enabled.
2. for IF filter:
- Filter was Low pass.
- Bandwidth was 18MHz or 8MHz.
3.Data format sign/mag.
5.LO frequency was 1600.995MHz.
4. And defaults MAX2769B settings.
But I could not detect any GLONASS signal. what is its reason? should I used any specific settings for MAX2769B? please help me.
I've never tried to use passive antenna with max2769. But I used many times the cheapest active GPS antenna to receive GLONASS signals.
Have you made changes to initSettings.sci file? You have to correct the IF frequency (in your case it should be 1602-1600.995 = 1.005e6).
You can also compare your settings with mine in this file:
You can also send a small record to me (at least 5 seconds) and I will check it myself and give advice which parameters can be corrected.
You can also write on my e-mail (firstname.lastname@example.org) to get faster response.
I am sure all my scilab settings are correct. as you said, my IF frequency was set in the correct way.
I think MAX2769's LNAs are weak. since, when I used MAX2769 with an active antenna to acquire GPS signals, signal_to_noise in the acquisition stage was low. can these refer to my registers programming in the MAX2769 ?
Is it possible send me your registers for programming MAX2769B to detect a GPS and GLONASS signal? please note that I am using a MAX2769B EVKit with 16.368MHz ref. clock or 10MHz ref. clock.
many thanks for your assistance.
I wrote you an answer by e-mail...
I'm also would like to know the registers' setting of MAX2769B to receive GLONASS(FDMA) satellite signals.
Thanks in advance.
You can find settings here: http://code.google.com/p/gn...
(lines 568-597). To work with GLONASS lines 569, 581 must be uncommented and lines 570, 579 must be commented.
Thank you for showing the settings. I have one question.
the 4 Byte (32 bits) data, 0xA2918F30, can be shown for COMF1 register in the line 570,
however MAX2769B datasheet shows that the bit size of COMF1 register is 28 bits.
How do I think about the difference of 4 bits?
That's easy: the last for bits (or one hexademical digit) are register number. So only first 7 hexademical digits are of your main interest.
Thank you very much. I'll try to receive the signals by the setteings.
Can you reupload the glonass signals? It is expired