This has been a helpful window into error correcting codes, thank you for the videos! I would note that in the context of 8:40 Z₂[x]/(x⁶-1), the other three polynomials (110110 | 1+x+x³+x⁴, and its cycles) can also act as generators via cycling and bitwise adding with each other, it's just a little messier as you're cancelling terms. _Any_ *n*-cyclic pattern (in this case *3*-cyclic) will generate all other {factors of n}-cyclic patterns under this framework.
Excellent presentations! It's very clear and easy to understand, which is very helpful to me. Thank you for your great work! I really don't know why you lost your interest in continuing this series. If possible, I sincerely hope that you could continue this series in this year, which will help a lot of people like me to understand ECC. Again, thank you Christ!
Hey Chris, I am working on my high school end project about error-correcting codes, and your videos always helped me out a lot. Do you maybe know another video about correcting errors with cyclic codes? Your videos were always such a help for me, thanks for that
please, I am sinking with (error correcting code), can you help how to understand its basics ? Which books I must read to understand its basics ? Are there any video series in TH-cam can help ? I am reading it in (The Theory of Error-Correcting Codes) book for (F.J. MacWilliams) and (N.J.A. Sloane), and I understand nothing .. please help.
I have been looking for such a series for months. Really appreciate high quality lectures on advanced topics in mathematics. Do you by any chance have an update on 3c?
I've uploaded the powerpoint notes here: github.com/eigenchris/MathNotes I've been focusing on my relativity series lately. I'm not sure when I'll finish these.
I have rough drafts of the notes for part 3c and 4 here. Unfortunately I don't plan to finish them in the near future. Maybe later in 2020. github.com/eigenchris/MathNotes
Hi I just discovered you lectures and they are amazing. Thanks for sharing the 3C and 4 notes. Can you also post up your previous notes? I would like to use them as a references.
@eigenchris, a small correction: while it makes sense to think of linearity and cyclicity as separate properties, by definition cyclic codes are always linear.
You’re a life saver my final project this year is on error correcting codes and this has been so clear RS codes are cyclic too aren’t they so would they use a similar generator polynomial and matrix to create the code word from the messages?
Yeah I was planning on doing RS videos too but I got burned out. I'll probably make them eventually. I can give you the work-in-progress slides if you want. Can't guarantee they are error-free though.
eigenchris please that would be so helpful! I’ve only got a 20minute presentation to do and it’s my choice which codes I present and which I don’t and I’m going to do Bch codes hamming and rs because I can talk about each of those for about 5-6 minutes
@@plebbo14 Sorry for the delay. Notes are downloadable from the link below. I can't even remember what some of this means anymore. :) It's been 8 months since I wrote them up. github.com/eigenchris/MathNotes/blob/master/ErrorCorrectingCodes4.pptx
eigenchris haha it’s fair enough thank you I’m doing my thesis on this now and probably gunna do a masters in coding theory as well But I’m going to mainly be researching ldpc codes as they’re kinda the basis for our data going forward like 5g data and even the European television broadcasting Do you happen to know any good sources for ldpc codes?
@@eigenchrisGreat work!! Will be patiently awaiting the part 3C. However, I l'd be very grateful if you could share some link to get a preview on the 3C error correcting part.
Technically no. I give an example of a nonlinear cyclic code in the previous video. However, generally when people talk about cyclic codes, there is an unspoken assumption that the code is also linear. Most useful cyclic codes are linear + cyclic.
I uploaded the ErrorCorrectingCodes3 notes here at the link below. I think the content that was supposed to start in part C begins around slide 40. Please note that it might contain errors... I think one of the reasons I didn't make it was because my slides contained some errors. But the basic idea for error correction is the same as linear codes, but instead of using a parity-check matrix, we use a parity-check polynomial. The ECC4 slides are also uploaded in the same location: github.com/eigenchris/MathNotes
It seems like you're referring to Cyclic Codes in Error Correcting Codes. To clarify the concept, let me break it down into simpler terms. Cyclic Codes are a type of Error Correcting Codes that have a unique property, which makes them easy to generate and decode. They are based on the mathematical concept of modular arithmetic and polynomial rings. 1. Generator Polynomial: A generator polynomial is a specific polynomial used to create a cyclic code. It is usually represented as g(x). The degree of the generator polynomial determines the number of parity bits in the generated code. 2. Stages of Decoding Cyclic Codes: a. Encoding: In this stage, a message is transformed into a codeword by multiplying the message polynomial with the generator polynomial. This is done using modulo-2 arithmetic. b. Detection and Correction: This stage involves detecting and correcting errors in the received codeword. There are several algorithms to achieve this, such as the Berlekamp-Welch algorithm and the Peterson-Gorenstein-Zierler algorithm. These algorithms work by finding the remainder of the received polynomial divided by the generator polynomial, and then using this information to identify and correct errors. c. Syndrome Computation: Syndrome is the result of the received polynomial modulo-2 divided by the generator polynomial. It helps in determining the location and number of errors in the received codeword. d. Error Location and Error Magnitude: These are the two key parameters needed to correct errors in the received codeword. Error location helps identify the position of errors, while error magnitude helps in determining the number of errors in the received codeword. e. Error Correction: Once the location and magnitude of errors are known, the receiver can correct the errors by flipping the bits at the identified locations. In summary, Cyclic Codes use a generator polynomial to create error-correcting codes. The decoding process involves encoding, syndrome computation, error location, error magnitude, and error correction stages.
Yeah, the complex numbers are really just R[x]/(x^2 + 1). You'll see more things that remind you of complex numbers in some of my upcoming videos on finite fields.
@Harry Svensson Check out the "split complex" numbers as well (also called R^(1,1), the Minkowski "1-space 1-time dimension" space defined as R[x]/(x^2 - 1)). This weird space will give you some fun intuitions, as well interesting insights into the geometry of hyperbolas (which is much richer than you'd expect) and can act as a toy model to start exploring special relativity. @eigenchris If you're planning to speak about finite fields in general, could you give some insights into vector spaces over finite fields (and maybe their topology/subspaces/vector fields on vector spaces over finite fields) as well ? They're a subject I've had a lot of trouble finding material on, and I think they could be used to find good algorithms for interesting pixel/voxel transformations that haven't been invented yet. Love your vids btw, thank you so much !!
Yet again my journey through mathematics has brought me to a playlist of yours. You got a new subscriber.
This has been a helpful window into error correcting codes, thank you for the videos!
I would note that in the context of 8:40 Z₂[x]/(x⁶-1), the other three polynomials (110110 | 1+x+x³+x⁴, and its cycles) can also act as generators via cycling and bitwise adding with each other, it's just a little messier as you're cancelling terms. _Any_ *n*-cyclic pattern (in this case *3*-cyclic) will generate all other {factors of n}-cyclic patterns under this framework.
Excellent presentations! It's very clear and easy to understand, which is very helpful to me. Thank you for your great work! I really don't know why you lost your interest in continuing this series. If possible, I sincerely hope that you could continue this series in this year, which will help a lot of people like me to understand ECC. Again, thank you Christ!
Fantastic work! Made generator polynomials very easy to understand for my digital communications graduate course.
Hey Chris, I am working on my high school end project about error-correcting codes, and your videos always helped me out a lot. Do you maybe know another video about correcting errors with cyclic codes? Your videos were always such a help for me, thanks for that
I realize it's kinda randomly asking but does anybody know of a good place to watch newly released series online?
please, I am sinking with (error correcting code), can you help how to understand its basics ?
Which books I must read to understand its basics ?
Are there any video series in TH-cam can help ?
I am reading it in (The Theory of Error-Correcting Codes) book for (F.J. MacWilliams) and (N.J.A. Sloane), and I understand nothing .. please help.
Very good video, I can't wait to watch the 3c !
No
No
I never had so much clarity in cyclic codes!! Thanks a tonn
love this tutorial, it helped me a lot.
thank you so much!
I have been looking for such a series for months. Really appreciate high quality lectures on advanced topics in mathematics. Do you by any chance have an update on 3c?
I've uploaded the powerpoint notes here: github.com/eigenchris/MathNotes
I've been focusing on my relativity series lately. I'm not sure when I'll finish these.
Excellent series on Error Correction! Would you be developing and posting 3c? I find it very useful
I have rough drafts of the notes for part 3c and 4 here. Unfortunately I don't plan to finish them in the near future. Maybe later in 2020.
github.com/eigenchris/MathNotes
@@eigenchris Loved 3a and 3b. Please post videos on 3c and 4.
@@eigenchris thanks for the slides, they have been really helpful. It would be nice to see them in video form, though. Great work!
Hi I just discovered you lectures and they are amazing. Thanks for sharing the 3C and 4 notes. Can you also post up your previous notes? I would like to use them as a references.
Very appreciated! hope there will be 3c and even 4! thx again!!!
Very well made Video Chris ! Well done with your hard work
hello, i love your videos! they really helped me for my college project on polynomial rings in cyclic codes. thank you so much!
@eigenchris, a small correction: while it makes sense to think of linearity and cyclicity as separate properties, by definition cyclic codes are always linear.
In the previous video, though, around 2:00, he gave an example that was cyclic but not linear?
Now I can understand cyclic codes better. Thank you. 😊
Man, your tone of speech is like a machine
3:38 "any polynomial"? Like, 0.5x? Or do you mean "any polynomial in Z2[x]"?
Thank you very much for the superb explanation!
4:02 Worth noting. degree of of u(x) should be < k
Thank you so much for your videos i have also watched tensor algbera series quite amazing plzzzz do make further videos on coding thanks alot...
Thanks a lot for this. Easy to understand
ERROR CORRECTION WHEN? Does it have to do with creating the parity check matrix and using the syndrome to figure out which bit was wrong?
Can you fig out the polynomial if I send you a codewords?
You’re a life saver my final project this year is on error correcting codes and this has been so clear
RS codes are cyclic too aren’t they so would they use a similar generator polynomial and matrix to create the code word from the messages?
Yeah I was planning on doing RS videos too but I got burned out. I'll probably make them eventually. I can give you the work-in-progress slides if you want. Can't guarantee they are error-free though.
eigenchris please that would be so helpful! I’ve only got a 20minute presentation to do and it’s my choice which codes I present and which I don’t and I’m going to do Bch codes hamming and rs because I can talk about each of those for about 5-6 minutes
eigenchris unless you think ldpc and others have more content to talk about!
@@plebbo14 Sorry for the delay. Notes are downloadable from the link below. I can't even remember what some of this means anymore. :) It's been 8 months since I wrote them up.
github.com/eigenchris/MathNotes/blob/master/ErrorCorrectingCodes4.pptx
eigenchris haha it’s fair enough thank you
I’m doing my thesis on this now and probably gunna do a masters in coding theory as well
But I’m going to mainly be researching ldpc codes as they’re kinda the basis for our data going forward like 5g data and even the European television broadcasting
Do you happen to know any good sources for ldpc codes?
Is there no Chater 3c yet?
I plan on continuing later in the year. I am focusing on finishing the Tenair Calculus series first.
@@eigenchrisGreat work!! Will be patiently awaiting the part 3C. However, I
l'd be very grateful if you could share some link to get a preview on the 3C error correcting part.
Thanks so much for this useful video. Where can I see the next video?
Probably not for a couple months, unfortunately.
If you have questions, I can try to answer them in comment form.
@@eigenchris Can't wait for the next video! In the mean time, any suggestions for textbooks that illustrate this concept well?
Would love to see 3c! :)
Are all cyclic codes linear?
Technically no. I give an example of a nonlinear cyclic code in the previous video.
However, generally when people talk about cyclic codes, there is an unspoken assumption that the code is also linear. Most useful cyclic codes are linear + cyclic.
Zuko: Where's the rest of it???
Literally working on it right now. You can expect another video before the end of April.
It seems that video describing how do we correct with codes is missing .
I meant to do more videos but I lost interest. I'll see if I can give you a link to the notes I made for the next video.
@@eigenchris Chris , you got high quality systematic videos that saved me months of hard research.
@@eigenchris If you could send me to email, that would be amazing :) ?
I uploaded the ErrorCorrectingCodes3 notes here at the link below. I think the content that was supposed to start in part C begins around slide 40. Please note that it might contain errors... I think one of the reasons I didn't make it was because my slides contained some errors. But the basic idea for error correction is the same as linear codes, but instead of using a parity-check matrix, we use a parity-check polynomial. The ECC4 slides are also uploaded in the same location: github.com/eigenchris/MathNotes
@@eigenchris Thank you so much
thank you so much!!!!
Oh plêase do the reed solomon code :))
Too good 👍
How does this make an error correcting code? Can I have some real world examples CRC, Golay(24,12), anything
It seems like you're referring to Cyclic Codes in Error Correcting Codes. To clarify the concept, let me break it down into simpler terms.
Cyclic Codes are a type of Error Correcting Codes that have a unique property, which makes them easy to generate and decode. They are based on the mathematical concept of modular arithmetic and polynomial rings.
1. Generator Polynomial: A generator polynomial is a specific polynomial used to create a cyclic code. It is usually represented as g(x). The degree of the generator polynomial determines the number of parity bits in the generated code.
2. Stages of Decoding Cyclic Codes:
a. Encoding: In this stage, a message is transformed into a codeword by multiplying the message polynomial with the generator polynomial. This is done using modulo-2 arithmetic.
b. Detection and Correction: This stage involves detecting and correcting errors in the received codeword. There are several algorithms to achieve this, such as the Berlekamp-Welch algorithm and the Peterson-Gorenstein-Zierler algorithm. These algorithms work by finding the remainder of the received polynomial divided by the generator polynomial, and then using this information to identify and correct errors.
c. Syndrome Computation: Syndrome is the result of the received polynomial modulo-2 divided by the generator polynomial. It helps in determining the location and number of errors in the received codeword.
d. Error Location and Error Magnitude: These are the two key parameters needed to correct errors in the received codeword. Error location helps identify the position of errors, while error magnitude helps in determining the number of errors in the received codeword.
e. Error Correction: Once the location and magnitude of errors are known, the receiver can correct the errors by flipping the bits at the identified locations.
In summary, Cyclic Codes use a generator polynomial to create error-correcting codes. The decoding process involves encoding, syndrome computation, error location, error magnitude, and error correction stages.
This almost feels like i² = -1, but instead of ² and -1 it's i⁵ = 1
Fun stuff.
Yeah, the complex numbers are really just R[x]/(x^2 + 1).
You'll see more things that remind you of complex numbers in some of my upcoming videos on finite fields.
@Harry Svensson Check out the "split complex" numbers as well (also called R^(1,1), the Minkowski "1-space 1-time dimension" space defined as R[x]/(x^2 - 1)). This weird space will give you some fun intuitions, as well interesting insights into the geometry of hyperbolas (which is much richer than you'd expect) and can act as a toy model to start exploring special relativity.
@eigenchris If you're planning to speak about finite fields in general, could you give some insights into vector spaces over finite fields (and maybe their topology/subspaces/vector fields on vector spaces over finite fields) as well ? They're a subject I've had a lot of trouble finding material on, and I think they could be used to find good algorithms for interesting pixel/voxel transformations that haven't been invented yet. Love your vids btw, thank you so much !!
you saved my ass pal!