Exam: Detecting Errors in Bit Strings

In summary, two bit strings have definite errors: 11011 and 10001. This is determined by checking the parity of each string, which should be odd for odd parity transmission. If the parity is even, it means that an error has occurred in that string.
  • #1
sammie194
6
0
1. The question
The following message was originally transmitted with odd parity in each short bit string.
In which strings have errors definitely occurred?

11001 11011 10110 00000 11111 10001
10101 00100 01110

2. The attempt at a solution

It says that it is transmitted with odd parity originally, so do I only have to look if the bit string has an odd or even number of ones? Or do I have to add an parity number, and how would I do that?

Let's say I only have to look at odd/even, answer would be:
11011, and 10001 as these have even 1 numbers. What about the 00000? It doesn't have any ones so not odd, and not even, that's not an error right?

I've seen in the explanation that an parity number is added, but for some reason they add sometimes 0, and sometimes 1. They add 0 when the 1's are already odd, and a 1 as parity number if it's even, to make it odd. I'm kinda confused by this, as this will make every string odd, so there wouldn't be any errors?


I might be thinking weird, but I can't seem to understand how this works.
Can anyone please explain this to me?

Many thanks!
CSM
 
Physics news on Phys.org
  • #2
sammie194 said:
I've seen in the explanation that an parity number is added, but for some reason they add sometimes 0, and sometimes 1. They add 0 when the 1's are already odd, and a 1 as parity number if it's even, to make it odd. I'm kinda confused by this, as this will make every string odd, so there wouldn't be any errors?

What you're missing here is that if you are using a parity bit, this extra bit is added BEFORE transmission, not afterwards.

Afterwards, during the error checking, what this ensures is that if no single bit errors have occurred, the message (including parity bit) will have the specified parity. If it doesn't, you conclude that a bit error has occurred.

Example, suppose you are using odd parity. Your message *including* the extra parity bit must therefore always have an odd number of ones. So, if you want to transmit a 4 bit message 1001, you'd add a fifth parity bit. In this case, it would be a 1, in order to make the parity odd. 10011. If you receive 11011, you have even parity, which tells you that a bit error has occurred. (But it doesn't tell you WHICH bit is wrong, since that would require foreknowledge of the message, in which case why would it need to be sent?).

A single parity bit can only detect an ODD number of bit errors. If an even number of bit errors occurs, your error check will come out with the correct parity, even though the message is wrong. E.g. if 10011 becomes 01011 upon receipt (TWO bits have been flipped), your error check will tell you that you have odd parity and that the message is correct, even though it is not.
 
  • #3
So the parity bits are already added, this would mean that bit string: 11011, and 10001 still have an even amount of ones. This would mean that 11011 and 10001 would be the errors. However this is a single bit parity, so there needs to be an odd number of bit errors for it to be an definite error. I have 2 errors, which is even. So what would the answer be?

11011, and 10001? But that's not definite, right?

I think 10001 is a error, and 11011 isn't, as it should've gotten a 0 as parity bit, so it would be odd.
So 11011 must've been 0011 originally, they then added a 1 parity bit, but it became 11011, so two bits flipped.

Is this right? 10001 is the answer
 
  • #4
sammie194 said:
So the parity bits are already added, this would mean that bit string: 11011, and 10001 still have an even amount of ones. This would mean that 11011 and 10001 would be the errors.

Yes, they have an even number of ones, and your problem specifies that each string was transmitted with odd parity.

sammie194 said:
However this is a single bit parity, so there needs to be an odd number of bit errors for it to be an definite error. I have 2 errors, which is even. So what would the answer be?

HUH? This bit in bold makes no sense. I meant that you can only detect an odd number of errors in EACH bit string. If an even number of errors occurs within a given string, you will never know, because that string will come out with the correct parity.

In this case, both of those strings had the wrong parity, which means you know FOR SURE that an odd number of bit errors occurred to each of those strings. They are both corrupted.

sammie194 said:
I think 10001 is a error, and 11011 isn't, as it should've gotten a 0 as parity bit, so it would be odd.
So 11011 must've been 0011 originally, they then added a 1 parity bit, but it became 11011, so two bits flipped.

Again, none of what you've said here makes any sense. How do you know that the parity bit isn't one of the ones that got corrupted? You can't reconstruct what each original 5-bit string was. All you can do is check its parity, and if its parity turns out to be wrong, then you know that that string is wrong. Both 10001 and 11011 are wrong.
 
  • #5
Oh I read that part completely wrong =( So odd number of errors in each bit string, not in total -.-

In which strings have errors definitely occurred? (part of question)
How do you know if it might have an error or definately has an error?

I would say 11011 and 10001 are definite errors, as the number of ones are even.
 
  • #6
sammie194 said:
Oh I read that part completely wrong =( So odd number of errors in each bit string, not in total -.-

In which strings have errors definitely occurred? (part of question)
How do you know if it might have an error or definately has an error?

I would say 11011 and 10001 are definite errors, as the number of ones are even.

That's the entire point of what I've been trying to explain. If the string has the wrong parity, then it must have an error. Wouldn't you agree?

However, just because the string has the correct parity doesn't mean errors haven't occured. It just means that the number of errors in the string is even, which is not detectable by this scheme.
 
  • Like
Likes 1 person
  • #7
Oh many thanks! I finally understand it!
Can you change the thread title to [closed], or is it not needed, and how can I do that?
 

1. What is the purpose of detecting errors in bit strings?

The purpose of detecting errors in bit strings is to ensure the accuracy and reliability of data transmission. By detecting errors, we can identify and correct any mistakes that may occur during the transmission process, ensuring that the received data is the same as the transmitted data.

2. How are errors detected in bit strings?

Errors in bit strings can be detected using various methods, such as parity checking, cyclic redundancy check (CRC), and checksums. These methods involve adding extra bits to the bit string, which are then used to check for errors during transmission.

3. What is parity checking?

Parity checking is a method of error detection in which an extra bit, known as a parity bit, is added to a group of bits. The parity bit is set to either 0 or 1, depending on the number of ones in the group of bits. If the number of ones is even, the parity bit is set to 0, and if the number of ones is odd, the parity bit is set to 1. This allows for the detection of single-bit errors.

4. What is a cyclic redundancy check (CRC)?

A cyclic redundancy check (CRC) is a more sophisticated method of error detection, which involves using a mathematical algorithm to generate a checksum value for the data being transmitted. This checksum value is then compared to the checksum value received at the other end. If the values match, it is assumed that the data was transmitted correctly. If the values do not match, it indicates that an error has occurred during transmission.

5. How do checksums help in detecting errors in bit strings?

Checksums are used to detect errors in bit strings by generating a unique value for the data being transmitted. This value is then compared to the value received at the other end. If the values match, it indicates that the data was transmitted correctly. If the values do not match, it indicates that an error has occurred during transmission.

Similar threads

  • Engineering and Comp Sci Homework Help
Replies
4
Views
809
  • Engineering and Comp Sci Homework Help
Replies
1
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
2
Views
2K
  • High Energy, Nuclear, Particle Physics
Replies
7
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
2
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
17
Views
5K
  • Engineering and Comp Sci Homework Help
Replies
24
Views
6K
  • Engineering and Comp Sci Homework Help
Replies
3
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
2
Views
8K
  • Engineering and Comp Sci Homework Help
Replies
6
Views
4K
Back
Top