ASCII TO HAMMING CODE 7.4
3 views (last 30 days)
Show older comments
Hi I want to make converter from ASCII to hamming code 7.4. This is my code but output from this code is incorrect because when I compare it with the results from the online converter, the results do not match. Can you please tell me what is wrong with this code?
% Define the generator matrix for Hamming code 7.4
G = [1 0 0 0 1 1 0;
0 1 0 0 1 0 1;
0 0 1 0 1 1 1;
0 0 0 1 0 1 1];
% Ask the user to input a text message
msg = input("Enter a text message: ", 's');
% Convert the message to ASCII codes
asciiMsg = uint8(msg);
% Convert the ASCII codes to binary and concatenate them into a single vector
binaryMsg = dec2bin(asciiMsg, 8) - '0';
binaryMsg = binaryMsg.';
% Pad the binary message with zeros if its length is not a multiple of 4
numPaddingZeros = mod(-length(binaryMsg), 4);
binaryMsg = [zeros(1, numPaddingZeros), binaryMsg(:).'].';
% Reshape the binary message into 4-bit blocks
binaryMsg = reshape(binaryMsg, 4, []).';
% Encode each 4-bit block using Hamming code 7.4
encodedMsg = mod(binaryMsg * G, 2);
% Convert the encoded message to a string of characters
encodedMsgStr = num2str(encodedMsg(:).');
encodedMsgStr = strrep(encodedMsgStr, ' ', '');
encodedMsgStr = regexprep(encodedMsgStr, '[^\d]', '');
% Print the encoded message
disp("Encoded message: " + encodedMsgStr);
0 Comments
Accepted Answer
Voss
on 22 Feb 2023
Moved: Voss
on 24 Feb 2023
I would check that you're putting the elements of encodedMsg in the right order here:
encodedMsgStr = num2str(encodedMsg(:).');
encodedMsgStr = strrep(encodedMsgStr, ' ', '');
encodedMsgStr = regexprep(encodedMsgStr, '[^\d]', '');
Maybe it should be something like:
encodedMsgStr = reshape(char(encodedMsg.'+'0'),1,[]);
2 Comments
More Answers (0)
See Also
Categories
Find more on Hamming 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!