anastas / gr-cdma Goto Github PK
View Code? Open in Web Editor NEWa cdma physical layer for Gnuradio
a cdma physical layer for Gnuradio
I see this error saying "printf" is unknown:
/SOMEDIRNAMES/gr-cdma/lib/switched_peak_detector_fb_impl.cc: In member function ‘virtual int gr::cdma::switched_peak_detector_fb_impl::work(int, gr_vector_const_void_star&, gr_vector_void_star&)’:
/home/raj/Desktop/B210_testing/gr-cdma/lib/switched_peak_detector_fb_impl.cc:101:100: error: ‘printf’ was not declared in this scope
printf("SOMETHING IS WRONG: noutput_items %d < look_ahead %d\n",noutput_items,d_look_ahead);
It is on Ubuntu 14.04 with gcc 4.8.4-2ubuntu1~14.04.3. I guess on some other OS, stdio.h is somehow included implicitly, but not on mine. It can't hurt to include the header, so:
diff --git a/lib/switched_peak_detector_fb_impl.cc b/lib/switched_peak_detector_fb_impl.cc
index 1d68f58..64682f2 100644
--- a/lib/switched_peak_detector_fb_impl.cc
+++ b/lib/switched_peak_detector_fb_impl.cc
@@ -23,6 +23,7 @@
#endif
#include <gnuradio/io_signature.h>
+#include <stdio.h>
#include "switched_peak_detector_fb_impl.h"
namespace gr {
hello anastas
these days,i am using your gr-cdma model with usrp b200,when i run cdma_rx.grc,there are some problems.
the problem is that this model is not stable,sometimes i run this model and it worked well,
but sometimes i run this model ,it dose not work well,the grc crashed,the error message is
gr::log::info:Detected an invalid packet at item (3807)
message debug info
when i shield
if (!d_header_formatter->header_parser(in, tags)) {
GR_LOG_INFO(d_logger, boost::format("Detected an invalid packet at item %1%") % nitems_read(0));
message_port_pub(msg_port_id, pmt::PMT_F);
} else {
pmt::pmt_t dict(pmt::make_dict());
then recompile the gr-cdma,there always have the output of error message.
the file i altered is gr-cdma/lib/packet_headerparser_b2_impl.cc
i want to know what the prolem is,why i change the source code of gr-cdma,there still have the error message.
and why the grc is not stable, i think a grc should be boole,work well or not,why this grc just work well sometimes.
thank you
Dear all,
I am using the gr-cdma blocks. For running the gnuradio file of cdma_rx.grc, one need 2 usrp to make the cdma.fifo file, but I have only one (N210). I would be pleased if someone can send me an example of cdma.fifo file for my tests?
best regards,
Siavash Ahmadi
/usr/local/include/gnuradio/basic_block.h:94:17: error: ‘rpcbasic_sptr’ was not declared in this scope
std::vector<rpcbasic_sptr> d_rpc_vars; // container for all RPC variables
^~~~~~~~~~~~~
/usr/local/include/gnuradio/basic_block.h:94:17: note: suggested alternative: ‘top_block_sptr’
std::vector<rpcbasic_sptr> d_rpc_vars; // container for all RPC variables
^~~~~~~~~~~~~
top_block_sptr
/usr/local/include/gnuradio/basic_block.h:94:30: error: template argument 1 is invalid
std::vector<rpcbasic_sptr> d_rpc_vars; // container for all RPC variables
^
/usr/local/include/gnuradio/basic_block.h:94:30: error: template argument 2 is invalid
lib/CMakeFiles/gnuradio-cdma.dir/build.make:86: recipe for target 'lib/CMakeFiles/gnuradio-cdma.dir/packet_headerparser_b2_impl.cc.o' failed
make[2]: *** [lib/CMakeFiles/gnuradio-cdma.dir/packet_headerparser_b2_impl.cc.o] Error 1
CMakeFiles/Makefile2:174: recipe for target 'lib/CMakeFiles/gnuradio-cdma.dir/all' failed
make[1]: *** [lib/CMakeFiles/gnuradio-cdma.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Could you suggest us with some steps to run make so that we could proceed with the cdma implementation ? Thanks in advance.
I followed the complie instructions.
After I typed "make", I got the following errors:
[ 47%] Generating doxygen xml for cdma_swig_doc docs
/bin/sh: 1: cdma_swig_doc_swig_docs/Doxyfile: Permission denied
make[2]: *** [swig/cdma_swig_doc_swig_docs/xml/index.xml] Error 126
make[1]: *** [swig/CMakeFiles/cdma_swig_swig_doc.dir/all] Error 2
make: *** [all] Error 2
i want to build GPS signal receiver and transmitter using CDMA multiple access in gnuradio . so what do u suggest me
why this given code does not work with GNU radio version 3.8?
Hello Anastas,
I am using GNU Radio Companion 3.7.13 on Ubuntu 18.04.
I have build the GNU Project by source and installed all dependencies separately and have successfully built the anastas/gr-cdma project as well.
As mentioned on the Repo I reloaded all the blocks
"cdma_tx_hier.grc",
"chopper_correlator.grc",
"cdma_rx_hier.grc",
and Tried to load application cdma_txrx.grc. However it is giving the following errors:
CDMA PARAMETERS : for adaptive coded modulation
Traceback (most recent call last):
File "/home/rslab/gr-cdma/apps/cdma_txrx.py", line 33, in
from gnuradio.wxgui import forms
File "/usr/local/lib/python2.7/dist-packages/gnuradio/wxgui/forms/init.py", line 36, in
from forms import \
File "/usr/local/lib/python2.7/dist-packages/gnuradio/wxgui/forms/forms.py", line 64, in
class _form_base(pubsub, wx.BoxSizer):
TypeError: Error when calling the metaclass bases
multiple bases have instance lay-out conflict
Can you help on this matter.
Hi Anastas
I am very interested in your gr-cdma and would like to ask you the following questions:
1、I want to implement two TX and two RX. Can I change the training sequence to a second TX;
2、As far as I understand, CDMA is spreading the system to pulse_ data times, if the system symbol rate is 100k and the BW of CDMA is 800k, is that correct;
3、I saw that you have used a communication frequency of 2.2GHz. I have tried to change the communication frequency to 500kHz, but the data at the receiving end was not output after passing through Stream CRC32, which means that this part was not decoded correctly. Do you know why?
That's all my questions, thank you very much
Would it be possible to utilise this to capture and demodulate a wcdma signal? If yes are any changes required?
Hello Anastas,
I am replacing the vector source block by file source block to transmit files on other formats (audio, image, text). But the receiver does not get any type of file. can you help me please.
Hi Achilleas
I'm using your cdma project for quite some time now. Works great and lots of learning opportunities out of this project. Just a quick question:
at the output of cdma_tx_hier1, you're using a simple "add" operation instead of the "xor" required for scrambling. If I'm not wrong, you're using the long "training" sequence as a scrambling sequence, right?
Many thanks,
Zak
Hi, I really appreciate this repository as it gave an intuitive insight into the working mechanism of a cdma system. However, I would like to use the packet error calculator developed in your system for OFDM example in GNURADIO. I have currently tried using the packet error calculator block by attaching it with stream tagged to pdu block. However, I couldn't get a message printed on the terminal for packet error loss. therefore, May I know what i might be doing wrong and how you could guide me on making this block work. thanks
As I kown,the CDMA system use multi-carrier modulation but I didn't see multifrequency carrier?it that in usrp?
Hi Anastas
I'm wondering if it's possible to implement a scenario where a Rx receives CDMA packets from multiple Tx nodes. My questions are
1- How can the receiver distinguish between different users ? is it by using different sets of cp.pulse_training and cp.training?
2- How can I mix the sequences generated by each Tx in the channel ? can this be done by a simple addition?
I've attached a diagram explaining further what I plan to do.
Many thanks in advance,
Zak
Hello ,
Please advise if i can use gr-cdma to scan UMTS cells and then decode BCH and return cells information , if that available or not , if not please give me point of start to use your App for this targrt , just starting point and some guides from you will help
Hi Anastas et al
First, let me thank you for your huge efforts and contributions to this project..
I'm a PhD student studying amateur radios for space applications. I tried to run you CDMA example on Ubuntu 16.04 and I'm failing miserably. Your project worked flawlessly on Windows tho
I followed the detailed installation instructions but the main issue I'm getting is:
Param - Import(import):
Import "import cdma" failed.
and
import cdma.cdma_parameters as cp
if someone can help me with this, I'll be eternally grateful
ps. I followed the conversations from 3 years ago but none of the solutions actually worked
In the /apps/cdma_rx1_hier.grc, there is lack of a import .wo should import numpy to solve this problem.
I'm having trouble installing your OOP package. When I try to import cdma in Python I get the following error
>>> import cdma CDMA PARAMETERS : for adaptive coded modulation Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/dist-packages/cdma/__init__.py", line 34, in <module> import cdma_parameters File "/usr/local/lib/python2.7/dist-packages/cdma/cdma_parameters.py", line 110, in <module> local_header_obj = cdma.packet_header2(bits_per_header,length_tag_name,num_tag_name, header_mod.bits_per_symbol(),tcm_type_selector_default, "tcm_type") AttributeError: 'module' object has no attribute 'packet_header2'
I followed your guide for installing.
Part of the cdma_parameters.py that I changed
prefix="/home/ubuntu/Dropbox/Faks/ISRM/prvi_letnik/Ponavljanje/ARP2/Project/Code/gr-cdma/"
My directory:
drwxrwxr-x 2 ubuntu ubuntu 4096 may 21 16:06 build_cdma
drwxrwxr-x 12 ubuntu ubuntu 4096 may 21 16:19 gr-cdma
I'm running Ubuntu 16.04 and using the current version of the gr-cdma.
Hello anastas,
When running the "cdma_txrx", I keep getting the "INFO: Detected an invalid packet at item 0". What does this imply? Is it like you mentioned before that it does not find a valid packet header?
Thank you.
The prefix for the gr-cdma directory is a hard-coded, absolute path on line 90 of cdma_parameters.py:
prefix="/home/anastas/gr-cdma/" # put the prefix of your gr-cdma trunk
This results in a non-existent file when trellis.fsm() is called.
This should be added to the README or changed to use either a relative path or the prefix configured by PyBOMBs.
<<<<<<<<<<<<>>>>>>>>>>>
Everything built properly following the steps in the README, but when I try to run the cdma_txrx script, I get the following error:
CDMA PARAMETERS : for adaptive modulation
bits_per_header= 36
symbols_per_header= 36
bits_per_coded_symbol = [2, 3] for [uncoded QPSK, rate 2/3 cc &8PSK] respectively.
payload_bytes_per_frame= 50
symbols_per_frame= 260
trellis_coded_payload_symbols_per_frame= 216 for [uncoded QPSK, rate 2/3 cc &8PSK] respectively.
trellis_coded_payload_bytes_per_frame= [54, 81] for [uncoded QPSK, rate 2/3 cc &8PSK] respectively.
additional_symbols_per_frame= 8 for [uncoded QPSK, rate 2/3 cc &8PSK] respectively.
additional_bytes_per_frame= [1, 1] for [uncoded QPSK, rate 2/3 cc &8PSK] respectively.
you have wasted [0.01818181818181818, 0.012195121951219513] percent of bytes per payload for [uncoded QPSK, rate 2/3 cc &8PSK] with this symbols_per_frame setting.
training_length = 260
Normalized frequency interval = 0.000240384615385
Normalized frequency unsertainty range = [ -0.00240384615385 , 0.00240384615385 ]
Using Volk machine: avx_64_mmx_orc
Traceback (most recent call last):
File "/home/lts/gr-cdma/apps/cdma_txrx.py", line 583, in
tb = cdma_txrx()
File "/home/lts/gr-cdma/apps/cdma_txrx.py", line 230, in init
acq=onoff,
File "/home/lts/.grc_gnuradio/cdma_rx_hier.py", line 60, in init
pulse_data=cp.pulse_data,
File "/home/lts/.grc_gnuradio/chopper_correlator.py", line 50, in init
self.cdma_vector_insert2_0_0 = cdma.vector_insert2(((Q-1)_(0,) ), (N+pulse_L)_Q +1 , (N+pulse_L)*Q +1)
AttributeError: 'module' object has no attribute 'vector_insert2'
Done
I am running Ubuntu 14.04 x64 in a VM. GR is ver 3.7.7.1
I am trying to build the newest commit and make causes the following error:
Scanning dependencies of target gnuradio-cdma
[ 4%] Building CXX object lib/CMakeFiles/gnuradio-cdma.dir/packet_header2.cc.o
/opt/cdma/v070615/playback/source/gr-cdma-master/lib/packet_header2.cc: In member function ‘virtual bool gr::cdma::packet_header2::header_formatter(long int, unsigned char_, const std::vectorgr::tag_t&)’:
/opt/cdma/v070615/playback/source/gr-cdma-master/lib/packet_header2.cc:74:7: error: ‘d_crc_impl’ was not declared in this scope
d_crc_impl.reset();
^
/opt/cdma/v070615/playback/source/gr-cdma-master/lib/packet_header2.cc: In member function ‘virtual bool gr::cdma::packet_header2::header_parser(const unsigned char_, std::vectorgr::tag_t&)’:
/opt/cdma/v070615/playback/source/gr-cdma-master/lib/packet_header2.cc:140:7: error: ‘d_crc_impl’ was not declared in this scope
d_crc_impl.reset();
^
make[2]: *** [lib/CMakeFiles/gnuradio-cdma.dir/packet_header2.cc.o] Error 1
make[1]: *** [lib/CMakeFiles/gnuradio-cdma.dir/all] Error 2
make: *** [all] Error 2
import cdma
CDMA PARAMETERS : for adaptive coded modulation
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/dist-packages/cdma/init.py", line 34, in
import cdma_parameters
File "/usr/local/lib/python2.7/dist-packages/cdma/cdma_parameters.py", line 127, in
bits_per_coded_symbol=[int(math.log(trellis.fsm(fsm[i]).O(),2)) for i in range(len(payload_mod))]
File "/usr/lib/python2.7/dist-packages/gnuradio/trellis/trellis_swig.py", line 544, in init
this = _trellis_swig.new_fsm(*args)
RuntimeError: fsm::fsm(const char *name): file open error
So yes I saw you asking someone for the prefix location and I ended up fixing the issue by changing the prefix install and now all the blocks are ready to compile. This is going to be exciting.
Hi,
I had successfully installed gr-cdma module. Just had one question about instruction in the installation which says
-- For each of the blocks listed below, open them into gnuradio-companion and compile each one (using the button in GRC that looks like a sphere and a pyramid with an arrow between them) and then reload each time (using the button that looks like a circular arrow)
"cdma_tx_hier.grc",
"chopper_correlator.grc",
"cdma_rx_hier.grc",
-- Reload all blocks in grc
-- Load the application "cdma_txrx.grc" and have fun
How can i do that. Each files opened has missing modules. I am not very sure how do integrate this.
[ 29%] Built target gnuradio-cdma
[ 38%] Built target test-cdma
[ 45%] Built target _cdma_swig_doc_tag
[ 48%] Generating doxygen xml for cdma_swig_doc docs
/bin/sh: 1: cdma_swig_doc_swig_docs/Doxyfile: Permission denied
swig/CMakeFiles/cdma_swig_swig_doc.dir/build.make:64: recipe for target 'swig/cdma_swig_doc_swig_docs/xml/index.xml' failed
make[2]: *** [swig/cdma_swig_doc_swig_docs/xml/index.xml] Error 126
CMakeFiles/Makefile2:312: recipe for target 'swig/CMakeFiles/cdma_swig_swig_doc.dir/all' failed
make[1]: *** [swig/CMakeFiles/cdma_swig_swig_doc.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
I did it twice following README.md with the same result. What is wrong ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.