Device (102b, 104b) 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 (102b, 104b) comprising a processor (102c, 104c) 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.