0
votes

I’m doing a project where a device is built to measure the girth of a rubber tree in a rubber plantation. I need to give an identity to each tree to store the measurements of each tree. The ID of each tree contains 33bits (in binary). For error detection and correction I’m hoping to encode this 33bit word in to a code word (Using a error control coding technique) and generate a 2D matrix (Color matrix-With red and cyan squares representing 1’s and 0’s). The 2D matrix will represent the coded word. This matrix will be pasted on the trunk of the tree. And a camera (the device) will be used to take the image of the 2D matrix and the code will be decoded then the ID of the tree will be taken.

I’m looking for the best scheme to implement this. I thought of cyclic codes for coding, but since the data word is 33 bits cyclic codes seems to be bit complicated.

Can someone please suggest the best way (at least a good way) to implement this???

Additional info: The image is taken in a forest environment (low light condition), Color matrix is to be used considering the environment.(The bark of the tree is dark so black and white matrix would be not appropriate)

1
And the reason for not using Aztec, or any of the other 30 plus matrix codes, is what?starbolin
The data is not a stream so any of block codes, cyclic codes, lattice codes and etc won't help. Pixel averaging, noise reduction, image stabilization and other methods to utilize multiple image frames will give you more benefit for your mips.starbolin
Black has low energy-per-bit so a binary or triary color scheme would get you better signal to noise but it means having to process multiple channels and thus increases inter-symbol interference.starbolin
For you coding just think of a hash; each valid code hashes to a unique value and each invalid code to a unique value. You job is to maximize the number of hash bits separating each valid hash code.starbolin
Parity bits without block bits do nothing to help you correct codes. Minimise your inter-symbol interference.starbolin

1 Answers

1
votes

One way to do it is to use 2D-parity check codes. The resulted codeword is a matrix, and it has single error correction (SEC) capability.

Since your information part (tree ID) has 33 bits, you may need to add a few dummy bits to make the codeword a 2D rectangle (say, a 6x6 information part). If a tree's ID is 1010_1010_1010_1010_1010_1010_1010_1010_1, then by adding 3 more 0 we have it as:

1 0 1 0 1 0 | 1
1 0 1 0 1 0 | 1
1 0 1 0 1 0 | 1
1 0 1 0 1 0 | 1
1 0 1 0 1 0 | 1
1 0 1 0 0 0 | 0
—————————————
0 0 0 0 1 0   1

Then you get a (n, k, d) = (49, 36, 3) code, which correct 1 bit errors.