Also, it would be super awesome if you could avoid posting question both here and on usrp-users without telling the other list; that can save people time not duplicating answers others have given already.
On 25.07.20 10:42, Paul Boven wrote: > Hi Koyel, > > I was attempting to explain why the output of the USRP block (Complex > Int16) doesn't directly connect to other blocks. Although no other > block in GNU radio seems to use the type 'Complex Int16', it is > actually just a vector of size 2, containing the I and Q samples as 16 > bits int. > > It is possible to connect the USRP source block directly to the File > Sink block: you just need to set Vec Length to 2 in the File Sink > block, and set the data type to 'short'. > > Other blocks in GNU Radio can use either the 'Short' or the 'IShort' > data type, where the latter stands for 'Interleaved Short'. Using the > 'Vector to Stream' block as described in my previous mail, you can > convert the vector shorts from the USRP block into interleaved shorts > which can then be converted into e.g. floats. > > Regards, Paul Boven. > > On 7/25/20 10:22 AM, Koyel Das (Vehere) wrote: >> Hi Paul, >> >> Thanks for your help. Can you please give an example? Like if usrp >> source outputs 16 bit complex as I Q I Q I Q I Q for 4 IQ samples >> where I and Q are 16 bit complex then what will be the change in the >> format after vector to stream conversion? I understood that usrp >> source block already gives binary file where I and Q are written >> alternately as above or interleaved. So I am unable to understand >> when you say vector to stream will interleave I and Q samples. >> >> Regards, >> Koyel >> >> Get Outlook for iOS <https://aka.ms/o0ukef> >> ------------------------------------------------------------------------ >> *From:* Discuss-gnuradio >> <discuss-gnuradio-bounces+koyel.das=vehere....@gnu.org> on behalf of >> Paul Boven <p.bo...@xs4all.nl> >> *Sent:* Saturday, July 25, 2020 1:31:20 PM >> *To:* discuss-gnuradio@gnu.org <discuss-gnuradio@gnu.org> >> *Subject:* Re: GRC max sample rate >> Hi Koyel, >> >> On 7/25/20 9:19 AM, Koyel Das (Vehere) wrote: >>> Will there be packet drops if USRP source is set at 32 bit complex >>> float in grc when receiving at 100 MSPS each from two channels? That >>> makes 2*100e6*64 (32 bit I and 32 bit Q) = 12800e6 or 12.8 gbps. I >>> am unable to set usrp source block to 16 bit complex as then the >>> usrp source block is not compatible with file sink which doesn’t >>> have option for 16 bit complex. >> >> The USRP block is (as far as I could find) the only block in all of GNU >> Radio that uses the 'Complex Int16' type. Which is a bit confusing, but >> it is just a vector with a length of 2, alternating the I and Q channels >> as 16 bit shorts. >> >> You can simply convert it to interleaved int16 by using a 'Vector to >> Stream' block, with these settings: >> >> io_type: short >> num_items: 2 >> vec_length: 1 >> >> These 16 bit integers can then be written to disk (if it can keep up), >> memory, transferred over the network, or turned into floats for further >> processing. >> >> We use this to efficiently stream raw samples over the internet using a >> ZMQ Pub Sink. >> >> Regards, Paul Boven. >> > >