Device for generating a multi-kernel polar code x N of length N and dimension K on the basis of a first transformation matrix G N of size N × N defining a first multi-kernel polar code, the device comprising a processor configured to: generate the first transformation matrix G N on the basis of the following equation: G N = T N b ⊗ T N a = b 1,1 T N a ⋯ b 1 , N b T N a ⋮ ⋱ ⋮ b N b , 1 T N a ⋯ b N b , N b T N a , T N b = b 1,1 ⋯ b 1 , N b ⋮ ⋱ ⋮ b N b , 1 ⋯ b N b , N b wherein T N b = T p 1 ⊗ ... ⊗ T p λ is a first kernel matrix of dimension N b × N b , N b = p 1 · ...· p λ , and T Na = T p λ+1 ⊗ ... ⊗ T ps is a second kernel matrix of dimension N a × N a , N a = p λ+1 · ... · p s , and wherein T pj is a kernel matrix of dimension p j × p j , and wherein λ is an integer assuming a value in the interval [0, ..., s ], s being the total number of kernel matrices T pj forming the first kernel matrix T Nb and the second kernel matrix T Na ; and generate a second transformation matrix G' N of size N × N by permuting the order of at least two columns of a sub-matrix of the first transformation matrix G N , and the second transformation matrix G' N is on the basis of the following equation: G ′ N = b 1,1 T N a ⋯ b 1 , N b T N a ⋮ ⋱ ⋮ b j , 1 T ′ N a ⋯ b j , N b T ′ N a ⋮ ⋱ ⋮ b N b , 1 T N a ⋯ b N b , N b T N a , for any 1 ≤ j ≤ N b , wherein T ′ N a = T N a ⋅ Π N a T and Π N a T is a permutation matrix defined by a predetermined permutation π N a ; and generate the multi-kernel polar code x N on the basis of the following equation: x N = u N ⋅ G ′ N , wherein u N = ( u 0 , ..., u N -1 ) is a vector of size N , with the elements u i , i = 0, ... N - 1, corresponding to an information bit if i ∈ I, I being a set of K information bit indices, and u i = 0, if i ∈ F , F being a set of N - K frozen bit indices; and send the multi-kernel polar code x N via a communication channel. generate the first transformation matrix G N on the basis of the following equation: G N = T N b ⊗ T N a = b 1,1 T N a ⋯ b 1 , N b T N a ⋮ ⋱ ⋮ b N b , 1 T N a ⋯ b N b , N b T N a , T N b = b 1,1 ⋯ b 1 , N b ⋮ ⋱ ⋮ b N b , 1 ⋯ b N b , N b wherein T N b = T p 1 ⊗ ... ⊗ T p λ is a first kernel matrix of dimension N b × N b , N b = p 1 · ...· p λ , and T Na = T p λ+1 ⊗ ... ⊗ T ps is a second kernel matrix of dimension N a × N a , N a = p λ+1 · ... · p s , and wherein T pj is a kernel matrix of dimension p j × p j , and wherein λ is an integer assuming a value in the interval [0, ..., s ], s being the total number of kernel matrices T pj forming the first kernel matrix T Nb and the second kernel matrix T Na ; and generate a second transformation matrix G' N of size N × N by permuting the order of at least two columns of a sub-matrix of the first transformation matrix G N , and the second transformation matrix G' N is on the basis of the following equation: G ′ N = b 1,1 T N a ⋯ b 1 , N b T N a ⋮ ⋱ ⋮ b j , 1 T ′ N a ⋯ b j , N b T ′ N a ⋮ ⋱ ⋮ b N b , 1 T N a ⋯ b N b , N b T N a , for any 1 ≤ j ≤ N b , wherein T ′ N a = T N a ⋅ Π N a T and Π N a T is a permutation matrix defined by a predetermined permutation π N a ; and generate the multi-kernel polar code x N on the basis of the following equation: x N = u N ⋅ G ′ N , wherein u N = ( u 0 , ..., u N -1 ) is a vector of size N , with the elements u i , i = 0, ... N - 1, corresponding to an information bit if i ∈ I, I being a set of K information bit indices, and u i = 0, if i ∈ F , F being a set of N - K frozen bit indices; and send the multi-kernel polar code x N via a communication channel. <EOS>