% matrice di controllo di parità (in forma sistematica) di un codice di Hamming
function HT = hamming_parity_check_matrix(NmK)

	% parametri del codice di Hamming
	N = 2^NmK-1;
	K = N - NmK;
	
	% la matrice P della forma sistematica contiene tutte le righe con pesa
	% almeno due
	temp = dec2bin(1:N)-'0';
	P = zeros(K,NmK);
	k = 1;
	for n = 1:N
		if sum(temp(n,:)) >= 2
			P(k,:) = temp(n,:);
			k = k + 1;
		end
	end
	
	% matrice H (trasposta) in forma sistematica
	HT = [P;eye(NmK)];
end
