-
Notifications
You must be signed in to change notification settings - Fork 519
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IQFLOAT isn't parsed corretly or not documented enough #31
Comments
Specs: |
The IQFLOAT type is float : be sure to not have a double float output from gnuradio. |
IQFLOAT means 32 bit interleaved floats, like:
Endianness depends on the system, it should be LE on both an RPi and a PC. Also the signal should have the maximum amplitude possible (I mean that you should set the gain correctly in the appropriate GNU Radio blocks), but it should never exceed the [-1.0, 1.0] range. This is the line in the code where the data is converted to 16 bit signed imtegers: https://github.com/F5OEO/rpitx/blob/master/src/RpiTx.c#L1308 However, if you want to generate an FSK or an FM signal, I suggest that you should always use @F5OEO Evariste, are these correct? |
Yes , thx Andras for these nices explanations. Have some good news : works 2016-08-24 15:51 GMT+02:00 András Retzler notifications@github.com:
|
Great! |
Thank you for the explanation, its exactly what I thought and what GNURadio complex type actually is, 2 floats each 32bits (no doubles). I am probably missing a single gear somewhere in my approach :) as it seems no one else had issues with IQFLOAT. I will poke more around with simple sine waves to get a better idea what actually happens |
@spaivaras Do you succeed in using IQFLOAT with gnuradio ? |
@F5OEO Nop, Tried everything, pass data thru network, read it directly from file. Lower sampling rates, higher sample rates, gains, swapping I and Q data, shifting from center. The signal always seems very distorted (like 2 carrier frequencies). Checked the data that is coming thru, everything seems fine with setup. RF modes works quite well, just can't generate a RDS signal with RF mode. I can even use IQ demodulation in gnu radio itself and pass resulting floats via csdr with convert_f_samplerf and a constant for timing. And it works. But no success with IQFLOAT. In any case I think this can be closed, as no one else seems to have any issues (or just didn't try it). I will sniff in code at some point, if I find something I will create a PR :) |
Have to check this IQLOAT issue coming from external tool like gnuradio. Can you send me an example of file with IQFLOAT which is distorded to inspect and reproduce here ? |
Sure, I generated 3 files, which can be played with no problem in GQRX or other sdr software |
Hello, I just can't get rpitx to work with IQFLOAT data (complex type of GNURadio) to work properly with rpitx. I have a simple FM transmitter under gnu radio and pipe complex floats via network with sampling rate of 190000 (doesn't really matter as no sampling rate is working)
If i use
and i get an to wide output with 2 peaks in them, the signal is unusable:
![selection_002](https://cloud.githubusercontent.com/assets/1462984/17906774/67377e42-6981-11e6-8302-b28bb7e0a71d.png)
If I try the exact same IQ data, but first passing it via csdr
I get a much better signal (actually quite good one) proper width:
![selection_001](https://cloud.githubusercontent.com/assets/1462984/17906773/6734f9f6-6981-11e6-9049-5378e2dd9fb6.png)
It would be enough to use csdr, but it introduces additional latencies, adds requirement for gain multiplication and in general would be nice if rpitx would properly handle IQ data itself :)
In README.md about streaming from GNURadio its written to "shift" the signal by 5khz, and thats centers the signal on one of 2 peaks. But that doesn't fix the issue that signal itself is not a good representation of passed IQ values
The text was updated successfully, but these errors were encountered: