LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Implementation of shift register using array

Solved!
Go to solution

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 🙂

Download All
0 Kudos
Message 1 of 14
(14,049 Views)

 

Use "Interleave 1D Array.vi" from the Array Palette.

 

Unbenannt.png

 

 

Christian

0 Kudos
Message 2 of 14
(14,044 Views)

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.

 

0 Kudos
Message 3 of 14
(14,033 Views)

I think this is what you are trying to do.

 

0 Kudos
Message 4 of 14
(14,010 Views)

Thanks Wayne. But what I really want is implementation of shift register. I want to shift bits afte a bit goes to output.  

0 Kudos
Message 5 of 14
(13,978 Views)

@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:

 

  1. Typical inputs of the correct datatype (or a small piece of code that generates typical inputs).
  2. Typical outputs of the correct datatype.

A diagram comment containing a clear explanation how the output should evolve over time. How many outputs should there be for each iteration?

0 Kudos
Message 6 of 14
(13,968 Views)

Ok.Sorry if my question has not been clearer. I am attaching 2 files that should explain it clearer.

Demo.jpg

datatype rep.jpg

Download All
0 Kudos
Message 7 of 14
(13,940 Views)

scps wrote:

Demo.jpg

 


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?

 

0 Kudos
Message 8 of 14
(13,936 Views)
Solution
Accepted by scps

Try something like this:

 

 

Download All
Message 9 of 14
(13,934 Views)

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.

interleve-deinterleave.jpg

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.

0 Kudos
Message 10 of 14
(13,925 Views)