Repository files navigation

AutoEncoder-Based-Communication-System

Implementation and result of AutoEncoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

This Repo is effictively implementation of AutoEncoder based Communication System From Research Paper "An Introduction to Deep Learning for the Physical Layer" written by Tim O'Shea and Jakob Hoydis.During My wireless Communication Lab Course,I worked on this research Paper and re-generated result of this research Paper. Idea of Deep learning Based Communication System is new and there is many advantages of Deep learning based Communication.This paper gives complete different apporach than many other paper and tries to introduce deep learning in physical layer.

Abstract of Research Paper

We present and discuss several novel applications of deep learning for the physical layer. By interpreting a communications system as an autoencoder, we develop a fundamental new way to think about communications system design as an end-to-end reconstruction task that seeks to jointly optimize transmitter and receiver components in a single process. We show how this idea can be extended to networks of multiple transmitters and receivers and present the concept of radio transformer networks as a means to incorporate expert domain knowledge in the machine learning model. Lastly, we demonstrate the application of convolutional neural networks on raw IQ samples for modulation classification which achieves competitive accuracy with respect to traditional schemes relying on expert features. This paper is concluded with a discussion of open challenges and areas for future investigation.

From "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/ written by Tim O'Shea and Jakob Hoydis

Requirements

  • Tensorflow
  • Keras
  • Numpy
  • Matplotlib

Note

Given Jupyter-Notebook file is dynamic to train any given (n,k) autoencodeer but for getting optimal result one has to manually tweak learning rate and epochs. Plots are generated by matlab script which for now i am not providing it.Anyone can plot result in matlab by training autoencoder and copy-pasting BER array and ploting it into matlab. All re-generated result below are generated with autoencoder_dynamic.ipynb file.

Result

Re-generated ResultResearch Paper
BER Perfomance of (7,4) AutoEncoderResearch Paper Result-1
BER Perfomance of R=1 AutoEncodersResearch Paper Result-2

Constellation diagram

(2,2) AutoEncoder's Constellation diagram

Following Constellation diagram are learned by Autoencoder after training it. (2,2) Autoencoder constellation diagram

(2,4) AutoEncoder Constellation diagram

(2,4) Autoencoder constellation diagram

About

Tensorflow Implementation and result of Auto-encoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

AutoEncoder-Based-Communication-System

Implementation and result of AutoEncoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

This Repo is effictively implementation of AutoEncoder based Communication System From Research Paper "An Introduction to Deep Learning for the Physical Layer" written by Tim O'Shea and Jakob Hoydis.During My wireless Communication Lab Course,I worked on this research Paper and re-generated result of this research Paper. Idea of Deep learning Based Communication System is new and there is many advantages of Deep learning based Communication.This paper gives complete different apporach than many other paper and tries to introduce deep learning in physical layer.

Abstract of Research Paper

We present and discuss several novel applications of deep learning for the physical layer. By interpreting a communications system as an autoencoder, we develop a fundamental new way to think about communications system design as an end-to-end reconstruction task that seeks to jointly optimize transmitter and receiver components in a single process. We show how this idea can be extended to networks of multiple transmitters and receivers and present the concept of radio transformer networks as a means to incorporate expert domain knowledge in the machine learning model. Lastly, we demonstrate the application of convolutional neural networks on raw IQ samples for modulation classification which achieves competitive accuracy with respect to traditional schemes relying on expert features. This paper is concluded with a discussion of open challenges and areas for future investigation.

From "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/ written by Tim O'Shea and Jakob Hoydis

Requirements

  • Tensorflow
  • Keras
  • Numpy
  • Matplotlib

Note

Given Jupyter-Notebook file is dynamic to train any given (n,k) autoencodeer but for getting optimal result one has to manually tweak learning rate and epochs. Plots are generated by matlab script which for now i am not providing it.Anyone can plot result in matlab by training autoencoder and copy-pasting BER array and ploting it into matlab. All re-generated result below are generated with autoencoder_dynamic.ipynb file.

Result

Re-generated ResultResearch Paper
BER Perfomance of (7,4) AutoEncoderResearch Paper Result-1
BER Perfomance of R=1 AutoEncodersResearch Paper Result-2

Constellation diagram

(2,2) AutoEncoder's Constellation diagram

Following Constellation diagram are learned by Autoencoder after training it. (2,2) Autoencoder constellation diagram

(2,4) AutoEncoder Constellation diagram

(2,4) Autoencoder constellation diagram

About

Tensorflow Implementation and result of Auto-encoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AutoEncoder-Based-Communication-System

Implementation and result of AutoEncoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

This Repo is effictively implementation of AutoEncoder based Communication System From Research Paper "An Introduction to Deep Learning for the Physical Layer" written by Tim O'Shea and Jakob Hoydis.During My wireless Communication Lab Course,I worked on this research Paper and re-generated result of this research Paper. Idea of Deep learning Based Communication System is new and there is many advantages of Deep learning based Communication.This paper gives complete different apporach than many other paper and tries to introduce deep learning in physical layer.

Abstract of Research Paper

We present and discuss several novel applications of deep learning for the physical layer. By interpreting a communications system as an autoencoder, we develop a fundamental new way to think about communications system design as an end-to-end reconstruction task that seeks to jointly optimize transmitter and receiver components in a single process. We show how this idea can be extended to networks of multiple transmitters and receivers and present the concept of radio transformer networks as a means to incorporate expert domain knowledge in the machine learning model. Lastly, we demonstrate the application of convolutional neural networks on raw IQ samples for modulation classification which achieves competitive accuracy with respect to traditional schemes relying on expert features. This paper is concluded with a discussion of open challenges and areas for future investigation.

From "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/ written by Tim O'Shea and Jakob Hoydis

Requirements

  • Tensorflow
  • Keras
  • Numpy
  • Matplotlib

Note

Given Jupyter-Notebook file is dynamic to train any given (n,k) autoencodeer but for getting optimal result one has to manually tweak learning rate and epochs. Plots are generated by matlab script which for now i am not providing it.Anyone can plot result in matlab by training autoencoder and copy-pasting BER array and ploting it into matlab. All re-generated result below are generated with autoencoder_dynamic.ipynb file.

Result

Re-generated ResultResearch Paper
BER Perfomance of (7,4) AutoEncoderResearch Paper Result-1
BER Perfomance of R=1 AutoEncodersResearch Paper Result-2

Constellation diagram

(2,2) AutoEncoder's Constellation diagram

Following Constellation diagram are learned by Autoencoder after training it. (2,2) Autoencoder constellation diagram

(2,4) AutoEncoder Constellation diagram

(2,4) Autoencoder constellation diagram

About

Tensorflow Implementation and result of Auto-encoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AutoEncoder-Based-Communication-System

Implementation and result of AutoEncoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

This Repo is effictively implementation of AutoEncoder based Communication System From Research Paper "An Introduction to Deep Learning for the Physical Layer" written by Tim O'Shea and Jakob Hoydis.During My wireless Communication Lab Course,I worked on this research Paper and re-generated result of this research Paper. Idea of Deep learning Based Communication System is new and there is many advantages of Deep learning based Communication.This paper gives complete different apporach than many other paper and tries to introduce deep learning in physical layer.

Abstract of Research Paper

We present and discuss several novel applications of deep learning for the physical layer. By interpreting a communications system as an autoencoder, we develop a fundamental new way to think about communications system design as an end-to-end reconstruction task that seeks to jointly optimize transmitter and receiver components in a single process. We show how this idea can be extended to networks of multiple transmitters and receivers and present the concept of radio transformer networks as a means to incorporate expert domain knowledge in the machine learning model. Lastly, we demonstrate the application of convolutional neural networks on raw IQ samples for modulation classification which achieves competitive accuracy with respect to traditional schemes relying on expert features. This paper is concluded with a discussion of open challenges and areas for future investigation.

From "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/ written by Tim O'Shea and Jakob Hoydis

Requirements

  • Tensorflow
  • Keras
  • Numpy
  • Matplotlib

Note

Given Jupyter-Notebook file is dynamic to train any given (n,k) autoencodeer but for getting optimal result one has to manually tweak learning rate and epochs. Plots are generated by matlab script which for now i am not providing it.Anyone can plot result in matlab by training autoencoder and copy-pasting BER array and ploting it into matlab. All re-generated result below are generated with autoencoder_dynamic.ipynb file.

Result

Re-generated ResultResearch Paper
BER Perfomance of (7,4) AutoEncoderResearch Paper Result-1
BER Perfomance of R=1 AutoEncodersResearch Paper Result-2

Constellation diagram

(2,2) AutoEncoder's Constellation diagram

Following Constellation diagram are learned by Autoencoder after training it. (2,2) Autoencoder constellation diagram

(2,4) AutoEncoder Constellation diagram

(2,4) Autoencoder constellation diagram

About

Tensorflow Implementation and result of Auto-encoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

AutoEncoder-Based-Communication-System

Implementation and result of AutoEncoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

This Repo is effictively implementation of AutoEncoder based Communication System From Research Paper "An Introduction to Deep Learning for the Physical Layer" written by Tim O'Shea and Jakob Hoydis.During My wireless Communication Lab Course,I worked on this research Paper and re-generated result of this research Paper. Idea of Deep learning Based Communication System is new and there is many advantages of Deep learning based Communication.This paper gives complete different apporach than many other paper and tries to introduce deep learning in physical layer.

Abstract of Research Paper

We present and discuss several novel applications of deep learning for the physical layer. By interpreting a communications system as an autoencoder, we develop a fundamental new way to think about communications system design as an end-to-end reconstruction task that seeks to jointly optimize transmitter and receiver components in a single process. We show how this idea can be extended to networks of multiple transmitters and receivers and present the concept of radio transformer networks as a means to incorporate expert domain knowledge in the machine learning model. Lastly, we demonstrate the application of convolutional neural networks on raw IQ samples for modulation classification which achieves competitive accuracy with respect to traditional schemes relying on expert features. This paper is concluded with a discussion of open challenges and areas for future investigation.

From "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/ written by Tim O'Shea and Jakob Hoydis

Requirements

  • Tensorflow
  • Keras
  • Numpy
  • Matplotlib

Note

Given Jupyter-Notebook file is dynamic to train any given (n,k) autoencodeer but for getting optimal result one has to manually tweak learning rate and epochs. Plots are generated by matlab script which for now i am not providing it.Anyone can plot result in matlab by training autoencoder and copy-pasting BER array and ploting it into matlab. All re-generated result below are generated with autoencoder_dynamic.ipynb file.

Result

Re-generated ResultResearch Paper
BER Perfomance of (7,4) AutoEncoderResearch Paper Result-1
BER Perfomance of R=1 AutoEncodersResearch Paper Result-2

Constellation diagram

(2,2) AutoEncoder's Constellation diagram

Following Constellation diagram are learned by Autoencoder after training it. (2,2) Autoencoder constellation diagram

(2,4) AutoEncoder Constellation diagram

(2,4) Autoencoder constellation diagram

About

Tensorflow Implementation and result of Auto-encoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AutoEncoder-Based-Communication-System

Implementation and result of AutoEncoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

This Repo is effictively implementation of AutoEncoder based Communication System From Research Paper "An Introduction to Deep Learning for the Physical Layer" written by Tim O'Shea and Jakob Hoydis.During My wireless Communication Lab Course,I worked on this research Paper and re-generated result of this research Paper. Idea of Deep learning Based Communication System is new and there is many advantages of Deep learning based Communication.This paper gives complete different apporach than many other paper and tries to introduce deep learning in physical layer.

Abstract of Research Paper

We present and discuss several novel applications of deep learning for the physical layer. By interpreting a communications system as an autoencoder, we develop a fundamental new way to think about communications system design as an end-to-end reconstruction task that seeks to jointly optimize transmitter and receiver components in a single process. We show how this idea can be extended to networks of multiple transmitters and receivers and present the concept of radio transformer networks as a means to incorporate expert domain knowledge in the machine learning model. Lastly, we demonstrate the application of convolutional neural networks on raw IQ samples for modulation classification which achieves competitive accuracy with respect to traditional schemes relying on expert features. This paper is concluded with a discussion of open challenges and areas for future investigation.

From "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/ written by Tim O'Shea and Jakob Hoydis

Requirements

  • Tensorflow
  • Keras
  • Numpy
  • Matplotlib

Note

Given Jupyter-Notebook file is dynamic to train any given (n,k) autoencodeer but for getting optimal result one has to manually tweak learning rate and epochs. Plots are generated by matlab script which for now i am not providing it.Anyone can plot result in matlab by training autoencoder and copy-pasting BER array and ploting it into matlab. All re-generated result below are generated with autoencoder_dynamic.ipynb file.

Result

Re-generated ResultResearch Paper
BER Perfomance of (7,4) AutoEncoderResearch Paper Result-1
BER Perfomance of R=1 AutoEncodersResearch Paper Result-2

Constellation diagram

(2,2) AutoEncoder's Constellation diagram

Following Constellation diagram are learned by Autoencoder after training it. (2,2) Autoencoder constellation diagram

(2,4) AutoEncoder Constellation diagram

(2,4) Autoencoder constellation diagram

About

Tensorflow Implementation and result of Auto-encoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AutoEncoder-Based-Communication-System

Implementation and result of AutoEncoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

This Repo is effictively implementation of AutoEncoder based Communication System From Research Paper "An Introduction to Deep Learning for the Physical Layer" written by Tim O'Shea and Jakob Hoydis.During My wireless Communication Lab Course,I worked on this research Paper and re-generated result of this research Paper. Idea of Deep learning Based Communication System is new and there is many advantages of Deep learning based Communication.This paper gives complete different apporach than many other paper and tries to introduce deep learning in physical layer.

Abstract of Research Paper

We present and discuss several novel applications of deep learning for the physical layer. By interpreting a communications system as an autoencoder, we develop a fundamental new way to think about communications system design as an end-to-end reconstruction task that seeks to jointly optimize transmitter and receiver components in a single process. We show how this idea can be extended to networks of multiple transmitters and receivers and present the concept of radio transformer networks as a means to incorporate expert domain knowledge in the machine learning model. Lastly, we demonstrate the application of convolutional neural networks on raw IQ samples for modulation classification which achieves competitive accuracy with respect to traditional schemes relying on expert features. This paper is concluded with a discussion of open challenges and areas for future investigation.

From "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/ written by Tim O'Shea and Jakob Hoydis

Requirements

  • Tensorflow
  • Keras
  • Numpy
  • Matplotlib

Note

Given Jupyter-Notebook file is dynamic to train any given (n,k) autoencodeer but for getting optimal result one has to manually tweak learning rate and epochs. Plots are generated by matlab script which for now i am not providing it.Anyone can plot result in matlab by training autoencoder and copy-pasting BER array and ploting it into matlab. All re-generated result below are generated with autoencoder_dynamic.ipynb file.

Result

Re-generated ResultResearch Paper
BER Perfomance of (7,4) AutoEncoderResearch Paper Result-1
BER Perfomance of R=1 AutoEncodersResearch Paper Result-2

Constellation diagram

(2,2) AutoEncoder's Constellation diagram

Following Constellation diagram are learned by Autoencoder after training it. (2,2) Autoencoder constellation diagram

(2,4) AutoEncoder Constellation diagram

(2,4) Autoencoder constellation diagram

About

Tensorflow Implementation and result of Auto-encoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

AutoEncoder-Based-Communication-System

Implementation and result of AutoEncoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

This Repo is effictively implementation of AutoEncoder based Communication System From Research Paper "An Introduction to Deep Learning for the Physical Layer" written by Tim O'Shea and Jakob Hoydis.During My wireless Communication Lab Course,I worked on this research Paper and re-generated result of this research Paper. Idea of Deep learning Based Communication System is new and there is many advantages of Deep learning based Communication.This paper gives complete different apporach than many other paper and tries to introduce deep learning in physical layer.

Abstract of Research Paper

We present and discuss several novel applications of deep learning for the physical layer. By interpreting a communications system as an autoencoder, we develop a fundamental new way to think about communications system design as an end-to-end reconstruction task that seeks to jointly optimize transmitter and receiver components in a single process. We show how this idea can be extended to networks of multiple transmitters and receivers and present the concept of radio transformer networks as a means to incorporate expert domain knowledge in the machine learning model. Lastly, we demonstrate the application of convolutional neural networks on raw IQ samples for modulation classification which achieves competitive accuracy with respect to traditional schemes relying on expert features. This paper is concluded with a discussion of open challenges and areas for future investigation.

From "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/ written by Tim O'Shea and Jakob Hoydis

Requirements

  • Tensorflow
  • Keras
  • Numpy
  • Matplotlib

Note

Given Jupyter-Notebook file is dynamic to train any given (n,k) autoencodeer but for getting optimal result one has to manually tweak learning rate and epochs. Plots are generated by matlab script which for now i am not providing it.Anyone can plot result in matlab by training autoencoder and copy-pasting BER array and ploting it into matlab. All re-generated result below are generated with autoencoder_dynamic.ipynb file.

Result

Re-generated ResultResearch Paper
BER Perfomance of (7,4) AutoEncoderResearch Paper Result-1
BER Perfomance of R=1 AutoEncodersResearch Paper Result-2

Constellation diagram

(2,2) AutoEncoder's Constellation diagram

Following Constellation diagram are learned by Autoencoder after training it. (2,2) Autoencoder constellation diagram

(2,4) AutoEncoder Constellation diagram

(2,4) Autoencoder constellation diagram

About

Tensorflow Implementation and result of Auto-encoder Based Communication System From Research Paper : "An Introduction to Deep Learning for the Physical Layer" http://ieeexplore.ieee.org/document/8054694/

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages