I'm doing the baby steps right now to learn about GNU Radio Companion. I'm using 3.7.13.5 at the moment.
I'm just focusing on getting a simple binary stream together, such as '110100' (repeated) .... so it just goes '110100110100110100.......' and then to see whether I can generate a simple QAM constellation map.
I don't yet understand exactly what to do in order to get that QAM constellation map. But I've taken steps to string some blocks together - just to try something at least.
What I did was use a Vector Source block, that is set up at values '110100' (and this block is set to 'repeat' the pattern continually).
I then have a Chunks To Symbol block, where I arbitrarily have these following values for the Symbol Table [(-0.707 -0.707j), (0.707 -0.707j), (0.707 + 0.707j), (-0.707 + 0.707j)].
And then I have the QT GUI Constellation Sink block for viewing the constellation.
I know what I would like to do ----- but don't know what to do properly yet. But at least there are four points on the constellation diagram (as seen in the attached image).
May I ask what I need to do in order to get the Chunks To Symbols block to take in two bits at a time, in order to map each pair of bits to one of those four constellation points?
At the moment, I only have three unique combinations of bits .... which is 11 and 01 and 00 .... which can be seen in the pattern '110100'. So I'm just trying to get those three patterns to show up on the constellation diagram --- which should be three points on the constellation diagram (while the fourth point isn't encountered yet).
Could somebody help me by pointing out how the Chunks To Symbols block actually works? At the moment, if I purposely want to map the bit pair '11' to a particular constellation point - such as 0.707 + j*0.707, then is there a way to create that definition within the Chunks to Symbols block settings?
Right now, I don't actually know how the Chunks To Symbols block interprets the input data, and how it assigns various 'chunks' (which I assume are bit patterns) to each constellation point in the symbol map. That is, does this block look for various unique input patterns, and somehow links each unique input pattern to one of those values in the Symbol Map?
Thanks very much in advance! I'm very impressed with GNU Radio Companion and GNU Radio!
==============================
Update - I found one other path for getting a constellation diagram. But haven't figured out how to use that properly yet as well. The other path is using a Constellation Object, where an online tutorial had this Symbol Map for the constellation : [0, 1, 3, 2] and the corresponding constellation points defined within the Constellation Object block are : [-1-1j, -1+1j, 1+1j, 1-1j]
But - as we can see, when I put a single value of '3' for the repeating Vector Source, I get multiple points in the constellation diagram spread out across a line, instead of a concentration of points around the point 1+1j. Any nice recommendations on what I need to do to get on the right track? Thanks!
====================================
Another UPDATE after receiving help from Marcus, and his kind explanation. My understanding of how the Chunks To Symbols block works is like this. If for example the symbol table has complex numbers in this order [-1-1j, -1+1j, 1+1j, 1-1j], then the Vector Source values '0', '1', '2', and '3' (ie. four values) will correspond to '-1-1j', '-1+1j', '1+1j', and '1-1j' (in that same order). For example, a vector value of '3' will be linked to '1-1j', while '0' will be linked to '-1-1j'.
And if we want those values '0', '1', '2'and '3' to be associated with different complex numbers, then we would simply need to change the order of the complex numbers in the Symbol Table section of the Chunks to Symbols block (inside the settings).
After help from Marcus, and also upgrading to GNU Radio Companion 3.8 ---- I now have the constellation diagram working properly with the Chunks To Symbols block. Here, I created a vector with four lots of '3', followed by four lots of '1'. So the constellation diagram plots 1-1j four times, and then it plots -1-1j four times. We only see two dots because 1-1j and -1-1j are both plotted four times each.
Also, changing the topic to the other method - involving the 'Constellation Object' block for generating constellation diagrams ---- I now know why I get a spread of points across a line. I notice that if I have a Vector Source that repeatedly outputs the value '3', which means outputting a 3, then another 3, then another 3 etc ....... then the associated complex value (that was assigned to '3' in the Constellation's Symbol Map) --- such as 1+1j (which is expected), but the next plotted point will not be 1+1j (associated with the next '3'). Instead, the Constellation plotter appears to jump back to the same initial starting point. So rather than plotting multiple points of 1+1j, the constellation plotter keeps jumping back to an initial starting point (consistently the same starting point - in this case -1-1j - which is the first value in the Constellation's Symbol Map) before plotting the next 'expected' complex value. I don't know why it does that yet. This is where I need more help too! Thanks again!