ā¹ļø Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 2.8 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/ |
| Last Crawled | 2026-01-17 11:05:43 (2 months ago) |
| First Indexed | 2024-04-07 06:17:38 (2 years ago) |
| HTTP Status Code | 200 |
| Meta Title | Understanding Cell Phone Technology: Error Correcting Codes - Association of Old Crows |
| Meta Description | Error correcting codes came along after Claude Shannon proved that the use of suitable codes permitted reliable information transmission across a noisy channel⦠|
| Meta Canonical | null |
| Boilerpipe Text | Error correcting codes came along after Claude Shannon proved that the use of suitable codes permitted reliable information transmission across a noisy channel at rates approaching the channel capacity. By ācodesā, Shannon actually meant codes for data compression and codes for error correction.
Weāre already spent several weeks talking about compression algorithms, available in lossless and lossy variants. Data compression codes squeeze out redundant (and sometimes less significant) information from the original message. This frees up some space so the transmitter can add some āusefulā redundancy back into the data. This redundancy can be used at the receive end to correct bits that got corrupted by a noisy channel.
This useful redundancy is introduced by using error correcting codes. These are also known as channel codes, because they are designed to compensate for the noise which occurs on the communications channel. Error correcting codes come in two flavors: block codes and convolutional codes.
A block code parses a stream of bits into blocks which are k bits long. It uses a single k-bit block of information to generate a single n-bit codeword. So, for example, the first k-bit input block will determine the first n-bit output codeword. Then the second input block determines the second output codeword, the third the third, and so on and so on. Because of this design feature, we say that say block codes areĀ
memoryless
. The i
th
Ā output block depends only on the i
th
Ā input block and no others.
Since there are only 2^k possible input blocks, there are only 2^k possible codewords. The extra n-k bits are redundant bits that add back in some extra information. If channel noise introduces some errors during transmission, the receiverās decoder can use the redundant bits to identify and correct (at least some of) them. The ratio k/n is called the code rate, and the set of n-bit codewords is called an (n, k) block code.
A convolutional code takes in a k-bit block and produces aĀ
sequence
Ā of n-symbol blocks. Unlike block codes, convolutional codes are not memoryless. In fact, the code depends on m previous message blocks, and we say it is an (n, k, m) convolutional code.
Convolutional encoders use mod 2 arithmetic. In mod 2 arithmetic, the only numbers to be added are 0 and 1, and the only answers are Ā 0 and 1. Hereās what mod 2 arithmetic looks like:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0
OK, now weāre ready to look at an example of a convolutional coder. Suppose I have a stream of bits coming into my convolutional coder that look like 1101000ā¦. The first bit to go into the coder is the 1 on the left-hand side. Since English readers are accustomed to seeing things flow from left to right, weāll reverse the order of the stream to be ⦠0001011. The 1 at the rightmost end of the stream flows into the left-hand side of the encoder. This encoder has two memory cells. As each new bit flows in, the two preceding bits progress to the right through the memory cells and out. A diagram is attached below.
The encoderās output alternates between two mod 2 sums. The first sum will be the content of the rightmost memory cell plus the new bit taken into the encoder. The second sum will the sum of both memory cells plus the new bit taken into the encoder. This is a (n, k, m) = (2, 1, 2) convolutional code. An input stream like our 0001011 will generate an output stream of 11, 10, 10,Ā 00,Ā 01, 11, 00. Using a convolutional coder introduces some redundancy into the information so that corrections can be made at the receiver.
Donāt worry if these examples are not yet crystal clear. We talked about them briefly today so we could see how block and convolutional coders are the same and how they differ. Next week, we will begin looking at error correcting codes in more detail. |
| Markdown | [Skip to content](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/#fl-main-content)
###### Join the Legacy, Shape the Future
- [Contact Us](https://crows.org/contact-us/)
- [Join](https://account.crows.org/memberships/become-a-member)
- [My Account](https://account.crows.org/account/login.aspx)
[](https://crows.org/)
- [Explore](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [Journal of Electromagnetic Dominance](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [About JED](https://crows.org/jed/)
- [Industry News](https://www.jedonline.com/)
- [Podcasts](https://crows.org/podcasts/)
- [Advocacy](https://crows.org/advocacy/)
- [Product Showcase](https://crows.org/product-showcase/)
- [Defense Resource Guide](https://jed.onlinemarketbase.org/)
- [Recommended Reading List](https://crows.org/recommended-reading/)
- [Attend](https://crows.org/attend/)
- [Annual Convention & Symposium](https://crows.org/events/annual-convention-symposium/)
- [Summits](https://crows.org/events/summits/)
- [AOC Europe](https://crows.org/events/aoc-europe/)
- [AOC Asia](https://crows.org/events/aoc-asia/)
- [Chapter Events](https://crows.org/chapter-events/)
- [Learn](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [Professional Development](https://crows.org/professional-development/)
- [AOC Certificate Program](https://crows.org/certificate-program/)
- [Webinars](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [Upcoming Webinars](https://crows.org/professional-development/upcoming-webinars/)
- [On-Demand Webinars](https://crows.org/webinars/on-demand-webinars/)
- [Courses](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [Upcoming Courses](https://crows.org/professional-development/upcoming-courses/)
- [On-Demand Courses](https://crows.org/professional-development/on-demand-courses/)
- [AOC Training Courses](https://crows.org/professional-development/training-courses/)
- [Scholarships](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [Future 5](https://crows.org/future-5/)
- [STEM Student of the Year Scholarship](https://crows.org/scholarship-program/)
- [From Service to Scholar Scholarship](https://crows.org/aoc-foundation/service-to-scholar/)
- [Connect](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [Chapters](https://crows.org/chapters/)
- [Awards](https://crows.org/awards/)
- [2025 Award Winners](https://crows.org/awards/aoc-award-recipients/2025-award-winners/)
- [Nominations & Elections](https://crows.org/bod-elections-2025/)
- [Committees](https://crows.org/committees/)
- [Career Center](https://careers.crows.org/)
- [Invest](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [The Value of AOC](https://crows.org/value/)
- [Sponsorship Opportunities](https://crows.org/sponsorship-opportunities/)
- [Exhibit at Events](https://crows.org/exhibit-at-events/)
- [Media Advertising](https://crows.org/media-advertising/)
- [Current AOC Partners](https://crows.org/membership/partners/)
- [Join](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [Join/Renew](https://account.crows.org/memberships/become-a-member)
- [Membership](https://crows.org/membership/)
- [For Individuals](https://crows.org/membership/individual-memberships/)
- [For Organizations](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [Partner Program](https://crows.org/membership/partner/)
- [Group Membership](https://crows.org/membership/group-memberships/)
- [Affinity Program](https://crows.org/affinity-program/)
- [Support](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [AOC Foundation](https://crows.org/aoc-foundation/)
- [Corporate Advisory Council](https://crows.org/aoc-foundation/corporate-advisory-council/)
- [Board of Governors](https://crows.org/board-of-directors/board-of-governors/)
- [Get Involved](https://crows.org/aoc-foundation/your-aoc-foundation-wants-you/)
- [Donate to the AOC Foundation](https://crows.org/aoc-foundation/donate/)
- [Combined Federal Campaign (CFC)](https://crows.org/aoc-foundation/cfc/)
- [About](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
- [Mission & History](https://crows.org/mission-and-history/)
- [Board of Directors](https://crows.org/board-of-directors/)
- [Staff](https://crows.org/staff/)
- [Store](https://shopaoc.myshopify.com/)
- [Contact Us](https://crows.org/contact-us/)
# Understanding Cell Phone Technology: Error Correcting Codes
December 28, 2020
Error correcting codes came along after Claude Shannon proved that the use of suitable codes permitted reliable information transmission across a noisy channel at rates approaching the channel capacity. By ācodesā, Shannon actually meant codes for data compression and codes for error correction.
Weāre already spent several weeks talking about compression algorithms, available in lossless and lossy variants. Data compression codes squeeze out redundant (and sometimes less significant) information from the original message. This frees up some space so the transmitter can add some āusefulā redundancy back into the data. This redundancy can be used at the receive end to correct bits that got corrupted by a noisy channel.
This useful redundancy is introduced by using error correcting codes. These are also known as channel codes, because they are designed to compensate for the noise which occurs on the communications channel. Error correcting codes come in two flavors: block codes and convolutional codes.
A block code parses a stream of bits into blocks which are k bits long. It uses a single k-bit block of information to generate a single n-bit codeword. So, for example, the first k-bit input block will determine the first n-bit output codeword. Then the second input block determines the second output codeword, the third the third, and so on and so on. Because of this design feature, we say that say block codes are *memoryless*. The ith output block depends only on the ith input block and no others.
Since there are only 2^k possible input blocks, there are only 2^k possible codewords. The extra n-k bits are redundant bits that add back in some extra information. If channel noise introduces some errors during transmission, the receiverās decoder can use the redundant bits to identify and correct (at least some of) them. The ratio k/n is called the code rate, and the set of n-bit codewords is called an (n, k) block code.
A convolutional code takes in a k-bit block and produces a sequence of n-symbol blocks. Unlike block codes, convolutional codes are not memoryless. In fact, the code depends on m previous message blocks, and we say it is an (n, k, m) convolutional code.
Convolutional encoders use mod 2 arithmetic. In mod 2 arithmetic, the only numbers to be added are 0 and 1, and the only answers are 0 and 1. Hereās what mod 2 arithmetic looks like:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0
OK, now weāre ready to look at an example of a convolutional coder. Suppose I have a stream of bits coming into my convolutional coder that look like 1101000ā¦. The first bit to go into the coder is the 1 on the left-hand side. Since English readers are accustomed to seeing things flow from left to right, weāll reverse the order of the stream to be ⦠0001011. The 1 at the rightmost end of the stream flows into the left-hand side of the encoder. This encoder has two memory cells. As each new bit flows in, the two preceding bits progress to the right through the memory cells and out. A diagram is attached below.
The encoderās output alternates between two mod 2 sums. The first sum will be the content of the rightmost memory cell plus the new bit taken into the encoder. The second sum will the sum of both memory cells plus the new bit taken into the encoder. This is a (n, k, m) = (2, 1, 2) convolutional code. An input stream like our 0001011 will generate an output stream of 11, 10, 10, 00, 01, 11, 00. Using a convolutional coder introduces some redundancy into the information so that corrections can be made at the receiver.
Donāt worry if these examples are not yet crystal clear. We talked about them briefly today so we could see how block and convolutional coders are the same and how they differ. Next week, we will begin looking at error correcting codes in more detail.

### [Two Step Convolutional Coder](https://crows.org/download/two-step-convolutional-coder/)
1 file(s) 18.00 KB
[Download](https://crows.org/stem-blog/understanding-cell-phone-technology-error-correcting-codes/)
Tags: [error correction](https://crows.org/tag/error-correction/)
## Posts navigation
[ā Understanding Cell Phone Technology: Lossy Data Compression](https://crows.org/stem-blog/understanding-cell-phone-technology-lossy-data-compression/)
[Understanding Cell Phone Technology: Error Control Strategies ā](https://crows.org/stem-blog/understanding-cell-phone-technology-error-control-strategies/)
- [Contact Us](https://crows.org/contact-us/)
- [Join](https://account.crows.org/memberships/become-a-member)
- [My Account](https://account.crows.org/account/login.aspx)

With around 12,000 members internationally, the Association of Old Crows (AOC) is a professional non-profit association that educates, connects, and advocates on behalf of its members and stakeholders across the global electromagnetic warfare (EW) and spectrum operations community.
Ā© 2026 Association of Old Crows \| [Privacy Policy](https://crows.org/privacy-policy/) \| [Contact Us](https://crows.org/contact-us/) |
| Readable Markdown | null |
| Shard | 171 (laksa) |
| Root Hash | 17928805700679961771 |
| Unparsed URL | org,crows!/stem-blog/understanding-cell-phone-technology-error-correcting-codes/ s443 |