discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Simulation to compute BER of a Modulator/Demodula


From: Cinaed Simson
Subject: Re: [Discuss-gnuradio] Simulation to compute BER of a Modulator/Demodulator Encoding/Decoding system
Date: Tue, 16 Oct 2018 12:44:14 -0700
User-agent: Mozilla/5.0 (X11; Linux i686; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

Hi Christian - start simple.

First prove to yourself you can modulate/demodulate a random source.

Enclosed is an example.

You can replace the GLFSR source and Float To Char blocks with a Random
Source block - but it doesn't really matter.

Adjust the Delay block until the 2 curves in the Qt GUI Time Sink block
line up,

This will depend upon the speed of your machine.

Then enable the 2 CRC32 blocks.

You may have to adjust the delay again.

Then enable the blocks to calculate BER.

-- Cinaed


On 10/14/2018 07:05 PM, Christian BusquielSanz wrote:
> Good day
> How are you?
> I am a new user to GNU Radio Companion
> I am using version 3.7.11
> I have read, followed and finished the exercises/examples in the
> tutorials of Working with "GNU Radio Companion"
> (https://wiki.gnuradio.org/index.php/Guided_Tutorial_GRC) and
> "Programming GNU Radio in Python"
> (https://wiki.gnuradio.org/index.php/Guided_Tutorial_GNU_Radio_in_Python)
> -------------------------
> I have been working on designing a whole system to compute the BER of
> different encoders using GMSK:
> 1.- Reed Solomon
> 2.- Convolutional Coding
> 3.- CRC
> 
> I have also installed GR Satellites by Daniel Estévez
> (https://github.com/daniestevez/gr-satellites) to help me with this
> task
> 
> I started building the whole system using GNU Radio Companion to build
> the blocks, but I had many problems with the input and output of
> blocks, since there were no transformations to adapt all the blocks
> among them, and I tried several of the blocks provided with each
> Encoder/Decoder to make it fit
> -------------------------
> Once I had an idea of how it should work, I tried to start with a
> simple system only with one of the 'encoders' which was CRC (Stream
> CRC32)
> 
> The Block Diagram would look like this (See attached "CRC_Test.grc" file):
> (Random Source) => (Throttle) => (Stream to Tagged Stream) => (Stream
> CRC32[Generate CRC]) =>A) B) C)
> A) => (Char to Float) => (QT GUI Timer Sink)
> B) => (GMSK Mod [S/S=10]) => (GMSK Demod [S/S=10]) => (Pack K Bits
> [K=8]) => C) D)
> C) 2x=> (BER) => (QT GUI Timer Sink)
> D) => (Char to Float) => (QT GUI Timer Sink)
> 
> And also adding noise:
> The Block Diagram would look like this (See attached
> "CRC_Test_with_noise.grc" file):
> (Random Source) => (Throttle) => (Stream to Tagged Stream) => (Stream
> CRC32[Generate CRC]) =>A) B) C)
> (Noise Source [Gaussian]) => D)
> A) => (Char to Float) => (QT GUI Timer Sink)
> B) => (GMSK Mod [S/S=10]) => D)
> C) 2x=> (BER) => (QT GUI Timer Sink)
> D) 2x=> (Add) => (GMSK Demod [S/S=10]) => (Pack K Bits [K=8]) => C) E)
> E) => (Char to Float) => (QT GUI Timer Sink)
> 
> If I add another "Stream CRC32" block with [Check CRC]; I have three 
> situations:
> a) I add a "Stream to Tagged Stream" block before the (Stream CRC
> [Check CRC]) with the same 'Length Tag Name' as the one after the
> Throttle
> b) I add a "Stream to Tagged Stream" block before the (Stream CRC
> [Check CRC]) with a different 'Length Tag Name' as the one after the
> Throttle and change the "Length Tag Key" of the "Stream CRC32" block
> c) I do not add a "Stream to Tagged Stream" block before the (Stream
> CRC [Check CRC])
> I get these outputs:
> a) It provides no output, and an error is shown up:
> gr::log :FATAL: crc32_bb0 - Missing a required length tag on port 0 at item 
> #14
> thread[thread-per-block[16]: <block crc32_bb (14)>]: Missing length tag.
> b) No output
> c) It provides an output, but there is no block that removes the CRC
> bytes, so from my point of view, the BER rate should be higher even if
> I am using the block "Pack K Bits" with K=8, to recover the bytes
> after the modulation (Since "GMSK Demod" returns one bit of each byte
> in separate bytes and I need to reconstruct the signal)
> 
> I cannot find where I am making the mistake and I would like to ask if
> someone could point out where I am wrong so I can fix it. Thank you.
> -------------------------
> I tried to do also a simple test of Reed-Solomon encoding
> But I could not match any Reed-Solomon pair of coder & decoder that
> were paired together. Only the DVB-T one has, in the same section of
> the Companion, both the Encoder and the Decoder
> (If you use the magnifying glass search in the Companion, you find
> these Reed Solomon results)
> If you search for "Reed":
> 1.- ATSC only has a decoder, but I do not want to use a specific
> implementation; I want to use a general implementation for satellite
> applications
> 2.- ITU-T has only an encoder
> 3.- Satellites (By Dani Estévez) has both an encoder and a decoder;
> but its input/output is async messages, and I want to test BER, so I
> need a random source of bits. I do not know how to convert those bits
> into messages to use these blocks.
> If you search for "RS":
> 1.- ATSC shows both an Encoder as "ATSC RS Encoder" and an Decoder as
> "ATSC Reed-Solomon Decoder" (Why do they have different titles?)
> 2.- Satellites (By Dani Estévez) has 15 entries, but all of them use
> messages as input/output and I have the same problem with the Random
> Source
> 
> So, I have not been able to build a proper block diagram and test it
> to get any results
> 
> I believe that the best approach would be using the FEC Enconder and
> Decoder from Satellites (By Dani Estévez); but I do not know how to
> use the Async Message type with the Byte output from Random Source,
> although I have sought for examples on type conversion, but I could
> not find any
> 
> Could you point me in the right direction on how to assemble this graph, 
> please?
> -------------------------
> Since the only implementations of Convolutional coding blocks are from
> DVB-T and I would like to use a generic application, I have not tried
> those yet
> -------------------------
> Thank you very much on all the Time you have spent in reading this
> message and I wish you to have a nice day
> --
> Christian Sêngir     Busquiel Sanz
> 
> 
> 
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 

Attachment: crc-gmfsk-test.grc
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]