[Discuss-gnuradio] USRP2 firmware and FPGA code for MIMO
Hi, I'm trying to implement 2x2 MIMO systems using four USRP2s, two of which are connected by MIMO Cable and only one USRP2 is connected to computer through ethernet. After I look through the related discussions and document on the website. As far as I know, the SD card for USRP2 connected to computer should be loaded with firmware and FPGA code as "master". The other SD card for USRP2 connected with MIMO cable should loaded with other firmware and FPGA code as "Slave". However, from the previous discussion (http://osdir.com/ml/discuss-gnuradio-gnu/2010-12/msg00388.html) , the link in that page is not found. I can not find the page to download related files. Besides, I also find that there is some file like packet_router!? is necessary. But I still can not find the download page. Does any one have any idea? Please let me know. Thanks. Fisheep -- View this message in context: http://old.nabble.com/USRP2-firmware-and-FPGA-code-for-MIMO-tp31755121p31755121.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Discuss-gnuradio] Where can I download mimo_tx.bin and mimo_tx_slave.bin files?
Hi, I'm currently establish two usrp2 synchronized by mimo cable. From previous discussion and instructions on http://gnuradio.org/redmine/wiki/gnuradio/USRP2UserFAQ , I should change the firmware and FPGA code on the SD card. But from the website http://code.ettus.com/redmine/ettus/projects/public/wiki/U2binaries, there are no mimo_tx.bin and mimo_tx_slave.bin provided for download. Do I have to generate these two files by myself or they could be found on the websites? If I should generate these files, how to do it? Is there any instruction? (I find that there are mimo_tx.c and mimo_tx_slave.c in /usrp2/firmware/apps/. But I don know how to use.) If anyone have any idea, please let me know. I am deeply appreciate. Fisheep -- View this message in context: http://old.nabble.com/Where-can-I-download-mimo_tx.bin-and-mimo_tx_slave.bin-files--tp30393009p30393009.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] About MIMO-cable
Hi everyone, I also have the same question about USRP2 with MIMO Cable. I found from the forum that it should program the SD card with new firmware, but I don't know where to find the firmware code on the gnuradio wiki. Doee anyone have any idea about this. Please let me know, thanks in advance:) Fisheep Hongliang Zhang wrote: > > Hello everyone, > > I'm curious about synchronising 2 USRP2 boards using MIMO-cable. Is there > any firmware code, which supports transmitting and receiving signals from > two USRP2s connected by MIMO-cable? Which blocks do I need to use in > GNURadio companion for it? > > By the way, compared to setting ref. and PPS clock, which is the best way > for setting up MIMO system? > > Thanks in advance. :clap: > > Best wishes, > Hongliang > > > > -- View this message in context: http://old.nabble.com/About-MIMO-cable-tp30189888p30255389.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] C++ and python in OFDM doubt
Hi, I think you can take a look at those files ofdm.py and ofdm_receiver.py (in gnuradio/gnuradio-core/src/python/gnuradio/blks2impl/*.) The C++ blocks are all used inside those files. The ofdm_receiver.py does the synchronization, remove cp, fft, and equalization. FIsheep Laser_s wrote: > > Hello, > > I am working on OFDM. > I have several questions about OFDM codes, and in general GNU radio. > As I understand, there are functions in C + + that are linked through > python, right? > > if I look on the web: > http://www.gnuradio.org/doc/doxygen/ > I can find the C + + blocks there for OFDM: gr_ofdm_bpsk_demapper, > gr_ofdm_cyclic_prefixer, gr_ofdm_frame_acquisition ect > > On the other hand, if you look at the code: benchmark_ofdm_rx.py, it calls > another function that is ofdm_demod belonging to "ofdm.py." Then call > "ofdm_receiver.py" later "ofdm_sync_ml.py" > > But I never see the function calls in C + + mentioned above. > For me this raises several questions: > > Benchmark_ofdm_rx.py program uses C + + functions OFDM? > Is there any way to see a python code in graphical form? as block diagrams > or something? > > My ultimate goal is to take the blocks C + + and use them in simulink for > a receiver, is it possible? > > Thanks > -- View this message in context: http://old.nabble.com/C%2B%2B-and-python-in-OFDM-doubt-tp29969780p30012769.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] USRP1 cannot transmit/receive a OFDM packet discontinuously sometimes
Hi Tom, Thanks for your suggestion. I will take your advice and try it out. But recently I connect two USRP1 with the cable not through the antennas, hoping to remove the channel effect in this experiment. At the receiver, using the usrp_fft.py to observe the spectrum of received signal which is discontinuously transmitted from transmitter. The result shows that sometimes the spectrum doesn't get rise when transmitter send a packet.Is it possible that the transmitted packet doesn't transmit from USRP1? If possible, how do I examine this problem? Sorry, I'm not very expert in hardware implementation, but I will do my best to get familiar with USRP. Fisheep Tom Rondeau wrote: > > On Tue, Sep 14, 2010 at 12:52 AM, Fisheep wrote: >> >> Hi, >> >> My problem is that I try to discontinuously send "a" OFDM packet by using >> time.sleep() on USRP1, but fail to successfully receive this OFDM packet >> at >> the receiver sometimes. >> >> Brief Setting Description: >> Code : gnuradio-example/python/ofdm/benchmark_ofdm_tx{rx}.py >> Daughterboard : FLEX900 >> OS : Ubuntu 8.10 >> Tx : >> send_pkt(data) -> time.sleep(1) -> send_pkt(data) -> time.sleep(1) -> >> ... >> Rx : >> ok = False , pktno = 65537, >> ok = True , pktno = 1 , >> ... >> >> I have surveyed about this discussion on the forum. Using discontinuous >> transmission is to ensure the transmitter successly sending a packet and >> receiver will receive this packet. And I try this scheme on single >> carrier >> case like benchmark_tx{rx}.py on digital file, every packet is successful >> receive at receiver. But when changing to OFDM, not every packet is >> successful receive. >> >> Is it that fft consumes lots of time and causes the transmitter doesn't >> send >> this packet? >> I think this is the main different between single carrier and OFDM. >> >> If anyone have any idea about this problem, please let me know. >> I am deeply appreciative. >> >> >> Fisheep > > > Fisheep, > > I don't think anyone has actually tried doing this. I know when Matt > and I put the system together, we were concerned only with the > continuous case. We have some improvements to the OFDM pieces that are > on my todo list, though, and once the continuous case is finished, > we'll work on the discontinuous. Until then, though, I'm afraid the > only advice I could give would be completely speculative. > > My first thought would be to see how the synchronization is behaving; > that's almost certainly where the problem is. We have the > "gr_plot_ofdm.py" script that helps to visualize what's happening with > the received symbols (you'll need to turn logging on and have scipy > and matplotlib installed). Play with that in loopback mode to > understand what you're seeing, then see what happens with your > over-the-air tests. > > If you figure out ways to make it better, I'd love to hear it! > > Tom > > ___ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > -- View this message in context: http://old.nabble.com/USRP1-cannot-transmit-receive-a-OFDM-packet-discontinuously-sometimes-tp29705204p29715560.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Discuss-gnuradio] USRP1 cannot transmit/receive a OFDM packet discontinuously sometimes
Hi, My problem is that I try to discontinuously send "a" OFDM packet by using time.sleep() on USRP1, but fail to successfully receive this OFDM packet at the receiver sometimes. Brief Setting Description: Code : gnuradio-example/python/ofdm/benchmark_ofdm_tx{rx}.py Daughterboard : FLEX900 OS : Ubuntu 8.10 Tx : send_pkt(data) -> time.sleep(1) -> send_pkt(data) -> time.sleep(1) -> ... Rx : ok = False , pktno = 65537, ok = True , pktno = 1 , ... I have surveyed about this discussion on the forum. Using discontinuous transmission is to ensure the transmitter successly sending a packet and receiver will receive this packet. And I try this scheme on single carrier case like benchmark_tx{rx}.py on digital file, every packet is successful receive at receiver. But when changing to OFDM, not every packet is successful receive. Is it that fft consumes lots of time and causes the transmitter doesn't send this packet? I think this is the main different between single carrier and OFDM. If anyone have any idea about this problem, please let me know. I am deeply appreciative. Fisheep -- View this message in context: http://old.nabble.com/USRP1-cannot-transmit-receive-a-OFDM-packet-discontinuously-sometimes-tp29705204p29705204.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Discuss-gnuradio] Problem on passing complex data from rx_path to tx_path in benchmark_ofdm
Hi, I am currently implement such scheme that have to pass the information(complex data type) from rx_path to tx_path in benchmark_ofdm. The information (complex data) is said to be channel gain that can be calculated by pilot sequence inserted in ofdm symbol, and it can be get from gr_ofdm_frame_acquisition.cc. And I want to make use of this information for next transmitted packet. So I need a method to implement this scheme. Here are some methods that I used to implement but got some problems. 1) In gr_ofdm_frame_acqusition.cc, I save the complex data in a file and read this file when I send a packet. But it seems that saving file will slows down the process and causes the packet fail. 2) I rewrite the io_signature in the block of gr_ofdm_frame_acqusition.cc that increase the output port for the complex data. And connect this port to the transmit path. Like this: Rx-USRP -> rx_path --(gr_complex)-- tx_path -> Tx-USRP I know the rx_path and tx_path are parallel in GNU Radio. Is it possible to connect these two block with one port? 3) Maybe I can use gr_message. But I don't know how to use it for the data is complex data type. It seems that gr_message is for string data (unsigned char). Can it use for complex or floating data type? Anyone have any suggestions about these problems, please let me know. I am deeply appreciative. Fisheep -- View this message in context: http://old.nabble.com/Problem-on-passing-complex-data-from-rx_path-to-tx_path-in-benchmark_ofdm-tp29621722p29621722.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] question of dual transmitter/receiver
Hi, Sorry for my unclear suggestion before. In the "fm_tx_2_daughterboards.py" code, just refer to the code of USRP setting and make the same change for benchmark_tx.py. The code start from # # Set up USRP to transmit on both daughterboards self.u = usrp.sink_c(nchan=2) # say we want two channels self.subdev = (self.u.db(0, 0), self.u.db(1, 0)) ... self.u.set_mux(0xba98) ... # And the setting of USRP1 of benchmark_tx.py (/gnuradio-examples/python/digital/.) is in usrp_transmit_path.py. But I remember that the new version of gnuradio hides the USRP setting in the files of usrp_options.py (/gnuradio-core/src/python/.) and generic_usrp.py (/gnuradio-core/src/python/blks2impl/.) If you want to modify these two files, I think it is a little bit difficult. Maybe you have to construct a new USRP setting in usrp_transmit_path.py. The setting of "set_mux" seems different for tx and rx, but I don't know the exact reason. Sorry. I am not sure whether this information is what you want. Hope this helps. Fisheep YouheiFujii wrote: > > Hi, > > Thank you for your advice. > > >It seems you have two daughterboards on one USRP1, and you want to > communicate with these two daughterboards. > Yes, that's right. > > I want to use my dual-db program in /usr/share/example/digital. > I saw "fm_tx_2_daughterboards.py", but that program isn't use digital's > py-files and modules. > > When I search, I saw the function "set_mux". > I tried use "set_mux", but I didn't do that well. > > If does anyone have experience of making program which on dual-db on > 1-USRP1, > please give me advice. > > I have to do well in few days ;- > > > Thanks, > youhei > > (2010/07/26 21:55), Fisheep wrote: >> Hi, >> >> It seems you have two daughterboards on one USRP1, and you want to >> communicate with these two daughterboards. >> Maybe you could take a look at fm_tx_2_daughterboards.py first(in >> /gnuradio-examples/python/usrp/.). >> > From your code, I think you didn't modify the USRP setting that causes >> your >> code fail. >> >> Hope that helps, >> >> Fisheep >> > > ___ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > -- View this message in context: http://old.nabble.com/question-of-dual-transmitter-receiver-tp29253936p29266829.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] question of dual transmitter/receiver
Hi, It seems you have two daughterboards on one USRP1, and you want to communicate with these two daughterboards. Maybe you could take a look at fm_tx_2_daughterboards.py first(in /gnuradio-examples/python/usrp/.). >From your code, I think you didn't modify the USRP setting that causes your code fail. Hope that helps, Fisheep YouheiFujii wrote: > > Hi all, > > I'd like to ask some questions about dual transmitter/receiver on USRP1. > > I want to make dual transmitter/receiver > by remodeling benchmark_tx/rx.py. > > In detail, > I want to use two daughterboard (two FLEX400) on one USRP1. > The pair of side-A transmit and receive on 412MHz, > and the pair of side-B transmit and receive on 420MHz. > > > USRP1(tx only)USRP1(rx only) > ++++ > |||| > |db1:| 420MHz |db1:| > | FLEX400(A)FLEX400(A) | > |||| > |db2:||db2:| > | FLEX400(B)FLEX400(B) | > || 412MHz || > ++++ > > > Now I made tx-node's program like attachment file, > and execute this file. > - > $ sudo python dual_tx.py -f 412M > - > > However, I got the following error. > - > user:/usr/share/gnuradio/examples/digital$ sudo python dual_tx.py -f 412M > {'verbose': False, 'discontinuous': False, 'samples_per_symbol': 2, > 'usrpx': None, 'interp': None, 'fusb_block_size': 0, 'megabytes': 1.0, > 'rx_freq': 41200.0, 'size': 1500, 'show_tx_gain_range': False, > 'log': False, 'tx_subdev_spec': (0, 0), 'fusb_nblocks': 0, 'lo_offset': > None, 'tx_gain': None, 'which': 0, 'modulation': 'gmsk', 'excess_bw': > 0.34998, 'bt': 0.34998, 'interface': 'eth0', > 'freq': None, 'bitrate': 10.0, 'from_file': None, 'tx_freq': > 42000, 'mac_addr': '', 'tx_amplitude': 0.25, 'gray_code': True} >>>> gr_fir_fff: using SSE > Requested TX Bitrate: 100k Actual Bitrate: 125k > @ > {'verbose': False, 'discontinuous': False, 'samples_per_symbol': 2, > 'usrpx': None, 'interp': None, 'fusb_block_size': 0, 'megabytes': 1.0, > 'rx_freq': 41200.0, 'size': 1500, 'show_tx_gain_range': False, > 'log': False, 'tx_subdev_spec': (1, 0), 'fusb_nblocks': 0, 'lo_offset': > None, 'tx_gain': None, 'which': 0, 'modulation': 'gmsk', 'excess_bw': > 0.34998, 'bt': 0.34998, 'interface': 'eth0', > 'freq': None, 'bitrate': 10.0, 'from_file': None, 'tx_freq': > 41200, 'mac_addr': '', 'tx_amplitude': 0.25, 'gray_code': True} > usrp_open_interface:usb_claim_interface: failed interface 1 > could not claim interface 1: Device or resource busy > usrp_basic_tx: can't open tx interface > Traceback (most recent call last): > File "dual_tx.py", line 150, in > main() > File "dual_tx.py", line 109, in main > tb = my_top_block(mods[options.modulation], options) > File "dual_tx.py", line 54, in __init__ > self.txpath_b = usrp_transmit_path.usrp_transmit_path(modulator, > options) > File "/usr/share/gnuradio/examples/digital/usrp_transmit_path.py", > line 67, in __init__ > self._setup_usrp_sink(options) > File "/usr/share/gnuradio/examples/digital/usrp_transmit_path.py", > line 76, in _setup_usrp_sink > self.u = usrp_options.create_usrp_sink(options) > File "/usr/share/gnuradio/examples/digital/usrp_options.py", line 119, > in create_usrp_sink > gain=options.tx_gain, > File "/usr/share/gnuradio/examples/digital/generic_usrp.py", line 199, > in __init__ > _generic_usrp_base.__init__(self, **kwargs) > File "/usr/share/gnuradio/examples/digital/generic_usrp.py", line 57, > in __init__ > elif usrpx == '1' or self._subdev_spec: self._setup_usrpx(USRP1_TYPE) > File "/usr/share/gnuradio/examples/digital/generic_usrp.py", line 76, > in _setup_usrpx > if self._type == USRP1_TYPE: self._setup_usrp1() > File "/usr/share/gnuradio/examples/digital/generic_us
Re: [Discuss-gnuradio] OFMD TX and RX
Hi, I'm not sure why you can't receive all the packet correctly, but I can briefly tell you how ofdm implement in GNU Radio. First, fft_length=512 means it will take 512 subcarriers to do ifft/fft, and occupied_tones=200 means it only take 200 subcarriers to put your modulation symbol. Besides, the 200 subcarriers are set at the center of 512 subcarriers. Then you will see there are the remaining 312(512-200) subcarriers which is zero outside the occupied_tones. likes this: xOOxxOOx --+> f O => occupied_tones x => remaining subcarriers the two x at the center is to avoid DC offset. After ifft, the CP is added. OFDM is sensitive to the bitrate(interpolate/decimate), so set the bitrate carefully. Hope this will help you little. Fisheep. Chris_Spain wrote: > > Hello everybody, > > > I' am trying to test and understand the OFDM Modulation implemented in GNU > Radio. I'm using the deafult values, fft_lenth=512, occupied_tones =200, > cp_length= 128 and bpsk modulation, besides, I'm using a RFX900 > Daughterboards on USPR and I'm connecting the TX and RX with a coaxial > cable. > > I try to send a package of 1024 bytes but I'm not receiving all packets, > always lost the first packet and then is a little bit random, sometimes I > receive and I demodulated the 2º,3º,4º package and lost 5º, or lost 3º and > recive ok 2 ºand 4º... > I don't know what are happening, because I don't know how the OFDM > implementation map the 1024 bytes onto 200 carriers of data. > > If I'm understanding the OFDM theory, with a bpsk modulation each carrier > are modulated for two bits and my OFDM symbol length are 512+128 > (fft_length+cp_length).So, ¿with 2 bits per data carrier (200), each > symbol transport 400 bits, 50 bytes? > > That can´t be true because I receive some packages with no errors. > Somebody can explain me, How works OFDM Modulation implemented in GNU > Radio? > > -- View this message in context: http://old.nabble.com/OFMD-TX-and-RX-tp28871027p2368.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] how to use from file in benchmark_tx.py
Hi, Try this: ./benchmark_tx.py -f 2.45G -r 512k --from-file=Apress.pdf I think this will be work. Fisheep Muhammad Rizwan-3 wrote: > > Hello, > I have a couple of (in fact more than that) questions, kindly answer > them asap: > How to use the option of --from-file in benchmark_tx.py? > I am using USRP1, gnuradio3.2.1 and RFX2400. Secondly how to use --log > option in benchmark_rx.py? From where the --from-file option reads the > input files and how to receive that file? Kindly describe these options > a little bit as well, what they exactly do? > This is how i am using it in the terminal: > ./benchmark_tx.py -f 2.45G -r 512k --from-file Apress.pdf > but its not working. > When i use the log file option, it generates a file > 'clock_recovery.dat'. It never opens. What to do? > Thanks! > Muhammad Rizwan > > ___ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > -- View this message in context: http://old.nabble.com/how-to-use-from-file-in-benchmark_tx.py-tp28739017p28749883.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Discuss-gnuradio] USRP1 can't correctly receive packet from USRP2 using benchmark_tx/rx or benchmark_ofdm_tx/rx
Hi, I have currently set up a transmission between USRP1 and USRP2 with FLEX900. And got the following results. In gnuradio/gnuradio-example/python/digital/ Successful transmission (ok = True) when Tx (USRP1) : ./benchmark_tx2.py -f 900M --tx-amplitude=0.4 -m dbpsk2 Rx (USRP2) : ./benchmark_rx2.py -f 900M -m dbpsk2 -e eth0 Fail (ok = False and lost lots of packets) when Tx (USRP2) : ./benchmark_tx2.py -f 900M --tx-amplitude=0.4 -m dbpsk2 -e eth0 Rx (USRP1) : ./benchmark_rx2.py -f 900M -m dbpsk2 In addition, if using the original modulation like dbpsk not dbpsk2, the transmission also not work as expected. also ref to the two discussions: http://www.ruby-forum.com/topic/203035 http://www.ruby-forum.com/topic/202105 I successfully transmit packet from USRP1 to USRP2 with the following parameter setting. Tx (USRP1) : benchmark_ofdm_new_tx.py -f 900M --tx-amplitude=0.4 -i 128 Rx (USRP2) : benchmakr_ofdm_new_rx.py -f 900M -d 100 But the same problem as above, USRP1 can't receive correct packet from USRP2. Does anyone has any suggection about this problem, please let me known, Thanks. Sincerely, Fisheep -- View this message in context: http://old.nabble.com/USRP1-can%27t-correctly-receive-packet-from-USRP2-using-benchmark_tx-rx-or-benchmark_ofdm_tx-rx-tp28603392p28603392.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] bpsk lost some packet when transmit data discontinuously
Tom, It is really what you are said. After I transmitted packet several times, I got the probability of 1/2 that correctly received packet and probabilty of 1/2 that got nothing. I think this result is explicit when I change the carrier frequency from 900M Hz to 2.4G Hz. It is my fault. I thought that it will work like a bpsk if I removed the differential encoder/decoder from dbpsk.py. But I haven't do the channel estimation to get the correct phase rotation. Did anyone try to implement the channel estimation into gnuradio? I find that at the gr_mpsk_receiver_cc block there is a parameter theta that pass into this block. In dbpsk the theta is set to 0. Is it correct that I pass the phase rotation from the channel estimation? If is, how do I do the channel estimation before the synchronization...there are two samples/symbol before the gr_mpsk_receiver_cc block. Sorry for I first contact with software defined radio. And I really don't have a complete concept of the transmission structure when it involves synchronization and channel estimation. Fisheep Tom Rondeau wrote: > > On Tue, Mar 9, 2010 at 3:03 AM, Fisheep wrote: >> >> Hi: >> >> I have some problem about dbpsk and bpsk using benchmark_tx/rx.py with >> some >> modification. >> >> My experiment set up was that the transmitter waits for a time delay (0.5 >> s) >> after sending a packet. >> It means that we transmit data discontinuously. >> >> If we using dbpsk modulation, we can successfully receive every packet. >> But if we removed the differential encoder/decoder (equals to bpsk >> modulation), we uaually >> lost some packet (almost half of the data lost). >> >> However, when we transmit data continuously,the bpsk modulation seems >> work >> fine and we can successfully receive every packet. >> >> My problem is that what reason causing the bpsk modulation can not >> successfully receive packet when >> transmit data discontinuously. >> >> Could anyone have any idea about it, please let me know. >> I am deeply appreciative. >> >> Fisheep :) > > > Fisheep, > > I'm wondering how you are compensating for the phase ambiguity of the > BPSK signal in the receiver? In the current DBPSK, there is no method > to properly rotate the constellation because the differential encoding > doesn't care. If you are just transmitting BPSK, you'll have a 180 > degree phase ambiguity in the receiver. If that's the case, then for > every burst of a packet, when the receiver locks to the constellation, > it will be in one of two phase rotations, one which works and one > which inverts every symbol. They should be distributed with equal > probability, so half of the time you'll have the correct rotation and > the other half you won't. > > When you transmit continuously, I would expect that you'll also see > the same behavior. If you've got the right rotation, you'll receive > every packet. Otherwise, you'll see nothing. Does that happen > sometimes? > > Tom > > ___ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > -- View this message in context: http://old.nabble.com/bpsk-lost-some-packet-when-transmit-data-discontinuously-tp27832481p27893508.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Re: [Discuss-gnuradio] bpsk lost some packet when transmit data discontinuously
Thanks for your reply. I thought that the problem can not get enough data to fill up a packet could happen on any modulator. But why we could receive every packet properly when using dbpsk and lost packets when using bpsk? (Under transmitting each packet with a time interval.) And I went through the packetizer.py quickly and found that it seems that different modulations have different packet preambles. i.e. preamble = conv_packed_binary_string_to_1_0_string('\xA4\xF2') preamble_bpsk = conv_packed_binary_string_to_1_0_string('\x55\x55\x55') preamble_qpsk = conv_packed_binary_string_to_1_0_string('\x1E\x1E\x1E\x1E\x1E\x1E') ... Does this different cause the bpsk can not receive data properly? Again, Thanks for your reply. It really helps me a lot. I am deeply appreciative. Fisheep :) Michael Berman-2 wrote: > > The problem does not lie with the bpsk modulator, the problem is in the > packetizer. The packetizer waits until it gets enough data to completely > fill up a packet, generally resulting in the loss of the last packet as > there is not enough data to fill it perfectly. > > There is a modified copy of the packetizer.py that you could use that has > been set up to handle this specific async digital communication scenario > at > http://code.google.com/p/softwaredefinedradio . If you look at > .../trunk/src/Data_Path, there is a modified Python file for > packetizer.py. > You may also want to look at the dpsk.py file in this directory, as it > shows > how to set up the top level design to use a message queue for the > asynchronous sending of packets. The last (useful) file in this director > is > the txrx_controller.py, which establishes a custom rudimentary protocol to > ensure packet retrieval went well, and all information is received > properly. There is some documentation for this in the Docs folder. > > > -Michael Berman > > On Tue, Mar 9, 2010 at 12:03 AM, Fisheep wrote: > >> >> Hi: >> >> I have some problem about dbpsk and bpsk using benchmark_tx/rx.py with >> some >> modification. >> >> My experiment set up was that the transmitter waits for a time delay (0.5 >> s) >> after sending a packet. >> It means that we transmit data discontinuously. >> >> If we using dbpsk modulation, we can successfully receive every packet. >> But if we removed the differential encoder/decoder (equals to bpsk >> modulation), we uaually >> lost some packet (almost half of the data lost). >> >> However, when we transmit data continuously,the bpsk modulation seems >> work >> fine and we can successfully receive every packet. >> >> My problem is that what reason causing the bpsk modulation can not >> successfully receive packet when >> transmit data discontinuously. >> >> Could anyone have any idea about it, please let me know. >> I am deeply appreciative. >> >> Fisheep :) >> -- >> View this message in context: >> http://old.nabble.com/bpsk-lost-some-packet-when-transmit-data-discontinuously-tp27832481p27832481.html >> Sent from the GnuRadio mailing list archive at Nabble.com. >> >> >> >> ___ >> Discuss-gnuradio mailing list >> Discuss-gnuradio@gnu.org >> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio >> > > ___ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > -- View this message in context: http://old.nabble.com/bpsk-lost-some-packet-when-transmit-data-discontinuously-tp27832481p27836131.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Discuss-gnuradio] bpsk lost some packet when transmit data discontinuously
Hi: I have some problem about dbpsk and bpsk using benchmark_tx/rx.py with some modification. My experiment set up was that the transmitter waits for a time delay (0.5 s) after sending a packet. It means that we transmit data discontinuously. If we using dbpsk modulation, we can successfully receive every packet. But if we removed the differential encoder/decoder (equals to bpsk modulation), we uaually lost some packet (almost half of the data lost). However, when we transmit data continuously,the bpsk modulation seems work fine and we can successfully receive every packet. My problem is that what reason causing the bpsk modulation can not successfully receive packet when transmit data discontinuously. Could anyone have any idea about it, please let me know. I am deeply appreciative. Fisheep :) -- View this message in context: http://old.nabble.com/bpsk-lost-some-packet-when-transmit-data-discontinuously-tp27832481p27832481.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Discuss-gnuradio] Different modulation scheme between header and payload
Hello guys, I try to modify the ./benchmark_tx/rx.py in gnuradio-examples/digital, wish to set different modulation scheme for header and payload. Ex: header with dBPSK modulation payload with dQPSK modulation But I face some difficulties: 1.) We cannot extract arbitrary size of data for output 2.) Synchronization schemes are different among modulation schemes (For we need to find header first, but after we find header, we have dealt the payload with wrong synchronization scheme already) Could someone give me some advice about how to implement it? I am deeply appreciative. Fisheep :) -- View this message in context: http://old.nabble.com/Different-modulation-scheme-between-header-and-payload-tp26934215p26934215.html Sent from the GnuRadio mailing list archive at Nabble.com. ___ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio