Related to creating the vectors in MATLAB
    2 views (last 30 days)
  
       Show older comments
    
Hello all, I am working on research work related to GSSK (generalized space shift keying) in wireless communication.
In the GSSK scheme, out of total number of antennas at transmitter (Nt), only nt transmit antennas remain active during a single transmission.
My aim is to design a vector for transmitted signals (N).
The relationship between N, Nt and nt is given as: 
Suppose the Nt = 8 and nt =3 then number of transmitted signals i.e., N is 32. 
I am able to make only 28 unique vectors but not 32. The 28 unique vectors are shown below:
x_1 = al*[1 1 0 0 0 0 0 0 ]'; x_2 = al*[1 0 1 0 0 0 0 0 ]'; x_3 = al*[1 0 0 1 0 0 0 0 ]'; x_4 = al*[1 0 0 0 1 0 0 0 ]';
x_5 = al*[1 0 0 0 0 1 0 0 ]'; x_6 = al*[1 0 0 0 0 0 1 0 ]'; x_7 = al*[1 0 0 0 0 0 0 1 ]'; 
x_8 = al*[0 1 1 0 0 0 0 0 ]'; x_9 = al*[0 1 0 1 0 0 0 0 ]'; x_10 = al*[0 1 0 0 1 0 0 0 ]'; x_11 = al*[0 1 0 0 0 1 0 0 ]'; x_12 = al*[0 1 0 0 0 0 1 0 ]';
x_13 = al*[0 1 0 0 0 0 0 1]'; 
x_14 = al*[0 0 1 1 0 0 0 0]'; x_15 = al*[0 0 1 0 1 0 0 0]'; x_16 = al*[0 0 1 0 0 1 0 0]'; x_17 = al*[0 0 1 0 0 0 1 0]'; x_18 = al*[0 0 1 0 0 0 0 1]';
x_19 = al*[0 0 0 1 1 0 0 0]';  x_20 = al*[0 0 0 1 0 1 0 0]';  x_21 = al*[0 0 0 1 0 0 1 0]'; x_22 = al*[0 0 0 1 0 0 0 1]'; 
x_23 = al*[0 0 0 0 1 1 0 0]'; x_24 = al*[0 0 0 0 1 0 1 0]'; x_25 = al*[0 0 0 0 1 0 0 1]';
x_26 = al*[0 0 0 0 0 1 1 0]'; x_27 = al*[0 0 0 0 0 1 0 1]';
x_28 = al*[0 0 0 0 0 0 1 1]';
where 1 indicates the corresponding antenna being activated out of total Nt antennas.
My query is that if N = 32 for this example, then how can we achieve 32 unique vectors.
Any help in this regard will be highly appreciated. 
2 Comments
  Dyuman Joshi
      
      
 on 9 Nov 2023
				
      Edited: Dyuman Joshi
      
      
 on 9 Nov 2023
  
			You can not.
There are only 28 unique possible combinations when numbers from [1 8] are taken two at a time, without repetitions -
Though I do not know why you have taken combinations with two at a time.
n=8;
y = nchoosek(1:n,2);
size(y)
disp(y)
Accepted Answer
  Walter Roberson
      
      
 on 9 Nov 2023
        
      Moved: Walter Roberson
      
      
 on 9 Nov 2023
  
      (8)
(3)
is 8!/(3! 5!) = 56. log2 of that is between 5 and 6. floor of that is 5. So your formula calculates N = 5, not N = 32
Taking 8 objects 3 at a time without respecting order can be represented as an ordered list of bits of length 8 in which exactly 3 bits are set. But your code uses bit lists in which only 2 bits are set instead of 3.
More Answers (0)
See Also
Categories
				Find more on Analysis in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!