Hi Ihab,
that's great!!
So, I see that others already pointed out the very handy htop / top utilities, which can give you a rough idea of where the CPU is spent within the blink of an eye, as well as the far more involved, but also far more detailed controlport approach that can also tell you exactly where your sample flow is uneven or even stalling.
On an algorithmic level, have a look at "perf", which is an awesome tool that actually measures how much time is spent in individual C/C++ functions. It takes a bit of experience (read: trial and error) till you get the "perf report" to show exactly what you want to know, but often, this information really points out which function needs to be optimized. I can't find a post right now, but please go to the USRP-users and discuss-gnuradio mailing list archives and search for "perf report"; I'm pretty optimistic I wrote a usable guide for these once.
Now, regarding "BER Bottlenecks": Where the computational bottlenecks were to be solved using software engineering, this is very much in the domain of communication engineering (and the fact that these two disciplines are so closely linked is one of the most exciting aspects of SDR, in my opinion :) ).
That means you'll have to come up with a lot of hypotheses on where your transmission system can be optimized. You'd first of all, as you did, derive a boundary of what is possible (i.e. Shannon capacity), including all analog aspects that you can't change (transceiver noise figures/equiv. noise temperature); you'd do a bit of measuring to see whether maximum TX power is actually the optimum for RX SNR, or whether operating your TX amplifier at maximum power might lead to nonlinearities leading to self-interference. You'd analyze your typical channel – how flat is it, how deep does fading get? What is its coherency time, doppler spectrum? Does your equalizer reflect those facts? Can you reduce the amount of spectrum*time you dedicate to estimating the channel in favor of transmitting more bits, or do you need to spend more time on getting CSI in order to improve SNR post-equalizer?
Then: do your packet lengths reflect your application's transmission needs well? Do they work good with your channel code? Is this a one-way system, or do you have the chance to ARQ? What's the ARQ/FEC-redundancy tradeoff? Contention Windows?
So, that really gets very dependent on what you actually want to do with the link; notice that different wireless standards developed at the same time use vastly different technology based on the specifics of the channel and wireless system they're used for (e.g. DVB-S was developed around 2000–2005 and used 8PSK-32APSK with pretty long LDPCs, which reflects the properties of the satellite-ground channel and the high-latency-tolerant, large-block-size-tolerant receivers respectively, whereas 3G/UMTS-CDMA typically use things like much shorter turbo codes with rate=1/3, reflecting a completely different channel, and a lower tolerance for latency).
Hope that points you in the right direction,
Best regards,
Marcus
Hi Marcus,
I have been through the GNU RADIO tutorials , I also dived into adapting gr-dvbt, and it worked for me. But how can i find out where my transceiver BER bottlenecks and where my computational bottlenecks come from? Is the a method or steps i can follow? I need some hints on this.
Best RegardsIhab
On 24 August 2016 at 15:12, Ihab Zine <ihab.zine13@gmail.com> wrote:
Hi Ron and Marcus,
For frequency higher than 6 Ghz, a down converter can be used to over come this problem.
for the data rate and bandwidth, the PC i'm using has the following specifications:
Architecture: x86_64CPU op-mode(s): 32-bit, 64-bitByte Order: Little EndianCPU(s): 20On-line CPU(s) list: 0-19Thread(s) per core: 2Core(s) per socket: 10Socket(s): 1NUMA node(s): 1Vendor ID: GenuineIntelCPU family: 6Model: 63Model name: Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHzStepping: 2CPU MHz: 1553.804CPU max MHz: 3300.0000CPU min MHz: 1200.0000BogoMIPS: 5197.32Virtualization: VT-xL1d cache: 32KL1i cache: 32KL2 cache: 256KL3 cache: 25600KNUMA node0 CPU(s): 0-19
I think it can handle this rate. Please correct me if i'm Wrong.
i have other questions:
- There are (synchronizers, equalizers, channel codes etc) blocks in the gr-dvbt project why I cant use them?
- when you mentioned channel coding do you mean that i need to create a new one? and Why would I need it?
- If i need BCH performance Why is difficult to achieve?
- if the data requirement is fine (CPU and etc), what is the best way to start building the receiver? How can I figure out the blocks That i need for this receiver?
RegardsIhab
On 23 August 2016 at 14:34, Ihab Zine <ihab.zine13@gmail.com> wrote:
Hi Ron,
1) Frequency range: 1.5 - 38 GHz
2) Bandwidth range : 2 - 56 MHz
3) Modulation : Qpsk - 256 QAM
4) Data rate range : 150Mbit/s - 326Mbit/s.
5) Error correction method : i thinks it is FEC.
Ihab
On 22 August 2016 at 12:33, Ihab Zine <ihab.zine13@gmail.com> wrote:
Hi All,
I'm working on a project using GnuRadio And USRP 205 mini, i'm at the stage where i need to demodulate a microwave link signal.
Anyone has an experience with Microwave link or tried to do something similar? Is it possiable to do it in gnuradio? or is there another approaches to do it?
I'd appreciate any information you could give me.
ThanksIhab
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
No comments:
Post a Comment