Как реализовать этот алгоритм в Python без использования циклов? - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь реализовать кодер Хемминга для моего класса цифровых коммуникаций, и я не уверен, как это сделать без циклов. Я хочу сделать следующее:

  1. Взять каждую строку из d и умножить матрицу на G , чтобы получить соответствующий вектор строки.
  2. XOR каждого результирующего вектора строки, чтобы получить вектор кодового слова c.
  3. Вставьте c в битовый поток кодовых слов, I_kwcs.

Вот где я нахожусь:

def hamming_encoder(Ik):
    """
    Inputs:
    Ik: Message Bits assume array length is integer divisible by 4
    Outputs
    Ikcws : Message bits in code words, first dimension is 1
    """
    #n = 7, k = 4, m=n-k = 3
    G = np.array([[1,0, 0, 0, 1, 0, 1],[0, 1, 0, 0, 1, 1, 1], [0, 0, 1, 0, 1, 1, 0], [0, 0, 0, 1, 0, 1, 1]])
    # G = k x n matrix 
    elements_in_Ik = len(Ik)
    y = elements_in_Ik // 4 # y = number of data words 
    d = Ik.reshape(y, 4) #d = matrix of y, 4-bit words
...