# generate odd and even numbers from randn function in simulink

31 views (last 30 days)
Redhwan Mawari on 21 Aug 2019
Commented: John D'Errico on 23 Aug 2019
i need to generate odd and even numbers from a random binary array in simulink. Can someone help me with that. For example if i have a random arrary of binary numbers i.e. 0 1 1 1 0 0 1 and would like to split this array to even and odd index. So for even it would be: 1 1 0 and for odd: 0 1 0 1. I did it in matlab but could not do it in simulink. the matlab code is
data=randn(1,N)>=0; %Generating a uniformly distributed random 1s and 0s
oddData = data(1:2:end);
evenData = data(2:2:end);

Walter Roberson on 21 Aug 2019
It is not obvious why you are using randn()>=0 instead of rand() >= 0.5 ?
Redhwan Mawari on 21 Aug 2019
that will work as well. The issues is generating odd and even from the binary numbers.

Walter Roberson on 21 Aug 2019
https://www.mathworks.com/help/dsp/ref/variableselector.html -- use twice, once to select row 1 (odd indices), once to select row 2 (even indices)
The above two require DSP.
If you have a fixed signal length then you could use https://www.mathworks.com/help/simulink/slref/selector.html listing all of the desired indices directly (I am not sure if you can use colon notation there.)

Show 1 older comment
Walter Roberson on 21 Aug 2019
Which approach did you use?
Is your input a vector, and each time you want to take odd/even elements of the vector?
Or is your input a scalar signal, and you want to direct alternate bits different ways? Is it perhaps a Serial to Parallel convertor?
Walter Roberson on 21 Aug 2019
After which you can use variableselector or https://www.mathworks.com/help/simulink/slref/selector.html to select the two different elements.
John D'Errico on 23 Aug 2019
Moved from an answer to a comment:
"I’m trying to replicate the code below using simulink"
data=randn(1,N)>=0.5;
%Generating a uniformly distributed random 1s and 0s
odddata = data(1:2:end);
evenData = data(2:2:end);