12-05-2012 03:25 AM
Hay all,
Currently, I'm trying to develop 802.15.4 system. I have a few question about the data sequence that being fetched into niUSRP write Tx Data.vi.
The vi (niUSRP write Tx Data) accepts IQ data from modulation block, What is the sequence for data that is being transmitted? For example, bitstream is modeled as array, which array[] is tranmitted first? The LSB, or the MSB.
The standard itself (802.15.4) specify that the least bit (C0) is transmitted first.
Thank you.
12-05-2012 06:01 AM
my TICC2530 has been sucessfully detected the signal, but the decoding still messy.
And I have problew, because
"niUSRP Write Tx Data (CDB Cluster).vi<ERR>Underflow: the Tx buffer was emptied before new data was provided. Consider reducing the IQ rate, increasing the Write rate, or increasing the number of samples per Write."
I already tried to change the registry, as mentioned in here Increasing-write-rate , but, I still have the problem, when I run the IQ rate > 4M and samples per symbol 4. Hence, the CC2530 won't recognize the signal, if I set the IQ rate to be 4M. This in the constelation for my custom OQPSK half sine pulse (4M, 4samples/symbol, Symbol rate 1M)
and my CC2530 will recognize the signal if I set the IQ rate 8M and samples per symbol 8, here is the constelation diagram
So, my question is, how to handle the error?
12-05-2012 06:57 AM - edited 12-05-2012 07:00 AM
What is the sequence for data that is being transmitted....The LSB, or the MSB.
For arrays and LabVIEW in general, it will start at index 0 and work its way to the last element. Remember that the USRP will transmit symbols and not bits.
From the picture of your IQ plot, it looks like you are only generating a few symbols. The network connection adds some overhead to the data being sent to the USRP to be ethernet compliant. I suspect that the data your sending to the USRP isn't large enough to benefit from the ethernet connection.
What happens if your bit stream is much longer or if you duplicate the Y array several times?
You also didn't mention if you were doing fininte or continuous transmission.
12-05-2012 10:23 PM
I'm doing finite transmission, and packet is repeated n times according my setup. What is the difference between finite and continuous, and where I could apply this setting?
12-07-2012 06:37 AM - edited 12-07-2012 06:39 AM
The end of data? input terminal will tell the USRP to turn off the local oscillator or not. This is the basis for finite transmissions.
When the last sample has been written you would turn off your LO (right side).
On the left side, you would expect to have call niUSRP Write Tx Data multiple times (usually from a loop) and on the final call to Write Tx Data, set the boolean to true to prevent underflow errors.
12-22-2012 09:42 AM
For arrays and LabVIEW in general, it will start at index 0 and work its way to the last element. Remember that the USRP will transmit symbols and not bits.
Yes, I agree with you, but, before symbols being transmitted, it came from bits, right?
12-23-2012 03:02 AM
So, I made a little code based on USRPPacketTxRx posted in (packet based digital link) . I tried to replace the packet format with 802.15.4 and made spreading and half sine pulse shape. I could not figure it out, why my code is error (buffer overflow),
My TI cc2530 could detect the packet, but the CRC is error,
I implement CRC-16-CCITT as FCS, but, still, I'm facing the problem.
*The main program is Transmitter.vi
Could anyone help me, since I'm new to LabVIEW?
Thanks.
12-26-2012 02:16 AM
I have question about data that being fetched into niUSRP Write Data Tx, I know it is a complex waveform type.
The complex waveform type is produced by modulation toolkit.
The modulation toolkit will map input bits into a symbol, then complex waveform.
What I'm asking here is regarding the input bits. (the data)
Supposed, I have string '123456789',
so I should change it to ID-Array Unsigned byte?
So the input for the modulation kit will be represented as byte array, e.g. 1-> ascii = 31 -> Binary = [00110001].
Which one should be the input for modulation toolkit?
- ASCII ( I can use String to Byte Array vi), or,
- I should use Binary ( ASCII '1', then change it to binary).
Please help me 🙂