11-11-2011 08:36 AM
Hi all,
I am a novice in Labview and I am trying to implement convolutional interleaver.
I am having problem with implementing shift register using arrays.
I am using 4 channel interleaver here. First bit should go directly to the output. 2nd bit should go into a shift register which is initialised to 0. 0 should go to output and the input should replace the shift register value.
Similarly, in the 3rd channel, 2 element shift register is present initialised with 0's. Here also, 0 should go to output, first element(0) should shift, input should come into the shift register. And in the 4th channel, 3 element shift register will be there.
I have been trying to implement this using arrays but I am not being able to crack it. Using For loop with auto indexing disabled is the key to this?
Your help in solving this will be much appreciated.
Thank you 🙂
Solved! Go to Solution.
11-11-2011 08:45 AM
Use "Interleave 1D Array.vi" from the Array Palette.
Christian
11-11-2011 09:24 AM
Thanks Christian.
But I want the shift operation to be performed for my project.
And since I am taking each bit separately, interleaving will give error due to mismatch in datatype right?
If 1101 is the input, 1000100001 will be the output. Six 0's will be appended to the input.
11-11-2011 11:13 AM - edited 11-11-2011 11:14 AM
I think this is what you are trying to do.
11-12-2011 10:31 AM
Thanks Wayne. But what I really want is implementation of shift register. I want to shift bits afte a bit goes to output.
11-12-2011 11:46 AM - edited 11-12-2011 11:49 AM
@scps wrote:
Thanks Wayne. But what I really want is implementation of shift register. I want to shift bits afte a bit goes to output.
Please explain. A shift register does not "shift bits", despite the similar sounding name. It actually does not shift anything!
Here is an idea: Please attach an otherwise blank VI that contains a few diagram constants:
A diagram comment containing a clear explanation how the output should evolve over time. How many outputs should there be for each iteration?
11-12-2011 09:00 PM
Ok.Sorry if my question has not been clearer. I am attaching 2 files that should explain it clearer.
11-12-2011 09:21 PM
scps wrote:
No, this does not explain anything. This image makes very little sense.
So the input is 4 numbers in this case (1011).
In the first iteration you want to output four numbers (1000)
In the second iteration, you want to output 3 numbers (000)
In the third iteration, the output is 2 numbers (10)
And in the fourth iteration, the output is a single number (1).
What is the significance of the four vertical positions?
11-12-2011 09:47 PM - edited 11-12-2011 09:48 PM
11-12-2011 10:38 PM
This is exactly what I wanted to implement. Thanks a lot altenbac.
The significance of the triangular output I have shown in that it is the output of interleaver. And when deinterleaved, you get inverted triangle, forming the square. The final output will have 4 input data appended with 12 0's.
What would you suggest me to study to get thorough in Labview. I am lagging behind a lot 😞 I badly need to stengthen my basics.