<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEcFR3o7cCp7ImA9WhRUFkw.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228</id><updated>2012-01-26T21:06:56.408Z</updated><category term="Shannon" /><category term="Introduction" /><category term="Spread Spectrum" /><category term="Nyquist" /><category term="Channel Modelling" /><category term="Digital modulations" /><category term="Interesting problems" /><category term="Matlab Codes" /><category term="Constellations" /><category term="Signal processing" /><category term="Reed Solomon codes" /><category term="Channel Coding" /><category term="Probability" /><category term="Interleaver" /><category term="Source coding" /><category term="Line Coding" /><category term="Hamming Codes" /><title>GaussianWaves</title><subtitle type="html">All about Digital Communication...</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://gaussianwaves.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>91</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Gaussianwaves" /><feedburner:info uri="gaussianwaves" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><feedburner:emailServiceId>Gaussianwaves</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;A0AAR38yfCp7ImA9WhdSGEk.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-1395483578444628881</id><published>2011-07-28T11:40:00.001+01:00</published><updated>2011-07-28T11:42:26.194+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-28T11:42:26.194+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Shannon" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>Sampling Theorem - Bandpass or Intermediate or Under Sampling</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" closure_uid_bajsi4="285" style="clear: both; text-align: center;"&gt;&lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/SamplingTheorem-BandpassSampling.pdf?attredirects=0&amp;amp;d=1" style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="70px" src="http://3.bp.blogspot.com/-Ty6gQz5-HJM/TifqaN1tr9I/AAAAAAAAEpg/0jUb0svjviQ/s200/pdf.jpg" t$="true" width="70px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div closure_uid_bajsi4="236"&gt;&lt;span closure_uid_3lg8fk="149" style="font-size: large;"&gt;Intermediate Sampling or Under-Sampling &lt;/span&gt;&lt;/div&gt;&lt;div closure_uid_bajsi4="381"&gt;&lt;div closure_uid_bajsi4="398"&gt;&lt;div closure_uid_bajsi4="434"&gt;If the signal is a bandpass signal with bandwidth Fb (Bandwidth is simply the difference between the lowest and the highest frequency present in the signal).&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div closure_uid_bajsi4="381"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="boxed" closure_uid_bajsi4="222"&gt;&lt;br /&gt;
&lt;center closure_uid_bajsi4="221"&gt;In order for a faithful reproduction and reconstruction of a bandpass analog signal with bandwidth - Fb, the signal should be sampled at a Sampling frequency (Fs) that is greater than or equal to twice the maximum bandwidth of the signal.&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20F_%7Bs%7D%20%5Cgeq%202F_%7Bb%7D" title="\dpi{150} F_{s} \geq 2F_{b}" /&gt;&lt;/center&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div closure_uid_bajsi4="223"&gt;Consider a bandpass signal extending from 150Hz to 200Hz. The bandwidth of this signal is Fb=200Hz-150Hz=50Hz. In order to faithfully represent the above signal in the digital domain the sampling frequency must be Fs&amp;gt;=100Hz (2*Fb). Note that the sampling frequency 100Hz is far below the maximum content of the signal (which is 200Hz). That is why the bandpass sampling is also called "under-sampling". As long as the sampling frequency is greater than or equal to twice the bandwidth of the signal, the reconstruction back to analog domain will be error free.&lt;/div&gt;&lt;br /&gt;
Going back to the aliasing zone figure, if &lt;b&gt;the signal of interest is in the zone other than zone 1&lt;/b&gt;, it is called a &lt;b&gt;bandpass signal&lt;/b&gt; and the sampling operation is called "&lt;b&gt;Intermediate Sampling&lt;/b&gt;" or "&lt;b&gt;Harmonic Sampling&lt;/b&gt;" or "&lt;b&gt;Under Sampling&lt;/b&gt;" or "&lt;b&gt;Bandpass Sampling&lt;/b&gt;".&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-TN2MDjd9mGE/TiVLgIToTQI/AAAAAAAAEpQ/SGl6zin849U/s1600/Folding_Frequency.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-TN2MDjd9mGE/TiVLgIToTQI/AAAAAAAAEpQ/SGl6zin849U/s1600/Folding_Frequency.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Note that zone 1 is a mirror image of zone 2 (with frequency reversal). Similarly zone 3 is a mirror image of zone 4 etc.., Also, any signal in zone 1 will be reflected in zone 2 with frequency reversal which inturn will be copied in zone 3 and so on.&lt;br /&gt;
&lt;br /&gt;
Lets say the signal of interest lies in zone 2. This will be copied in all the other zones. Zone 1 also contains the sampled signal with frequency reversal which can be correct by reversing the order of FFT in digital domain.&lt;br /&gt;
&lt;br /&gt;
&lt;div closure_uid_s337zu="141"&gt;No matter in which zone the signal of interest lies, zone 1 always contains the signal after sampling operation is performed. If the signal of interest lies in any of the even zones, zone 1 contains the sampled signal with frequency reversal. If the signal of interest lies in any of the odd zones, zone 1 contains the sampled signal without frequency reversal.&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;Example:&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;Consider an AM signal centered at carrier frequency 1MHz, with two components offset by 10KHz - 0.99 MHz and 1.01 MHz. So the AM signal contains three frequency components&amp;nbsp;at 0.99 MHz, 1 MHz and 1.01 MHz. &lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;Our desire is to sample the AM signal. As with the usual sampling theorem (baseband), we know that if we sample the signal at twice the maximum frequency i.e Fs&amp;gt;=2*1.01MHz=2.02 MHz&amp;nbsp;there should be no problem in representing the analog signal in digital domain.&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;By the bandpass sampling theorem, we do not need to use a sampler running at Fs&amp;gt;=2.02 MHz. Faster sampler implies more cost. By applying the bandpass sampling theorem, we can use a slower sampler and reduce the cost of the system. The bandwidth of the signal is 1.01MHz-0.99 MHz = 20 KHz. So, just sampling at Fs&amp;gt;=2*20KHz=40KHz&amp;nbsp; will convert the signal to digital domain properly&amp;nbsp;and we can also&amp;nbsp;avoid using an expensive high rate sampler (if Fs &amp;gt;= 2.02 MHz used according to baseband sampling theorem).&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;Lets set the sampling frequency to be Fs=120KHz (which is&amp;nbsp;3 times higher than the minimum required sampling rate of 40KHz or oversampling rate =3).&amp;nbsp;&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;Now we can easily find the position of the spectral components in the sampled output by using the&amp;nbsp;aliasing zone figure as given above. Since&amp;nbsp;Fs=120 KHz, Fs/2 will be 60KHz. So the zone 1 will be from 0&amp;nbsp;to 60 KHz, zone 2&amp;nbsp;-&amp;gt; 60-120KHz and so on. The three spectral components at 0.99MHz, 1MHz and 1.01 MHz will fall at zone 17 ( how ? 0.99 MHz/60 KHz = &amp;nbsp;16.5 , 1MHz/60KHz = &amp;nbsp;16.67 and 1.01MHz/60KHz = 16.83 , all figures approximating to 17). By the aliasing zone figure, zone 16 contains a copy of zone 17, zone 15 contains a copy of zone 16, zone 14 contains a copy of zone 15 and so on... Finally zone 1 contains the copy of zone 2 (Frequency reversal also exist at even zones). In effect, zone 1 contains a copy of zone 17. Since the original spectral components are at zone 17, which is an odd zone, zone 1 contains the copy of spectral components at zone 17 without frequency reversal.&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;Since there is no frequency reversal, in zone 1 the three&amp;nbsp;components will be at 30KHz, 40KHz and 50KHz (You can easily figure this out ).&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;This operation has downconverted our signal from zone 17 to zone 1 without distorting the signal components. The downconverted signal can be further processed by using a filter to select the baseband downconverted components.&amp;nbsp;Following figure illustrates the concept of bandpass sampling.&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-3Jjo6IZmp0M/TjEx9018hgI/AAAAAAAAEqE/JJnsPdAGJIw/s1600/bandpass_sampling_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-3Jjo6IZmp0M/TjEx9018hgI/AAAAAAAAEqE/JJnsPdAGJIw/s1600/bandpass_sampling_1.jpg" t$="true" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div closure_uid_bajsi4="215" closure_uid_s337zu="141"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div closure_uid_bajsi4="214"&gt;Consider the same AM signal with three components at 0.99MHz, 1MHz and 1.01 MHz. Now we also have an "unwanted" fourth component at 1.2 MHz&amp;nbsp;along with the incoming signal. If we sample the signal at 120 KHz, it will cause aliasing (because the&amp;nbsp;bandwidth of the entire signal&amp;nbsp;is 1.2-0.99 = 0.21 MHz = 210 KHz and the sampling frequency of 120KHz is below twice the bandwidth). In order to avoid anti-aliasing and to discard the unwanted component at 1.2 MHz, an anti-aliasing bandpass filter has to be used to select those desired component before performing the sampling operation at 120KHz. This is also called "pre-filtering". The following figure illustrates this concept.&lt;/div&gt;&lt;/div&gt;&lt;div closure_uid_5zt4zx="132" closure_uid_bajsi4="122" closure_uid_s337zu="141"&gt;&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-5xChJcfyYfg/TjE2XopYYtI/AAAAAAAAEqM/l13h9ujmLqw/s1600/bandpass_sampling_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="304px" src="http://2.bp.blogspot.com/-5xChJcfyYfg/TjE2XopYYtI/AAAAAAAAEqM/l13h9ujmLqw/s640/bandpass_sampling_2.jpg" t$="true" width="640px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div closure_uid_s337zu="141"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="separator" closure_uid_kbi7a4="140" style="clear: both; text-align: left;"&gt;﻿&lt;span style="font-size: large;"&gt;Recommended Books:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Communication-Systems-MATLAB-Simulink/dp/1589096215?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communication Systems using MATLAB and Simulink" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1589096215&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1589096215" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Contemporary-Communication-Systems-Using-MATLAB/dp/0534406173?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Contemporary Communication Systems Using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534406173&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534406173" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-Digital-Signal-Processing-MATLAB/dp/0534391508?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of Digital Signal Processing Using MATLAB (with CD-ROM)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534391508&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534391508" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Signals-Systems-using-MATLAB-Chaparro/dp/0123747163?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Signals and Systems using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123747163&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123747163" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Signal-Processing-John-Proakis/dp/0131873741?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Signal Processing (4th Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0131873741&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0131873741" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-John-Proakis/dp/0071263780?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0071263780&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071263780" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-Fundamentals-Applications-2nd/dp/0130847887?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications: Fundamentals and Applications (2nd Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0130847887&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0130847887" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Wireless-Communications-Andrea-Goldsmith/dp/0521837162?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0521837162&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0521837162" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;a href="http://www.amazon.com/MIMO-Wireless-Communications-ebook/dp/B000USIVC6?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000USIVC6&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000USIVC6" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/MIMO-Theory-Implementation-Alain-Sibille/dp/0123821940?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO: From Theory to Implementation" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123821940&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123821940" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-WiMAX-Understanding-Networking-ebook/dp/B000SEGQRY?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of WiMAX: Understanding Broadband Wireless Networking" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000SEGQRY&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000SEGQRY" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Theory-Applications-OFDM-CDMA-ebook/dp/B000PY413I?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Theory and Applications of OFDM and CDMA: Wideband Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000PY413I&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000PY413I" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-1395483578444628881?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KjDCViVoVTM:YGqlwDxNA9s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KjDCViVoVTM:YGqlwDxNA9s:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KjDCViVoVTM:YGqlwDxNA9s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KjDCViVoVTM:YGqlwDxNA9s:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=KjDCViVoVTM:YGqlwDxNA9s:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/KjDCViVoVTM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/1395483578444628881/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=1395483578444628881" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/1395483578444628881?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/1395483578444628881?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/KjDCViVoVTM/sampling-theorem-bandpass-or.html" title="Sampling Theorem - Bandpass or Intermediate or Under Sampling" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-Ty6gQz5-HJM/TifqaN1tr9I/AAAAAAAAEpg/0jUb0svjviQ/s72-c/pdf.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/07/sampling-theorem-bandpass-or.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YFSXw6fip7ImA9WhdSEk4.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-638199729322468210</id><published>2011-07-21T10:04:00.000+01:00</published><updated>2011-07-21T10:05:18.216+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-21T10:05:18.216+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Shannon" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>Sampling Theorem - Baseband Sampling</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div closure_uid_kbi7a4="145" dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div closure_uid_kbi7a4="293" style="text-align: right;"&gt;&lt;div closure_uid_kbi7a4="482" style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/SamplingTheorem-BasebandSampling.pdf?attredirects=0&amp;amp;d=1"&gt;&lt;img border="0" height="70px" src="http://3.bp.blogspot.com/-Ty6gQz5-HJM/TifqaN1tr9I/AAAAAAAAEpg/0jUb0svjviQ/s200/pdf.jpg" t$="true" width="70px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div closure_uid_kbi7a4="293"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div closure_uid_kbi7a4="293"&gt;&lt;div closure_uid_kbi7a4="444"&gt;"Nyquist-Shannon Sampling Theorem" is the fundamental base over which all the digital processing techniques are built. &lt;/div&gt;&lt;/div&gt;&lt;div closure_uid_kbi7a4="312"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div closure_uid_kbi7a4="629"&gt;Processing a signal in digital domain gives several advantages (like immunity to temperature drift, accuracy, predictability, ease of design, ease of implementation etc..,) over analog domain processing. &lt;/div&gt;&lt;input name="IL_RELATED_TAGS" type="hidden" /&gt;&lt;br /&gt;
&lt;span closure_uid_kbi7a4="205" style="font-size: x-large;"&gt;Analog to Digital&amp;nbsp;conversion:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
In analog domain, the signal that is of concern is continuous in both time and amplitude. The process of discretization of the analog signal in both time domain and amplitude levels yields the equivalent digital signal.&lt;br /&gt;
&lt;br /&gt;
The conversion of analog to digital domain is a three step process&lt;br /&gt;
1) Discretization in time - Sampling &lt;br /&gt;
2) Discretization of amplitude levels - Quantization&lt;br /&gt;
3) Converting the discrete samples to digital samples - Coding/Encoding &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Th4x-lWCSco/TiUrTOOBPSI/AAAAAAAAEpA/uwv2UaFbzsE/s1600/Analog_to_Digital_conversion.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-Th4x-lWCSco/TiUrTOOBPSI/AAAAAAAAEpA/uwv2UaFbzsE/s1600/Analog_to_Digital_conversion.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The sampling operation samples ("chops") the incoming signal at regular interval called "Sampling Rate" (denoted by Ts). Sampling Rate is determined by Sampling Frequency (denoted by Fs) as&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20T_%7Bs%7D=%5Cfrac%7B1%7D%7BF_%7Bs%7D%7D" title="\dpi{150} T_{s}=\frac{1}{F_{s}}" /&gt;&lt;br /&gt;
&lt;br /&gt;
Lets consider the following logical questions:&lt;br /&gt;
* Given a real world signal, how do we select the sampling rate in order to faithfully represent the signal in digital domain ? &lt;br /&gt;
* Is there any criteria for selecting the sampling rate ? &lt;br /&gt;
* Will there be any deviation if the signal is converted back to analog domain ? &lt;br /&gt;
&lt;br /&gt;
Answer : Consult the "Nyquist-Shannon Sampling Theorem" to select the sampling rate or sampling frequency.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-large;"&gt;Nyquist-Shannon Sampling Theorem:&lt;/span&gt;&lt;br /&gt;
The following sampling theorem is the exact reproduction of text from Shannon's classic paper[1],&lt;br /&gt;
&lt;div class="boxed"&gt;"If a function f(t) contains no frequencies higher than W cps, it is completely determined by giving its ordinates at a series of points spaced 1/2W seconds apart."&lt;/div&gt;&lt;div closure_uid_1ovl3j="125"&gt;Sampling Theorem mainly falls into two categories :&lt;/div&gt;&lt;div closure_uid_1ovl3j="125"&gt;1) Baseband Sampling - Applied for signals in the baseband (useful frequency components extending from 0Hz to some Fm Hz)&lt;/div&gt;2) Bandpass Sampling - Applied for signals whose frequency components extent from some F1 Hz to F2Hz (where F2&amp;gt;F1)&lt;br /&gt;
&lt;div closure_uid_1ovl3j="151"&gt;In simple terms, the Nyquist Shannon Sampling Theorem for Baseband&amp;nbsp;can be explained as follows&lt;/div&gt;&lt;br /&gt;
&lt;div closure_uid_jsy5vn="208"&gt;&lt;div closure_uid_jsy5vn="226"&gt;&lt;span closure_uid_1ovl3j="149" closure_uid_jsy5vn="221" style="font-size: x-large;"&gt;Baseband Sampling&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div closure_uid_1ovl3j="127"&gt;If the signal is confined to a maximum frequency of Fm Hz, in other words, the signal is a baseband signal (extending from 0 Hz to maximum Fm Hz).&lt;/div&gt;&lt;div class="boxed" closure_uid_1ovl3j="128" closure_uid_jsy5vn="217"&gt;In order for a faithful reproduction and reconstruction of an analog signal that is confined to a maximum frequency Fm, the signal should be sampled at a Sampling frequency (Fs) that is greater than or equal to twice the maximum frequency of the signal.&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20F_%7Bs%7D%20%5Cgeq%202F_%7Bm%7D" title="\dpi{150} F_{s} \geq 2F_{m}" /&gt;&lt;/div&gt;&lt;br /&gt;
Consider a 10Hz sine wave in analog domain. The maximum frequency present in this signal is Fm=10 Hz (obviously no doubt about it !!!). Now, to satisfy the sampling theorem that is stated above and to have a faithful representation of the signal in digital domain, the sampling frequency can be chosen as Fs &amp;gt;=20Hz. That is, we are free to choose any number above 20 Hz. Higher the sampling frequency higher is the accuracy of representation of the signal. Higher sampling frequency also implies more samples, which implies more storage space or more memory requirements.&lt;br /&gt;
&lt;br /&gt;
In time domain, the process of sampling can be viewed as multiplying the signal with a series of pulses ("pulse train) at regular interval - Ts. In frequency domain, the output of the sampling process gives the following components - Fm (original frequency content of the signal), Fs±Fm,2Fs±Fm,3Fs±Fm,4Fs±Fm and so on and on...&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-x3kvh7oACV0/TiTwMlVZ93I/AAAAAAAAEo0/EQSKRtSCWXo/s1600/Sampling_operation_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="411px" src="http://1.bp.blogspot.com/-x3kvh7oACV0/TiTwMlVZ93I/AAAAAAAAEo0/EQSKRtSCWXo/s640/Sampling_operation_1.jpg" width="640px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div closure_uid_kbi7a4="204"&gt;Now the sampled signal contains lots of unwanted frequency components (Fs±Fm,2Fs±Fm,...). If we want to convert the sampled signal back to analog domain, all we need to do is to filter out those unwanted frequency components by using a "reconstruction" filter (In this case it is a low pass filter) that is designed to select only those frequency components that are upto Fm Hz. The above process mentions only the sampling part which samples the incoming analog signal at regular intervals. Actually a quantizer will follow the sampler which will discretize ("quantize") amplitude levels of the sampled signal. The quantized amplitude levels are sent to an encoder that converts the discrete amplitude levels to binary representation (binary data). So when converting the binary data back to analog domain, we need a Digital to Analog Converter (DAC) that converts the binary data to analog signal. Now the converted signal after the DAC contains the same unwanted frequencies as well as the wanted component. Thus a reconstruction filter with proper cut-off frequency has to placed after the DAC to filter out only the wanted components.&lt;/div&gt;&lt;br /&gt;
&lt;div closure_uid_jsy5vn="227"&gt;&lt;span style="font-size: x-large;"&gt;Aliasing and Anti-aliasing:&lt;/span&gt;&lt;/div&gt;&lt;div closure_uid_jsy5vn="229"&gt;Consider a signal with two frequency components f1=10Hz - which is our desired signal and f2=20Hz - which is a noise.Lets say we sample the signal at 30Hz. The first frequency component f1=10Hz will generate following frequency components at the output of the multiplier (sampler) - 10Hz,&lt;b style="color: #cc0000;"&gt;20Hz&lt;/b&gt;,30Hz,50Hz,70Hz and so on. The second frequency component f2=20Hz will generate the following frequency components at the output of the multiplier - 20Hz,&lt;b style="color: #cc0000;"&gt;10Hz&lt;/b&gt;,50Hz,40Hz,80Hz and so on...&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-afcrIBLIeac/TiUppPvSptI/AAAAAAAAEo8/7iX44rpUOF4/s1600/Sampling_operation_3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266px" src="http://4.bp.blogspot.com/-afcrIBLIeac/TiUppPvSptI/AAAAAAAAEo8/7iX44rpUOF4/s640/Sampling_operation_3.jpg" width="640px" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;Note the 10Hz component that is generated by f2=20Hz. This 10Hz component (which is a manifestation of noisy component f2=20Hz) will interfere with our original f1=10Hz component and are indistinguishable.This 10Hz component is called "alias" of the original component f2=20Hz (noise). Similarly the 20Hz component generated by f1=10Hz component is an "alias" of f1=10Hz component. This 20Hz alias of f1=10Hz will interfere with our original component f2=20Hz and are indistinguishable. We do not need to care about the interference that occurs at 20Hz since it is a noise and any way it has to be eliminated. But we need to do something about the aliasing component generated by the f2=20Hz. Since this is a noise component, the aliasing component generated by this noise will interfere with our original f1=10Hz component and will corrupt it.&lt;br /&gt;
&lt;br /&gt;
Aliasing depends on the sampling frequency and its relationship with the frequency components. If we sample a signal at Fs, all the frequency components from Fs/2 to Fs will be alias of frequency components from 0 to Fs/2 and vice versa. This frequency - Fs/2 is called "Folding frequency" since the frequency components from Fs/2 to Fs folds back itself and interferes with the components from 0Hz to Fs/2 Hz and vice versa. Actually the aliasing zones occur on the either sides of &lt;b&gt;0.5Fs, 1.5Fs, 2.5Fs,3.5Fs&lt;/b&gt; etc... All these frequencies are also called "Folding Frequencies" that &lt;b&gt;causes frequency reversal&lt;/b&gt;. Similarly aliasing also occurs on either side of &lt;b&gt;Fs,2Fs,3Fs,4Fs..&lt;/b&gt;. &lt;b&gt;without frequency reversals&lt;/b&gt;. The following figure illustrates the concept of aliasing zones.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-TN2MDjd9mGE/TiVLgIToTQI/AAAAAAAAEpQ/SGl6zin849U/s1600/Folding_Frequency.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-TN2MDjd9mGE/TiVLgIToTQI/AAAAAAAAEpQ/SGl6zin849U/s1600/Folding_Frequency.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;In the above figure, zone 2 is just a mirror image of zone 1 with frequency reversal. Similarly zone 2 will create aliases in zone 3 (without frequency reversal), zone 3 creates mirror image in zone 4 with frequency reversal and so on...&lt;br /&gt;
&lt;br /&gt;
&lt;div closure_uid_kbi7a4="210"&gt;In the example above, the folding frequency was at Fs/2=15Hz, so all the components from 15Hz to 30Hz will be the alias of the components from 0Hz to 15Hz. Once the aliasing components enter our band of interest, it is impossible to distinguish between original components and aliased components and as a result, the original content of the signal will be lost. In order to prevent aliasing, it is necessary to remove those frequencies that are above Fs/2 before sampling the signal. This is&amp;nbsp;achieved by using an "anti-aliasing" filter that precedes the analog to digital converter.&lt;/div&gt;&lt;br /&gt;
An anti-aliasing filter is designed to restrict all the frequencies above the folding frequency Fs/2 and therefore avoids aliasing that may occur at the output of the multiplier otherwise.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-KcFptfastyk/TiUt671ZxgI/AAAAAAAAEpE/QdlovR7_E3I/s1600/Sampling_operation_4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="369px" src="http://3.bp.blogspot.com/-KcFptfastyk/TiUt671ZxgI/AAAAAAAAEpE/QdlovR7_E3I/s640/Sampling_operation_4.jpg" width="640px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Thus, a complete design of analog to digital conversion contains an anti-aliasing filter preceding the ADC and the complete design of digital to analog conversion contains a reconstruction filter succeeding the DAC. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-4M9V0jqd5us/TiaocZoKFBI/AAAAAAAAEpU/vAJ79e-lrLo/s1600/Sampling_operation_6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-4M9V0jqd5us/TiaocZoKFBI/AAAAAAAAEpU/vAJ79e-lrLo/s1600/Sampling_operation_6.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Note: Remember that both the anti-aliasing and reconstruction filters are analog filters since they operate on analog signal. So it is imperative that the sampling rate has to be chosen carefully to relax the requirements for the anti-aliasing and reconstruction filters.&lt;br /&gt;
&lt;br /&gt;
&lt;div closure_uid_jsy5vn="230"&gt;&lt;span style="font-size: x-large;"&gt;Effects of Sampling Rate:&lt;/span&gt;&lt;/div&gt;&lt;div closure_uid_jsy5vn="231"&gt;Consider a sinusoidal signal of frequency Fm=2MHz. Lets say that we sample the signal at Fs=8MHz (Fs&amp;gt;=2*Fm). The factor Fs/Fm is called&lt;b&gt; "over-sampling factor"&lt;/b&gt;. In this case we are over-sampling the signal by a factor of Fm=8MHz/2MHz = 4. Now the folding frequency will be at Fs/2 = 4MHz. Our anti-aliasing filter has to be designed to strictly cut off all the frequencies above 4MHz to prevent aliasing. &lt;/div&gt;&lt;br /&gt;
In practice, ideal brick wall response for filters is not possible. Any filter will have a transition band between pass-band and stop-band. Sharper/faster roll off transition band (or narrow transition band) filters are always desired. But such filters are always of high orders. Since both the anti-aliasing and reconstruction filters are analog filters, high order filters that provide faster roll-off transition bands are expensive (Cost increases proportionally with filter order). The system also gets bulkier with increase in filter order.Therefore, to build a relatively cheaper system, the filter requirement in-terms of width of the transition band has to be relaxed. This can be done by increasing the sampling rate or equivalently the over-sampling factor. When the sampling rate (Fs) is increased, the distance between the maximum frequency content Fm and Fs/2 will increase. This increase in the gap between the maximum frequency content of the signal and Fs/2 will ease requirements on the transition bands of the anti-aliasing analog filter.&lt;br /&gt;
&lt;br /&gt;
Following figure illustrates this concept. If we use a sampling frequency of Fs=8MHz (over-sampling factor = 4), the transition band is narrower and it calls for a higher order anti-aliasing filter (which will be very expensive and bulkier). If we increase the sampling frequency to Fs=32MHz (over-sampling factor = 32MHz/2MHz=16), the distance between the desired component and Fs/2 has greatly increased that it facilitates a relatively inexpensive anti-aliasing filter with a wider transition band.&lt;br /&gt;
&lt;br /&gt;
Thus, increasing the sampling rate of the ADC facilitates simpler lower order anti-aliasing filter as well as reconstruction filter. However, increase in the sampling rate calls for a faster sampler which makes ADC expensive. It is necessary to compromise and to strike balance between the sampling rate and the requirement of the anti-aliasing/reconstruction filter.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-CxntbdviDqc/TiVAHrw35PI/AAAAAAAAEpM/ESGDu7g02jg/s1600/Sampling_operation_5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-CxntbdviDqc/TiVAHrw35PI/AAAAAAAAEpM/ESGDu7g02jg/s1600/Sampling_operation_5.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div closure_uid_jsy5vn="232"&gt;&lt;span closure_uid_jsy5vn="234" style="font-size: x-large;"&gt;Application : Up-conversion&lt;/span&gt;&lt;/div&gt;In the above examples, the reconstruction filter was conceived as a low pass filter that is designed to pass only the baseband frequency components after reconstruction. Remember that any frequency component present in zone 1 will be reflected in all the zones (with frequency reversals in even zones and without frequency reversals in odd zones). So, if we design the reconstruction filter to be a bandpass filter selection the reflected frequencies in any of the zones expect zone 1, then we achieve up-conversion.&lt;br /&gt;
&lt;br /&gt;
&lt;div closure_uid_jsy5vn="203"&gt;In any communication system, the digital signal that comes out of a digital signal processor cannot be transmitted across as such. The processed signal (which is in the digital domain) has to be converted to analog signal and the analog signal has to be translated to appropriate frequency of operation that fits the medium of transmission. For example, in an RF system, a&amp;nbsp;baseband signal&amp;nbsp;is converted to higher frequency (up-conversion) using a multiplier and oscillator and then the high frequency signal is transmitted across the medium. If we have a band-pass reconstruction filter at the output of the DAC, we can directly achieve up-conversion (which saves us from using a multiplier and oscillator). The following figure illustrates this concept.&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-TiB572uJOFY/TiffsjBbrUI/AAAAAAAAEpc/cHi-sCiz7Z8/s1600/frequency_upconversion_example.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-TiB572uJOFY/TiffsjBbrUI/AAAAAAAAEpc/cHi-sCiz7Z8/s1600/frequency_upconversion_example.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" closure_uid_kbi7a4="146" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" closure_uid_kbi7a4="140" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: large;"&gt;Reference:&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" closure_uid_kbi7a4="140" style="clear: both; text-align: left;"&gt;&lt;a href="http://www.stanford.edu/class/ee104/shannonpaper.pdf" target="_blank"&gt;[1] Claude E. Shannon, "Communication in the presence of noise" ,Proceedings of the IRE, Vol 37, no.1,pp.10-21,Jan 1949&lt;span style="font-family: Times New Roman; font-size: xx-small;"&gt;&lt;span style="font-family: Times New Roman; font-size: xx-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" closure_uid_kbi7a4="140" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" closure_uid_kbi7a4="140" style="clear: both; text-align: left;"&gt;﻿&lt;span style="font-size: large;"&gt;Recommended Books:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Communication-Systems-MATLAB-Simulink/dp/1589096215?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communication Systems using MATLAB and Simulink" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1589096215&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1589096215" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Contemporary-Communication-Systems-Using-MATLAB/dp/0534406173?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Contemporary Communication Systems Using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534406173&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534406173" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-Digital-Signal-Processing-MATLAB/dp/0534391508?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of Digital Signal Processing Using MATLAB (with CD-ROM)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534391508&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534391508" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Signals-Systems-using-MATLAB-Chaparro/dp/0123747163?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Signals and Systems using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123747163&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123747163" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Signal-Processing-John-Proakis/dp/0131873741?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Signal Processing (4th Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0131873741&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0131873741" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-John-Proakis/dp/0071263780?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0071263780&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071263780" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-Fundamentals-Applications-2nd/dp/0130847887?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications: Fundamentals and Applications (2nd Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0130847887&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0130847887" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Wireless-Communications-Andrea-Goldsmith/dp/0521837162?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0521837162&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0521837162" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;a href="http://www.amazon.com/MIMO-Wireless-Communications-ebook/dp/B000USIVC6?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000USIVC6&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000USIVC6" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/MIMO-Theory-Implementation-Alain-Sibille/dp/0123821940?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO: From Theory to Implementation" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123821940&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123821940" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-WiMAX-Understanding-Networking-ebook/dp/B000SEGQRY?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of WiMAX: Understanding Broadband Wireless Networking" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000SEGQRY&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000SEGQRY" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;a href="http://www.amazon.com/Theory-Applications-OFDM-CDMA-ebook/dp/B000PY413I?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Theory and Applications of OFDM and CDMA: Wideband Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000PY413I&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1px" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000PY413I" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px! important; padding-left: 0px! important; padding-right: 0px! important; padding-top: 0px! important;" width="1px" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-638199729322468210?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=xAFYzCqjek0:56fWa5rx4x4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=xAFYzCqjek0:56fWa5rx4x4:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=xAFYzCqjek0:56fWa5rx4x4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=xAFYzCqjek0:56fWa5rx4x4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=xAFYzCqjek0:56fWa5rx4x4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/xAFYzCqjek0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/638199729322468210/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=638199729322468210" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/638199729322468210?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/638199729322468210?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/xAFYzCqjek0/sampling-theorem-baseband-sampling.html" title="Sampling Theorem - Baseband Sampling" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-Ty6gQz5-HJM/TifqaN1tr9I/AAAAAAAAEpg/0jUb0svjviQ/s72-c/pdf.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/07/sampling-theorem-baseband-sampling.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEACRH04eyp7ImA9WhdXE0k.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-8673849651459026886</id><published>2011-07-08T11:16:00.005+01:00</published><updated>2011-08-26T09:19:25.333+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-26T09:19:25.333+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Digital modulations" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><title>Simulation of OFDM system in Matlab - BER Vs Eb/N0 for OFDM in AWGN channel</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;To simulate an OFDM system, following design parameters are essential.&lt;br /&gt;
Lets consider the OFDM system parameters as defined in IEEE 802.11&lt;sup&gt;&lt;b&gt;[1]&lt;/b&gt;&lt;/sup&gt; specifications&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;b&gt;Given parameters in the spec:&lt;/b&gt;&lt;br /&gt;
N=64; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&lt;span style="color: #38761d;"&gt;%FFT size or total number of subcarriers (used + unused) 64&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Nsd = 48; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style="color: #38761d;"&gt;%Number of data subcarriers 48&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Nsp = 4 ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color: #38761d;"&gt; %Number of pilot subcarriers 4&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
ofdmBW = 20 * 10^6 ;&amp;nbsp; &lt;b&gt;&lt;span style="color: #38761d;"&gt;% OFDM bandwidth&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Derived Parameters:&lt;/b&gt;&lt;br /&gt;
deltaF = ofdmBW/N;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt; &lt;span style="color: #38761d;"&gt;% Bandwidth for each subcarrier - include all used and unused subcarries&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Tfft = 1/deltaF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style="color: #38761d;"&gt;% IFFT or FFT period = 3.2us &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Tgi = Tfft/4;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt; &lt;span style="color: #38761d;"&gt;% Guard interval duration - duration of cyclic prefix - 1/4th portion of OFDM &lt;/span&gt;&lt;/b&gt;symbols&lt;br /&gt;
Tsignal = Tgi+Tfft; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt; &lt;span style="color: #38761d;"&gt;% Total duration of BPSK-OFDM symbol = Guard time + FFT period&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Ncp = N*Tgi/Tfft; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&amp;nbsp;&lt;span style="color: #38761d;"&gt; %Number of symbols allocated to cyclic prefix&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Nst = Nsd + Nsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color: #38761d;"&gt; % Number of total used subcarriers&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
nBitsPerSym=Nst; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&lt;span style="color: #38761d;"&gt;%For BPSK the number of Bits per Symbol is same &lt;span class="IL_AD" id="IL_AD11"&gt;as number&lt;/span&gt; of subcarriers&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;We will use the following model for simulating the OFDM system.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-HbjTwOR8BOc/Thav338bkdI/AAAAAAAAEn0/KwlvlG0RtIQ/s1600/Cyclic_prefix_OFDM_architecture.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="448" src="http://3.bp.blogspot.com/-HbjTwOR8BOc/Thav338bkdI/AAAAAAAAEn0/KwlvlG0RtIQ/s640/Cyclic_prefix_OFDM_architecture.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;The channel in this case is modeled as a simple AWGN channel. Since the channel is considered to be an AWGN channel, there is no need for the frequency domain equalizer in the OFDM receiver ( Frequency domain equalizer will be helpful only if the channel introduces multipath fading). Since our channel is an AWGN channel, the frequency domain equalizer block in the above diagram can be removed.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;span style="color: #38761d; font-size: large;"&gt;&lt;span style="color: black;"&gt;Calculating Es/N0 or Eb/N0 for OFDM system:&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;In order to do a Monte Carlo simulation of an OFDM system, required amount of channel noise has to be generated that is representative of required Eb/N0. In Matlab it is easier to generate a Gaussian noise with zero mean and unit variance. The generated zero-mean-unit-variance noise has to be scaled accordingly to represent the required Eb/N0 or Es/N0. If we have Es/N0, the required noise can be generated from zero-mean-unit-variance-noise by,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20required%5C;noise=10%5E%7B-%5Cfrac%7BE_%7Bs%7D%7D%7BN_%7B0%7D%7D%5Cfrac%7B1%7D%7B20%7D%7D%5Ctimes%20noise" title="\dpi{150} required\;noise=10^{-\frac{E_{s}}{N_{0}}\frac{1}{20}}\times noise" /&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;Since the OFDM system transmits and received the data in symbols, it is appropriate/easier to generate required noise based on Es/N0 instead of Eb/N0 (as given above). But we are interested in plotting BER against Eb/N0. Ok!!! Then... how do we convert given Eb/N0 to Es/N0 for an OFDM system ?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;Normally for a simple BPSK system, bit energy and symbol energy are same. So Eb/N0 and Es/N0 are same for a BPSK system. But for a OFDM BPSK system, they are not the same. This is because, each OFDM symbol contains additional overhead in both time domain and frequency domain. In the time domain, the cyclic prefix is an additional overhead added to each OFDM symbol that is being transmitted. In the frequency domain, not all the subcarriers are utilized for transmitted the actual data bits, rather a few subcarriers are unused and are reserved as guard bands.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div closure_uid_4ubk0i="246"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;span closure_uid_4ubk0i="191" style="color: black; font-size: large;"&gt;Effect of Cyclic Prefix on Es/N0:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;The following diagram illustrates the concept of cyclic prefix. Each OFDM symbol contains both useful data and overhead (in the form of cyclic prefix). The bit energy represents the energy contained in the useful bits. In this case, the bit energy is spread over N bits (where N is the FFT size). On top of the useful data, additional Ncp bits are added as cyclic prefix, which forms the overhead. So if the entire OFDM symbol is considered, the symbol energy is spread across N+Ncp bits.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-9xxKdo2AXrY/ThbHaMyt1xI/AAAAAAAAEn4/SDLxZGwKTmo/s1600/Cyclic_prefix_OFDM_symbol.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-9xxKdo2AXrY/ThbHaMyt1xI/AAAAAAAAEn4/SDLxZGwKTmo/s1600/Cyclic_prefix_OFDM_symbol.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;/span&gt;&lt;br /&gt;
This relationship is given as&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20Es%28N+N_%7Bcp%7D%29=NE_%7Bb%7D" title="\dpi{150} Es(N+N_{cp})=NE_{b}" /&gt;&lt;br /&gt;
&amp;nbsp;which translates to,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20E_%7Bs%7D=%5Cfrac%7BN%7D%7BN+N_%7Bcp%7D%7DE_%7Bb%7D%20%5C;%5C;%5C;%5C;%5C;%5C;%5C;%5C;%20%281%29" title="\dpi{150} E_{s}=\frac{N}{N+N_{cp}}E_{b} \;\;\;\;\;\;\;\; (1)" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span closure_uid_4ubk0i="247" style="font-size: large;"&gt;Effect of unused subcarriers on Es/N0:&lt;/span&gt;&lt;br /&gt;
&lt;div closure_uid_4ubk0i="248"&gt;As mentioned earlier, not all the subcarriers are used for transmission. Out of the total N subcarriers, only Nst carriers are used for OFDM symbols transmission (this includes both data and pilot subcarriers). Again, in the frequency domain, the useful bit energy is spread across Nst subcarriers, whereas the symbol energy is spread across N subcarriers. This gives us another relationship between Es and Eb as given below&lt;/div&gt;&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20E_%7Bs%7D%5Ctimes%20%7BN%7D=N_%7Bst%7D%5Ctimes%20E_%7Bb%7D" title="\dpi{150} E_{s}\times {N}=N_{st}\times E_{b}" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div closure_uid_4ubk0i="249"&gt;which translates to,&lt;/div&gt;&lt;div closure_uid_4ubk0i="250"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20E_%7Bs%7D=%5Cfrac%7BN_%7Bst%7D%7D%7BN%7D%5Ctimes%20E_%7Bb%7D%20%5C;%5C;%5C;%5C;%5C;%5C;%5C;%5C;%282%29" title="\dpi{150} E_{s}=\frac{N_{st}}{N}\times E_{b} \;\;\;\;\;\;\;\;(2)" /&gt;&lt;br /&gt;
&lt;br /&gt;
From (1) and (2), the overall effect of both cyclic prefix and unused subcarriers on Es/N0 is given by&lt;br /&gt;
&lt;div closure_uid_4ubk0i="251"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Cfrac%7BE_%7Bs%7D%7D%7BN_%7B0%7D%7D=%5Cleft%20%28%20%5Cfrac%7BN%7D%7BN_%7Bcp%7D+N%7D%20%5Cright%20%29%5Cleft%20%28%20%5Cfrac%7BN_%7Bst%7D%7D%7BN%7D%20%5Cright%20%29%5Cfrac%7BE_%7Bb%7D%7D%7BN_%7B0%7D%7D%20%5C;%5C;%5C;%5C;%5C;%5C;%5C;%5C;%283%29" title="\dpi{150} \frac{E_{s}}{N_{0}}=\left ( \frac{N}{N_{cp}+N} \right )\left ( \frac{N_{st}}{N} \right )\frac{E_{b}}{N_{0}} \;\;\;\;\;\;\;\;(3)" /&gt;&lt;br /&gt;
&lt;br /&gt;
which, when converted to dB yields the following relationship.&lt;br /&gt;
&lt;br /&gt;
&lt;div closure_uid_4ubk0i="245"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Cleft%20%28%5Cfrac%7BE_%7Bs%7D%7D%7BN_%7B0%7D%7D%5Cright%20%29_%7BdB%7D=%5Cleft%20%28%20%5Cfrac%7BN%7D%7BN_%7Bcp%7D+N%7D%20%5Cright%20%29_%7BdB%7D+%5Cleft%20%28%20%5Cfrac%7BN_%7Bst%7D%7D%7BN%7D%20%5Cright%20%29_%7BdB%7D+%5Cleft%28%20%5Cfrac%7BE_%7Bb%7D%7D%7BN_%7B0%7D%7D%5Cright%29_%7BdB%7D%20%5C;%5C;%5C;%5C;%5C;%5C;%5C;%5C;%284%29" title="\dpi{150} \left (\frac{E_{s}}{N_{0}}\right )_{dB}=\left ( \frac{N}{N_{cp}+N} \right )_{dB}+\left ( \frac{N_{st}}{N} \right )_{dB}+\left( \frac{E_{b}}{N_{0}}\right)_{dB} \;\;\;\;\;\;\;\;(4)" /&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Since Ncp cylic prefix are added to the OFDM symbol, the output signal from the &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;parallel to &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;serial converter has to be boosted to compensate for the wastage of energy associated with the addition of cyclic prefix.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;To properly generate the required SNR in Matlab, the signal term at the output of the parallel to serial converter has to be scaled as follows&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?\dpi{150} Boosted\;OFDM\;signal = \sqrt{\frac{N_{cp}+N}{N}}\times OFDM\;signal" title="\dpi{150} Boosted\;OFDM\;signal = \sqrt{\frac{N_{cp}+N}{N}}\times OFDM\;signal" /&gt;&lt;br /&gt;
&lt;br /&gt;
The received signal is represented as (for the given Eb/N0)&lt;br /&gt;
&lt;span style="font-size: large;"&gt;y = boosted OFDM signal + required noise&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;u&gt;&lt;span style="font-size: large;"&gt;Arrangement of subcarriers:&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
The IEEE 802.11 specification, specifies how to arrange the given subcarriers. The 52 used subcarriers (data + pilot) are assigned numbers from -26,-25,...-2,,-1 and 1,2,...,25,26. The following figure illustrates the scheme of assigning these subcarriers to the IFFT inputs.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/--aBXOKlR6dw/ThbNWhS7z6I/AAAAAAAAEn8/QJ264C8GTSg/s1600/OFDM+Subcarrier+assignment.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://4.bp.blogspot.com/--aBXOKlR6dw/ThbNWhS7z6I/AAAAAAAAEn8/QJ264C8GTSg/s640/OFDM+Subcarrier+assignment.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;Matlab Script: &lt;a closure_uid_4ubk0i="131" href="https://sites.google.com/site/gaussianwaves/filecabinet/ofdm_transmitter_receiver_bpsk_awgn_seperate_relizations.m?attredirects=0&amp;amp;d=1"&gt;click here to download&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Simulated Result:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;From the simulated result, it can be ascertained that the OFDM- BPSK modulation has no advantage over a normal BPSK system in AWGN. OFDM proves to be effective in multipath environments (simulation of OFDM-BPSK system in a Rayleigh multipath environment will follow in future posts).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jV02r_SooBU/ThbXTgC0v4I/AAAAAAAAEoA/BhJSxfFBpaM/s1600/OFDM_simulation_BPSK_EbN0_BER.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://4.bp.blogspot.com/-jV02r_SooBU/ThbXTgC0v4I/AAAAAAAAEoA/BhJSxfFBpaM/s400/OFDM_simulation_BPSK_EbN0_BER.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;References&lt;/span&gt;&lt;br /&gt;
[1] &lt;a href="http://standards.ieee.org/getieee802/download/802.11-2007.pdf" target="_blank"&gt;IEEE 802.11 specification - "Orthogonal frequency division multiplexing (OFDM) PHY specification for the 5 GHz band" - chapter 17&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;More on OFDM:&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/05/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 2 - Basic OFDM transmitter&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal_27.html"&gt;Introduction to OFDM - part 3 - OFDM System &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/07/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 4 - Cyclic Prefix&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/07/simulation-of-ofdm-system-in-matlab-ber.html"&gt;Simulation of OFDM System - Eb/N0 Vs BER for OFDM-BPSK over AWGN Channel&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: black;"&gt;&lt;span style="font-size: large;"&gt;Recommended Books:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Communication-Systems-MATLAB-Simulink/dp/1589096215?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communication Systems using MATLAB and Simulink" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1589096215&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1589096215" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Contemporary-Communication-Systems-Using-MATLAB/dp/0534406173?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Contemporary Communication Systems Using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534406173&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534406173" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-Digital-Signal-Processing-MATLAB/dp/0534391508?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of Digital Signal Processing Using MATLAB (with CD-ROM)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534391508&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534391508" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Signals-Systems-using-MATLAB-Chaparro/dp/0123747163?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Signals and Systems using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123747163&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123747163" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Signal-Processing-John-Proakis/dp/0131873741?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Signal Processing (4th Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0131873741&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0131873741" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-John-Proakis/dp/0071263780?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0071263780&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071263780" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-Fundamentals-Applications-2nd/dp/0130847887?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications: Fundamentals and Applications (2nd Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0130847887&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0130847887" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Wireless-Communications-Andrea-Goldsmith/dp/0521837162?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0521837162&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0521837162" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/MIMO-Wireless-Communications-ebook/dp/B000USIVC6?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000USIVC6&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000USIVC6" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;a href="http://www.amazon.com/MIMO-Theory-Implementation-Alain-Sibille/dp/0123821940?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO: From Theory to Implementation" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123821940&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123821940" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-WiMAX-Understanding-Networking-ebook/dp/B000SEGQRY?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of WiMAX: Understanding Broadband Wireless Networking" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000SEGQRY&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000SEGQRY" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Theory-Applications-OFDM-CDMA-ebook/dp/B000PY413I?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Theory and Applications of OFDM and CDMA: Wideband Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000PY413I&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000PY413I" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;" width="1" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-8673849651459026886?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=r1r67rJufLc:J0VxycL7rFE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=r1r67rJufLc:J0VxycL7rFE:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=r1r67rJufLc:J0VxycL7rFE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=r1r67rJufLc:J0VxycL7rFE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=r1r67rJufLc:J0VxycL7rFE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/r1r67rJufLc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/8673849651459026886/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=8673849651459026886" title="43 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/8673849651459026886?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/8673849651459026886?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/r1r67rJufLc/simulation-of-ofdm-system-in-matlab-ber.html" title="Simulation of OFDM system in Matlab - BER Vs Eb/N0 for OFDM in AWGN channel" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-HbjTwOR8BOc/Thav338bkdI/AAAAAAAAEn0/KwlvlG0RtIQ/s72-c/Cyclic_prefix_OFDM_architecture.jpg" height="72" width="72" /><thr:total>43</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/07/simulation-of-ofdm-system-in-matlab-ber.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YCSXc4fyp7ImA9WhdTEU4.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-212197584066779905</id><published>2011-07-06T08:06:00.009+01:00</published><updated>2011-07-08T15:26:08.937+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-08T15:26:08.937+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Digital modulations" /><title>Introduction to OFDM - orthogonal Frequency division multiplexing - part 4 - Cyclic Prefix</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Consider a non-ideal channel h(t)≠δ(t), that causes delay dispersion. Delay dispersion manifests itself as Inter Symbol Interference (ISI)on each subcarrier channel due to pulse overlapping. It will also cause ICC (Inter Carrier Interference ) due to the non-orthogonality of the received signal. Adding cyclic prefix to each OFDM symbol mitigates the problems of ISI and ICC by removing them altogether.&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
Lets say, without cyclic prefix we transmit the following N values (N=Nfft=length of FFT/IFFT) for a single OFDM symbol.&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20X_0,X_1,X_2,...,X_%7BN-1%7D" title="\dpi{150} X_0,X_1,X_2,...,X_{N-1}" /&gt;&lt;br /&gt;
&lt;br /&gt;
Lets consider a cyclic prefix of length Ncp, ( where Ncp&amp;lt;N ), is formed by copying the last Ncp values from the above vector of X and adding those Ncp values to the front part of the same X vector.&lt;br /&gt;
&lt;br /&gt;
With a cyclic prefix length Ncp, ( where Ncp&amp;lt;N ), the following values constitute a single OFDM symbol&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-cUVKeddMFkU/ThbZ0eSBrnI/AAAAAAAAEoI/Xk15LZJh_T8/s1600/Cyclic_prefix_OFDM_symbol.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-cUVKeddMFkU/ThbZ0eSBrnI/AAAAAAAAEoI/Xk15LZJh_T8/s1600/Cyclic_prefix_OFDM_symbol.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
If T is the duration of the an OFDM symbol in secs, due to the addition of cyclic prefix of length Ncp, the total duration of an OFDM symbol becomes T+Tcp, where Tcp=Ncp*T/N. Therefore, the number of samples allocated for cyclic prefix can be calculated as Ncp=Tcp*N/T, where N is the FFT/IFFT length, T is the IFFT/FFT period and Tcp is the duration of cyclic prefix.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;The key ideas behind adding cyclic prefix :&lt;/span&gt;&lt;br /&gt;
1) Convert linear convolution in to circular convolution which eases the process of detecting the received signal by using a simple single tap equalizer&lt;br /&gt;
If you wish to know how the addition of cyclic prefix converts linear convolution to circular convolution, &lt;a href="http://www.technicaljar.com/?p=237" target="_blank"&gt;visit this link&lt;/a&gt;&lt;br /&gt;
2) Help combat ISI and ICC.&lt;br /&gt;
&lt;br /&gt;
When a cyclic prefix of length Ncp is added to the OFDM symbol, the output of the channel (r) is given by circular convolution of channel impulse response (h) and the OFDM symbols with cyclic prefix (x).&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20r=h%5Ccircledast%20x" title="\dpi{150} r=h\circledast x" /&gt;&lt;br /&gt;
&lt;br /&gt;
As we know, for the discrete signals, circular convolution in the time domain translates to multiplication in the frequency domain.&lt;br /&gt;
&lt;br /&gt;
Thus the above equation translates to&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20R=HX" title="\dpi{150} R=HX" /&gt;&lt;br /&gt;
in the frequency domain.&lt;br /&gt;
&lt;br /&gt;
At the receiver, R is the received signal (in Frequency domain) and our goal is to estimate the transmitted signal (X) from the received signal R. From the above equation, the problem of detecting the transmitted signal at the receiver side translate to a simple equalization equation as follows&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Chat%7BX%7D=%5Cfrac%7BR%7D%7BH%7D" title="\dpi{150} \hat{X}=\frac{R}{H}" /&gt;&lt;br /&gt;
&lt;br /&gt;
After the FFT performed at the receiver side (i.e. after the FFT block in the receiver side), a single tap equalizer (which essentially implements the above equation) is used to estimate the transmitted OFDM symbol. It also corrects the phase and equalizes the amplitude.&lt;br /&gt;
&lt;br /&gt;
A basic OFDM architecture with Cyclic Prefix is given below. (In the following diagram, symbols represented by small case letters are &lt;u&gt;assumed&lt;/u&gt; to be in time domain, whereas the symbols represented by uppercase letters are &lt;u&gt;assumed&lt;/u&gt; to be in frequency domain)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-qPPqevli9m0/ThbZoOTXxVI/AAAAAAAAEoE/R-vYbXI23Yc/s1600/Cyclic_prefix_OFDM_architecture.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="449" src="http://1.bp.blogspot.com/-qPPqevli9m0/ThbZoOTXxVI/AAAAAAAAEoE/R-vYbXI23Yc/s640/Cyclic_prefix_OFDM_architecture.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
The IEEE specs specify the length of the Cyclic prefix in terms of its duration.&lt;br /&gt;
Lets see how to convert the specified duration (Tcp) in to actual number of samples assigned for cyclic prefix (Ncp).&lt;br /&gt;
&lt;br /&gt;
Lets see an example of deriving Ncp from IEEE 802.11 spec &lt;sup&gt;&lt;b&gt; [1]&lt;/b&gt;&lt;/sup&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Given parameters in the spec:&lt;/b&gt;&lt;br /&gt;
N=64; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&lt;span style="color: #38761d;"&gt;%FFT size or total number of subcarriers (used + unused) 64&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Nsd = 48; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style="color: #38761d;"&gt;%Number of data subcarriers 48&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Nsp = 4 ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color: #38761d;"&gt; %Number of pilot subcarriers 4&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
ofdmBW = 20 * 10^6 ;&amp;nbsp; &lt;b&gt;&lt;span style="color: #38761d;"&gt;% OFDM bandwidth&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Derived Parameters:&lt;/b&gt;&lt;br /&gt;
deltaF = ofdmBW/N;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;  &lt;span style="color: #38761d;"&gt;% Bandwidth for each subcarrier - include all used and unused subcarries&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Tfft = 1/deltaF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style="color: #38761d;"&gt;% IFFT or FFT period = 3.2us &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Tgi = Tfft/4;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt; &lt;span style="color: #38761d;"&gt;% Guard interval duration - duration of cyclic prefix - 1/4th portion of OFDM &lt;/span&gt;&lt;/b&gt;symbols&lt;br /&gt;
Tsignal = Tgi+Tfft; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt; &lt;span style="color: #38761d;"&gt;% Total duration of BPSK-OFDM symbol = Guard time + FFT period&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Ncp = N*Tgi/Tfft; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&amp;nbsp;&lt;span style="color: #38761d;"&gt; %Number of symbols allocated to cyclic prefix&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Nst = Nsd + Nsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color: #38761d;"&gt;  % Number of total used subcarriers&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
nBitsPerSym=Nst; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&lt;span style="color: #38761d;"&gt;%For BPSK the number of Bits per Symbol is same as number of subcarriers&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;References:&lt;/span&gt;&lt;br /&gt;
[1] &lt;a href="http://standards.ieee.org/getieee802/download/802.11-2007.pdf" target="_blank"&gt;IEEE  802.11 specification - "Orthogonal frequency division multiplexing  (OFDM) PHY specification for the 5 GHz band" - chapter 17&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;More on OFDM:&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/05/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 2  - Basic OFDM transmitter&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal_27.html"&gt;Introduction to OFDM - part 3 - OFDM System &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/07/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 4 - Cyclic Prefix&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/07/simulation-of-ofdm-system-in-matlab-ber.html"&gt;Simulation of OFDM System - Eb/N0 Vs BER for OFDM-BPSK over AWGN Channel&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-212197584066779905?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=iZf5vQTFJ4k:_rhoMV5N99s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=iZf5vQTFJ4k:_rhoMV5N99s:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=iZf5vQTFJ4k:_rhoMV5N99s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=iZf5vQTFJ4k:_rhoMV5N99s:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=iZf5vQTFJ4k:_rhoMV5N99s:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/iZf5vQTFJ4k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/212197584066779905/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=212197584066779905" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/212197584066779905?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/212197584066779905?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/iZf5vQTFJ4k/introduction-to-ofdm-orthogonal.html" title="Introduction to OFDM - orthogonal Frequency division multiplexing - part 4 - Cyclic Prefix" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-cUVKeddMFkU/ThbZ0eSBrnI/AAAAAAAAEoI/Xk15LZJh_T8/s72-c/Cyclic_prefix_OFDM_symbol.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/07/introduction-to-ofdm-orthogonal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UFRXk8cCp7ImA9WhdTEU4.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-6178122319723608890</id><published>2011-06-27T11:03:00.003+01:00</published><updated>2011-07-08T15:26:54.778+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-08T15:26:54.778+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Digital modulations" /><title>Introduction to OFDM - orthogonal Frequency division multiplexing - part 3</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/div&gt;&lt;br /&gt;
In the previous post, the architecture of an OFDM transmitter was described using sinusoidal components. Generally, an OFDM signal can be represented as&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20OFDM%5C;%20signal%20=%20c%28t%29=%5Csum_%7Bn=0%7D%5E%7BN-1%7Ds_%7Bn%7D%28t%29sin%282%5Cpi%20f_%7Bn%7Dt%20%29" title="\dpi{150} OFDM\; signal = c(t)=\sum_{n=0}^{N-1}s_{n}(t)sin(2\pi f_{n}t )" /&gt;&lt;br /&gt;
s(t) = symbols mapped to chosen constellation (BPSK/QPSK/QAM etc..,)&lt;br /&gt;
Fn = orthogonal frequency&lt;br /&gt;
&lt;br /&gt;
This equation can be thought of as an IFFT process ( Inverse Fast Fourier Transform). The Fourier transform breaks a signal into different frequency bins by multiplying the signal with a series of sinusoids. This essentially translates the signal from time domain to frequency domain. But, we always view IFFT as a conversion process from frequency domain to time domain. &lt;br /&gt;
&lt;br /&gt;
FFT is represented by&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20X%28k%29=%5Csum_%7Bn=0%7D%5E%7BN-1%7Dx%28n%29sin%28%5Cfrac%7B2%5Cpi%20kn%7D%7BN%7D%29+j%5Csum_%7Bn=0%7D%5E%7BN-1%7Dx%28n%29cos%28%5Cfrac%7B2%5Cpi%20kn%7D%7BN%7D%29" title="\dpi{150} X(k)=\sum_{n=0}^{N-1}x(n)sin(\frac{2\pi kn}{N})+j\sum_{n=0}^{N-1}x(n)cos(\frac{2\pi kn}{N})" /&gt;&lt;br /&gt;
&lt;br /&gt;
where as its dual , IFFT is given by&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20x%28n%29=%5Csum_%7Bn=0%7D%5E%7BN-1%7DX%28k%29sin%28%5Cfrac%7B2%5Cpi%20kn%7D%7BN%7D%29-j%5Csum_%7Bn=0%7D%5E%7BN-1%7DX%28k%29cos%28%5Cfrac%7B2%5Cpi%20kn%7D%7BN%7D%29" title="\dpi{150} x(n)=\sum_{n=0}^{N-1}X(k)sin(\frac{2\pi kn}{N})-j\sum_{n=0}^{N-1}X(k)cos(\frac{2\pi kn}{N})" /&gt;&lt;br /&gt;
&lt;br /&gt;
The equation for FFT and IFFT differ by the co-efficients they take and the minus sign. Both equation does the same thing. They multiply the incoming signal with a series of sinusoids and separates them into bins. &lt;br /&gt;
In fact, FFT and IFFT are dual and behaves in a similar way.IFFT and FFT blocks are interchangeable.&lt;br /&gt;
&lt;br /&gt;
Since the OFDM signal ( c(t) in the equation above ) is in time domain, IFFT is the appropriate choice to use in the transmitter, which can be thought of as converting frequency domain samples to time domain samples. Well, you might ask : s(t) is not in frequency domain and they are already in time domain; so whats the need to convert it into time domain again ? The answer is IFFT/FFT equation comes handy in implementing the conversion process and we can eliminate the individual sinusoidal multipliers required in the transmitter/receiver side. The following figure illustrates, how the use of IFFT in the transmitter eliminates the need for separate sinusoidal converters. Always remember that IFFT and FFT blocks in the transmitter are interchangeable as long as their duals are used in receiver.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-uKrMtcFdi30/TghH1csdN4I/AAAAAAAAEnY/gOWiXfhPleU/s1600/IFFT_OFDM_implementation.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="457" src="http://3.bp.blogspot.com/-uKrMtcFdi30/TghH1csdN4I/AAAAAAAAEnY/gOWiXfhPleU/s640/IFFT_OFDM_implementation.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The entire architecture of a basic OFDM system with both transmitter and receiver will look like this&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-g8OUBM8qoNU/TghKdRR9KgI/AAAAAAAAEng/E-PK2n-AHbo/s1600/OFDM_Transmitter_Receiver.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="280" src="http://2.bp.blogspot.com/-g8OUBM8qoNU/TghKdRR9KgI/AAAAAAAAEng/E-PK2n-AHbo/s400/OFDM_Transmitter_Receiver.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-AU5rREjOcCM/TghKOLBaKeI/AAAAAAAAEnc/4IKvjfU4lU4/s1600/OFDM_Transmitter_Receiver.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
An OFDM system is defined by IFFT/FFT length - N ,the underlying modulation technique ( BPSK/QPSK/QAM), supported data rate, etc..,. The FFT/IFFT length N defines the number of total subcarriers present in the OFDM system. For example, an OFDM system with N=64 provides 64 subcarriers. In reality, not all the subcarriers are utilized for data transmission. Some subcarriers are reserved for pilot carriers (used for channel estimation/equalization and to combat magnitude and phase errors in the receiver) and some are left unused to act as guard band. OFDM system do not transmit any data on the subcarriers that are near the two ends of the transmission band ( Not necessarily at the ends of the bands, implementation may differ). These subcarriers are collectively called guard band. The reservation of subcarriers to guard bands helps to reduce the out of band radiation and thus eases the requirements on transmitter front-end filters.The subcarriers in the guard band are also called Null subcarriers or virtual subcarriers.&lt;br /&gt;
&lt;br /&gt;
For example IEEE 802.11 standard&lt;b&gt;&lt;sup style="color: #6aa84f;"&gt;[1]&lt;/sup&gt; &lt;/b&gt;specifies the following parameters for its OFDM physical layer.&lt;br /&gt;
&lt;br /&gt;
FFT/IFFT size = 64 ( implies 64 subcarriers in total = used + unused = Nfft)&lt;br /&gt;
Number of data subcarriers = 48 ( Nd)&lt;br /&gt;
Number of pilot subcarriers = 4 (Np)&lt;br /&gt;
&lt;br /&gt;
Derived parameters from the above specification. &lt;br /&gt;
Number of total USED subcarriers = 52 ( Nu = Nd+ Np )&lt;br /&gt;
Number of total UNUSED subcarriers = 12 ( Nun = Nfft - Nu ).&lt;br /&gt;
&lt;br /&gt;
According to the spec, these 52 used subcarriers are distributed in the following way. The 52 used subcarriers are named as 1,2,3,...,26 and -1,-2,-3,...,-26. The used subcarriers 1 to 26 are mapped to 1 to 26 of IFFT inputs and the subcarriers -1,-2,..,-26 are mapped to the IFFT inputs 38 to 63. The remaining IFFT inputs 27 to 37 and the input 0 (dc input) are set to 0 .In this manner the 12 null subcarriers are mapped to IFFT inputs.&lt;br /&gt;
&lt;br /&gt;
[1] &lt;a href="http://standards.ieee.org/getieee802/download/802.11-2007.pdf" target="_blank"&gt;IEEE 802.11 specification - "Orthogonal frequency division multiplexing (OFDM) PHY specification for the 5 GHz band" - chapter 17&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;More on OFDM:&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/05/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 2  - Basic OFDM transmitter&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal_27.html"&gt;Introduction to OFDM - part 3 - OFDM System &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/07/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 4 - Cyclic Prefix&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/07/simulation-of-ofdm-system-in-matlab-ber.html"&gt;Simulation of OFDM System - Eb/N0 Vs BER for OFDM-BPSK over AWGN Channel&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-6178122319723608890?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=7zhOhxTf6y0:YpbZDq0IE8k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=7zhOhxTf6y0:YpbZDq0IE8k:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=7zhOhxTf6y0:YpbZDq0IE8k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=7zhOhxTf6y0:YpbZDq0IE8k:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=7zhOhxTf6y0:YpbZDq0IE8k:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/7zhOhxTf6y0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/6178122319723608890/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=6178122319723608890" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/6178122319723608890?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/6178122319723608890?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/7zhOhxTf6y0/introduction-to-ofdm-orthogonal_27.html" title="Introduction to OFDM - orthogonal Frequency division multiplexing - part 3" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-uKrMtcFdi30/TghH1csdN4I/AAAAAAAAEnY/gOWiXfhPleU/s72-c/IFFT_OFDM_implementation.jpg" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal_27.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UHQH0yeSp7ImA9WhdTEU4.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-3146459544463898882</id><published>2011-06-08T11:09:00.006+01:00</published><updated>2011-07-08T15:27:11.391+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-08T15:27:11.391+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Digital modulations" /><title>Introduction to OFDM - orthogonal Frequency division multiplexing - part 2</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-r8kYZWjmTOE/Te9FHRLRbYI/AAAAAAAAEmM/uH3ijKO9-aQ/s1600/OFDM_transmitter_simple.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;Consider that we want to send the following data bits using OFDM : D = {d0,d1,d2,...). The first thing that should be considered in designing the OFDM transmitter is the number of subcarriers required to send the given data. As a generic case, lets assume that we have N subcarriers. Each subcarriers are centered at frequencies that are orthogonal to each other (usually multiples of frequencies).&lt;br /&gt;
&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
The second design parameter could be the modulation format that we wish to use. An OFDM signal can be constructed using anyone of the following digital modulation techniques namely BPSK, QPSK, QAM etc..,&lt;br /&gt;
The data (D) has to be first converted from serial stream into parallel stream depending on the number of sub-carriers (N). Since we assumed that there are N subcarriers allowed for the OFDM transmission, we name the subcarriers from 0 to N-1. Now, the Serial to Parallel converter takes the serial stream of input bits and outputs N parallel streams (indexed from 0 to N-1). These parallel streams are individually converted into the required digital modulation format (BPSK, QPSK, QAM etc..,). Lets call this output S&lt;sub&gt;0&lt;/sub&gt;,S&lt;sub&gt;1&lt;/sub&gt;,..S&lt;sub&gt;N&lt;/sub&gt;. The conversion of parallel data (D) into the digitally modulated data (S) is usually achieved by a constellation mapper, which is essentially a look up table (LUT). Once the data bits are converted to required modulation format, they need to be superimposed on the required orthogonal subcarriers for transmission. This is achieved by a series of N parallel sinusoidal oscillators tuned to N orthogonal frequencies (f&lt;sub&gt;0&lt;/sub&gt;,f&lt;sub&gt;1&lt;/sub&gt;,...f&lt;sub&gt;N-1&lt;/sub&gt;). Finally, the resultant output from the N parallel arms are summed up together to produce the OFDM signal.&lt;br /&gt;
&lt;br /&gt;
The following figure illustrates the basic concept of OFDM transmission (note: In order to give a simple explanation to illustrate the underlying concept,the usual IFFT/FFT blocks that are used in actual OFDM system, are not used in the block diagram) &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;OFDM Transmitter: (click to enlarge)&lt;/span&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-r8kYZWjmTOE/Te9FHRLRbYI/AAAAAAAAEmM/uH3ijKO9-aQ/s1600/OFDM_transmitter_simple.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="264" src="http://1.bp.blogspot.com/-r8kYZWjmTOE/Te9FHRLRbYI/AAAAAAAAEmM/uH3ijKO9-aQ/s640/OFDM_transmitter_simple.jpg" width="640" /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Example: (click images to enlarge)&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;The first example illustrates the concept of OFDM transmission with BPSK modulation as its underlying modulation format. The second example illustrates the OFDM transmission with pi/4 shifted QPSK modulation. Here 5 orthogonal subcarriers are assumed for the OFDM transmission.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-45dAKGwmqcM/Te9KP1bcWHI/AAAAAAAAEmY/9P27QbZeLSY/s1600/BPSK_OFDM_Transmit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="449" src="http://4.bp.blogspot.com/-45dAKGwmqcM/Te9KP1bcWHI/AAAAAAAAEmY/9P27QbZeLSY/s640/BPSK_OFDM_Transmit.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-eZNpZEkAV0s/Te9KUQXj6uI/AAAAAAAAEmc/Afu04bafjHg/s1600/QPSK_OFDM_Transmit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="466" src="http://4.bp.blogspot.com/-eZNpZEkAV0s/Te9KUQXj6uI/AAAAAAAAEmc/Afu04bafjHg/s640/QPSK_OFDM_Transmit.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;More on OFDM:&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/05/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 2  - Basic OFDM transmitter&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal_27.html"&gt;Introduction to OFDM - part 3 - OFDM System &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/07/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 4 - Cyclic Prefix&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/07/simulation-of-ofdm-system-in-matlab-ber.html"&gt;Simulation of OFDM System - Eb/N0 Vs BER for OFDM-BPSK over AWGN Channel&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-3146459544463898882?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=tbnehBIj2HY:nApbDjRut70:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=tbnehBIj2HY:nApbDjRut70:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=tbnehBIj2HY:nApbDjRut70:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=tbnehBIj2HY:nApbDjRut70:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=tbnehBIj2HY:nApbDjRut70:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/tbnehBIj2HY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/3146459544463898882/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=3146459544463898882" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/3146459544463898882?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/3146459544463898882?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/tbnehBIj2HY/introduction-to-ofdm-orthogonal.html" title="Introduction to OFDM - orthogonal Frequency division multiplexing - part 2" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-r8kYZWjmTOE/Te9FHRLRbYI/AAAAAAAAEmM/uH3ijKO9-aQ/s72-c/OFDM_transmitter_simple.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UARXc7fSp7ImA9WhdTEU4.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-5432634107745810159</id><published>2011-05-24T08:00:00.004+01:00</published><updated>2011-07-08T15:27:24.905+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-08T15:27:24.905+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Digital modulations" /><title>Introduction to OFDM - orthogonal Frequency division multiplexing</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: large;"&gt;OFDM&lt;/span&gt; &lt;br /&gt;
In modulations, information is mapped on to changes in frequency, phase or amplitude (or a combination of them) of a carrier signal. Multiplexing deals with allocation/accommodation of users in a given bandwidth (i.e. it deals with allocation of available resource).&lt;br /&gt;
&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;br /&gt;
OFDM is a combination of modulation and multiplexing. In this technique, the given resource (bandwidth) is shared among individual modulated data sources. Normal modulation techniques (like AM, PM, FM, BPSK, QPSK, etc.., ) are single carrier modulation techniques, in which the incoming information is modulated over a single carrier. OFDM is a multicarrier modulation technique, which employs several carriers, within the allocated bandwidth, to convey the information from source to destination. Each carrier may employ one of the several available digital modulation techniques (BPSK, QPSK, QAM etc..,).&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Why OFDM&lt;/span&gt; &lt;br /&gt;
OFDM is very effective for communication over channels with frequency selective fading ( different frequency components of the signal experience different fading). It is very difficult to handle frequency selective fading in the receiver , in which case, the design of the receiver is hugely complex. Instead of trying to mitigate frequency selective fading as a whole (which occurs when a&amp;nbsp; huge bandwidth is allocated for the data transmission over a frequency selective fading channel), OFDM mitigates the problem by converting the entire frequency selective fading channel into small flat fading channels (as seen by the individual subcarriers). Flat fading is easier to combat (compared to frequency selective fading) by employing simple error correction and equalization schemes.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Difference between FDM and OFDM:&lt;/span&gt;&lt;br /&gt;
OFDM is a special case of FDM ( Frequency Division Multiplexing). In FDM, the given bandwidth is subdivided among a set of carriers. There is no relationship between the carrier frequencies in FDM. For example, consider that the given bandwidth has to be divided among 5 carriers (say a,b,c,d,e). There is no relationship between the subcarriers ; a,b,c,d and e can anything within the given bandwidth.&lt;br /&gt;
&lt;br /&gt;
If the carriers are harmonics, say (b=2a,c=3a,d=4a,d=5a , integral multiple of fundamental component a ) then they become orthogonal. This is a special case of FDM, which is called OFDM (as implied by the word - 'orthogonal' in OFDM).&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;More on OFDM:&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/05/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 2  - Basic OFDM transmitter&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/06/introduction-to-ofdm-orthogonal_27.html"&gt;Introduction to OFDM - part 3 - OFDM System &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/07/introduction-to-ofdm-orthogonal.html"&gt;Introduction to OFDM - part 4 - Cyclic Prefix&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/07/simulation-of-ofdm-system-in-matlab-ber.html"&gt;Simulation of OFDM System - Eb/N0 Vs BER for OFDM-BPSK over AWGN Channel&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-5432634107745810159?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4CHB2lIFv80:9u0Pb2JqoEg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4CHB2lIFv80:9u0Pb2JqoEg:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4CHB2lIFv80:9u0Pb2JqoEg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4CHB2lIFv80:9u0Pb2JqoEg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=4CHB2lIFv80:9u0Pb2JqoEg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/4CHB2lIFv80" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/5432634107745810159/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=5432634107745810159" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/5432634107745810159?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/5432634107745810159?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/4CHB2lIFv80/introduction-to-ofdm-orthogonal.html" title="Introduction to OFDM - orthogonal Frequency division multiplexing" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/05/introduction-to-ofdm-orthogonal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cBRXY_eip7ImA9WhZaEUs.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-4812413256534976219</id><published>2011-05-06T08:46:00.002+01:00</published><updated>2011-06-27T11:04:14.842+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-27T11:04:14.842+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Digital modulations" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><title>Eb/N0 Vs BER  for BPSK over Rayleigh Channel and AWGN Channel</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The phenomenon of &lt;a href="http://gaussianwaves.blogspot.com/2010/02/fading-channels-rayleigh-fading.html"&gt;Rayleigh Flat fading&lt;/a&gt; and its simulation using &lt;a href="http://gaussianwaves.blogspot.com/2011/05/simulation-of-rayleigh-fading-clarkes.html"&gt;Clarke's model &lt;/a&gt;and&lt;a href="http://gaussianwaves.blogspot.com/2010/02/rayleigh-fading-simulation-youngs-model.html"&gt; Young's model &lt;/a&gt;were discussed in the previous posts. The performance (Eb/N0 Vs BER) of BPSK modulation (with coherent detection) over Rayleigh Fading channel and its comparison over AWGN channel is discussed in this post.&lt;br /&gt;
&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;br /&gt;
We first investigate the non-coherent detection of BPSK over Rayleigh Fading channel and then we move on to the coherent detection. For both the cases, we consider a simple flat fading Rayleigh channel (modeled as a - single tap filter - with complex impulse response - h). The channel also adds AWGN noise to the signal samples after it suffers from Rayleigh Fading.&lt;br /&gt;
&lt;br /&gt;
The received signal y can be represented as&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20y=hx+n" title="\dpi{150} y=hx+n" /&gt;&lt;br /&gt;
&lt;br /&gt;
where n&amp;nbsp; is the noise contributed by AWGN which is Gaussian distributed with zero mean and unit variance and h is the Rayleigh Fading response with zero mean and unit variance. (For a simple AWGN channel without Rayleigh Fading the received signal is represented as y=x+n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Non-Coherent Detection:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;/span&gt;&lt;br /&gt;
In non-coherent detection, prior knowledge of the channel impulse response ("h" in this case) is not know at the receiver. Consider the BPSK signaling scheme with x=+/- a being transmitted over such a channel as described above. This signaling scheme fails completely (in non coherent detection scheme), even in the absence of noise, since the phase of the received signal y is uniformly distributed between 0 and 2pi regardless of whether x[m]=+a or x[m]=-a is transmitted. So the non coherent detection of the BPSK signaling is not a suitable method of detection especially in a Fading environment.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Coherent Detection:&lt;/span&gt;&lt;br /&gt;
In coherent detection, the receiver has sufficient knowledge about the channel impulse response.Techniques like pilot transmissions are used to estimate the channel impulse response before the actual data transmission could begin. Lets consider that the impulse response estimate at receiver is perfect and accurate.&lt;br /&gt;
The transmitted symbols ('x') can be obtained from the received signal ('y') by the process of equalization as given below.&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Cwidehat%7By%7D=%5Cfrac%7By%7D%7Bh%7D=%5Cfrac%7Bhx+n%7D%7Bh%7D=x+z" title="\dpi{150} \widehat{y}=\frac{y}{h}=\frac{hx+n}{h}=x+z" /&gt;&lt;br /&gt;
&lt;br /&gt;
here z is still an AWGN noise except for the scaling factor 1/h. Now the detection of x can be performed in a &lt;br /&gt;
manner similar to the detection in AWGN channels.&lt;br /&gt;
&lt;br /&gt;
The input binary bits to the BPSK modulation system&amp;nbsp; are detected as&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Cbegin%7Bmatrix%7D%20r=real%28%5Cwidehat%7By%7D%29=real%28x+z%29%5C%5C%20%5Chat%7Bd%7D=%201%20%5C;%20if%20%5C;%20r%20%3E%200%5C%5C%20%5Chat%7Bd%7D=%200%20%5C;%20if%20%5C;%20r%20%3C%200%5C%5C%20%5Cend%7Bmatrix%7D" title="\dpi{150} \begin{matrix} r=real(\widehat{y})=real(x+z)\\ \hat{d}= 1 \; if \; r &amp;gt; 0\\ \hat{d}= 0 \; if \; r &amp;lt; 0\\ \end{matrix}" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Theoretical BER:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The theoretical BER for BPSK modulation scheme over Rayleigh fading channel (with AWGN noise) is given by&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20P_%7Bb%7D=%5Cfrac%7B1%7D%7B2%7D%5Cleft%20%28%201-%5Csqrt%7B%5Cfrac%7BE_%7Bb%7D/N_%7B0%7D%7D%7B1+E_%7Bb%7D/N_%7B0%7D%7D%7D%29%5Cright%20%29" title="\dpi{150} P_{b}=\frac{1}{2}\left ( 1-\sqrt{\frac{E_{b}/N_{0}}{1+E_{b}/N_{0}}})\right )" /&gt;&lt;br /&gt;
&lt;br /&gt;
The theoretical BER for BPSK modulation scheme over an AWGN channel is given by&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20P_%7Bb%7D=%5Cfrac%7B1%7D%7B2%7Derfc%28%5Csqrt%7BE_%7Bb%7D/N_%7B0%7D%7D%29" title="\dpi{150} P_{b}=\frac{1}{2}erfc(\sqrt{E_{b}/N_{0}})" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Simulation :&lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/BPSK_Rayleigh.m?attredirects=0&amp;amp;d=1"&gt; (click here to download Matlab code)&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;The following model is used for the simulation of BPSK over Rayleigh Fading channel and its comparison with AWGN channel&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-AiUmd2UwhQg/TcOk3knefEI/AAAAAAAAEmE/3fni_QJBSGU/s1600/BPSK_Rayleigh_AWGN_Scheme.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-AiUmd2UwhQg/TcOk3knefEI/AAAAAAAAEmE/3fni_QJBSGU/s1600/BPSK_Rayleigh_AWGN_Scheme.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-AiUmd2UwhQg/TcOk3knefEI/AAAAAAAAEmE/3fni_QJBSGU/s1600/BPSK_Rayleigh_AWGN_Scheme.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-Ci-EpziYCbc/TcOknx6CIlI/AAAAAAAAEmA/9k6ENtDciOg/s1600/BPSK_Rayleigh_AWGN_Scheme.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;The Simulated and theoretical performance curves (Eb/N0 Vs BER) for BPSK modulation over Rayleigh Fading channel and the AWGN is given below.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-MktdBPY3bfo/TcOliQPyMpI/AAAAAAAAEmI/4Xfc9h5WLsc/s1600/BPSK_Rayleigh_AWGN_EbN0_BER.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="http://4.bp.blogspot.com/-MktdBPY3bfo/TcOliQPyMpI/AAAAAAAAEmI/4Xfc9h5WLsc/s400/BPSK_Rayleigh_AWGN_EbN0_BER.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="color: #cc0000;"&gt;Recommended Books:&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Communication-Systems-MATLAB-Simulink/dp/1589096215?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communication Systems using MATLAB and Simulink" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1589096215&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1589096215" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Contemporary-Communication-Systems-Using-MATLAB/dp/0534406173?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Contemporary Communication Systems Using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534406173&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534406173" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-Digital-Signal-Processing-MATLAB/dp/0534391508?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of Digital Signal Processing Using MATLAB (with CD-ROM)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534391508&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534391508" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Signals-Systems-using-MATLAB-Chaparro/dp/0123747163?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Signals and Systems using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123747163&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123747163" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Signal-Processing-John-Proakis/dp/0131873741?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Signal Processing (4th Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0131873741&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0131873741" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-John-Proakis/dp/0071263780?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0071263780&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071263780" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-Fundamentals-Applications-2nd/dp/0130847887?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications: Fundamentals and Applications (2nd Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0130847887&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0130847887" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Wireless-Communications-Andrea-Goldsmith/dp/0521837162?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0521837162&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0521837162" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/MIMO-Wireless-Communications-ebook/dp/B000USIVC6?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000USIVC6&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000USIVC6" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/MIMO-Theory-Implementation-Alain-Sibille/dp/0123821940?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO: From Theory to Implementation" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123821940&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123821940" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-WiMAX-Understanding-Networking-ebook/dp/B000SEGQRY?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of WiMAX: Understanding Broadband Wireless Networking" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000SEGQRY&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000SEGQRY" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Theory-Applications-OFDM-CDMA-ebook/dp/B000PY413I?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Theory and Applications of OFDM and CDMA: Wideband Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000PY413I&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000PY413I" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-4812413256534976219?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=OjDt5ECslqk:DYeYa2-jEbk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=OjDt5ECslqk:DYeYa2-jEbk:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=OjDt5ECslqk:DYeYa2-jEbk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=OjDt5ECslqk:DYeYa2-jEbk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=OjDt5ECslqk:DYeYa2-jEbk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/OjDt5ECslqk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/4812413256534976219/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=4812413256534976219" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/4812413256534976219?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/4812413256534976219?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/OjDt5ECslqk/simulation-of-ebn0-vs-ber-for-bpsk-over.html" title="Eb/N0 Vs BER  for BPSK over Rayleigh Channel and AWGN Channel" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-AiUmd2UwhQg/TcOk3knefEI/AAAAAAAAEmE/3fni_QJBSGU/s72-c/BPSK_Rayleigh_AWGN_Scheme.jpg" height="72" width="72" /><thr:total>7</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/05/simulation-of-ebn0-vs-ber-for-bpsk-over.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cAQnc_fCp7ImA9WhZaEUs.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-6855481292220598176</id><published>2011-05-02T07:22:00.001+01:00</published><updated>2011-06-27T11:04:03.944+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-27T11:04:03.944+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Probability" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><title>Simulation of Rayleigh Fading ( Clarke's Model - sum of sinusoids method)</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;A multipath fading channel can be modeled as a FIR (Finite Impulse Response) filter with the following impulse response.&lt;br /&gt;
&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-tB1r6nGUVKw/Tb1RgKKxVQI/AAAAAAAAElg/p3ANpELUWpg/s1600/multipath_FIR_equation_1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="75" src="http://3.bp.blogspot.com/-tB1r6nGUVKw/Tb1RgKKxVQI/AAAAAAAAElg/p3ANpELUWpg/s400/multipath_FIR_equation_1.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
where h(τ,t) is the time varying impulse response of the multipath fading channel having L multipaths&lt;br /&gt;
and h&lt;sub&gt;i&lt;/sub&gt;(t) and τ&lt;sub&gt;i&lt;/sub&gt;(t) denote the time varying complex gain and excess delay of the i-th path.&lt;br /&gt;
&lt;br /&gt;
The above mentioned impulse response can be implemented as a FIR filter as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-4CaBaYjzWos/Tb1cJDxMwMI/AAAAAAAAElk/BT_K_JWRiPo/s1600/time_Varying_FIR_filter_multipath_fading.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="140" src="http://3.bp.blogspot.com/-4CaBaYjzWos/Tb1cJDxMwMI/AAAAAAAAElk/BT_K_JWRiPo/s400/time_Varying_FIR_filter_multipath_fading.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The channel under consideration can be modeled as a multipath fading  channel in which the impulse response may follow distributions like  Rayleigh distribution ( in which there is no Line of Sight (LOS) ray  between transmitter and receiver) or as Rician distribution ( dominant  LOS path exist between transmitter and receiver), Nagami distribution,  Weibull distribution etc. &lt;br /&gt;
&lt;br /&gt;
Different methods of simulation techniques were proposed to simulate/model multipath channels. Some of the models include clarke's reference model, Jake's model, filteres gaussian noise model etc. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A Rayleigh fading channel (flat fading channel) is considered in this text.For simplicity we fix the excess delays τ&lt;sub&gt;i&lt;/sub&gt;(t) in the above equation and we generate h&lt;sub&gt;i&lt;/sub&gt;(t) that follows Rayleigh distribution. In this simulation Clarke's Rayleigh fading model is used. This model is also called mathematical reference model and is commonly considered as a computationally inefficient model compared to Jake's Rayleigh Fading simulator.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Theory of Rayleigh Fading:&lt;/span&gt;&lt;br /&gt;
Lets denote the complex impulse response h(t) of the flat fading channel&amp;nbsp; as follows :&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20h%28t%29%20=%20h_%7BI%7D%28t%29+jh_%7BQ%7D%28t%29" title="\dpi{200} h(t) = h_{I}(t)+jh_{Q}(t)" /&gt;&lt;br /&gt;
&lt;br /&gt;
where hI(t) and hQ(t) are zero mean gaussian distributed. Therefore the fading envelope is Rayleigh distributed and is given by&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Cleft%20%7Ch%28t%29%20%5Cright%20%7C%20=%20%5Csqrt%7B%5Cleft%20%7Ch_%7BI%7D%28t%29%20%5Cright%20%7C%5E2%20+%20%5Cleft%20%7Ch_%7BQ%7D%28t%29%20%5Cright%20%7C%5E2%7D" title="\dpi{200} \left |h(t) \right | = \sqrt{\left |h_{I}(t) \right |^2 + \left |h_{Q}(t) \right |^2}" /&gt;&lt;br /&gt;
&lt;br /&gt;
The probability density function (Rayleigh distribution) of the above mentioned amplitude response is given by&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20f%28z%29=%5Cfrac%7B2z%7D%7B%5Csigma%20%5E%7B2%7D%7De%5E%7B-%5Cfrac%7Bz%5E%7B2%7D%7D%7B%5Csigma%20%5E%7B2%7D%7D%7D%20%5C%5C%20where%20%5C;%20%5Csigma%20%5E%7B2%7D%20=%20E%5Cleft%20%28%20%5Cleft%20%7C%20h%28t%29%20%5Cright%20%7C%5E%7B2%7D%20%5Cright%20%29" title="\dpi{200} f(z)=\frac{2z}{\sigma ^{2}}e^{-\frac{z^{2}}{\sigma ^{2}}} \\ where \; \sigma ^{2} = E\left ( \left | h(t) \right |^{2} \right )" /&gt;&lt;br /&gt;
&lt;br /&gt;
We will use the Clarke's Rayleigh Fading model (given below) and check the statistical properties of the random process generated by the model against the statistical properties of Rayleigh distribution (given above).&lt;span style="font-size: large;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Clarke's Rayleigh Fading model:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;The random process of flat Rayleigh fading with M multipaths can be simulated with the sum-of-sinusoid method described as &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B120%7D%20%5Cbegin%7Bmatrix%7D%20h_%7BI%7D%28nT_%7Bs%7D%29=%5Cfrac%7B1%7D%7B%5Csqrt%7BM%7D%7D%5Csum_%7Bm=1%7D%5E%7BM%7Dcos%5Cleft%20%5C%7B%202%5Cpi%20f_%7BD%7D%5C,cos%5Cleft%20[%20%5Cfrac%7B%282m-1%29%5Cpi%20+%20%5Ctheta%7D%7B4M%7D%20%5Cright%20].nT_%7Bs%7D+%5Calpha_%7Bm%7D%20%5Cright%20%5C%7D%5C%5C%20h_%7BQ%7D%28nT_%7Bs%7D%29=%5Cfrac%7B1%7D%7B%5Csqrt%7BM%7D%7D%5Csum_%7Bm=1%7D%5E%7BM%7Dsin%5Cleft%20%5C%7B%202%5Cpi%20f_%7BD%7D%5C,cos%5Cleft%20[%20%5Cfrac%7B%282m-1%29%5Cpi%20+%20%5Ctheta%7D%7B4M%7D%20%5Cright%20].nT_%7Bs%7D+%5Cbeta_%7Bm%7D%20%5Cright%20%5C%7D%20%5C%5C%20h%28nT_%7Bs%7D%29%20=%20h_%7BI%7D%28nT_%7Bs%7D%29+jh_%7BQ%7D%28nT_%7Bs%7D%29%20%5C%5C%5C%5C%20where%20%5C;%20%5Ctheta%20,%20%5C;%20%5Calpha_%7Bm%7D%20%5C;%20and%20%5C;%20%5Cbeta_%7Bm%7D%5C;%20are%5C;%20uniformly%20%5C;distributed%5C;%20over%5C;%20[0,2%5Cpi%29%5C%5C%20for%20%5C;all%5C;%20n%20%5C;and%5C;%20are%5C;%20mutually%5C;%20distributed%20,%20%5C;%20%5C%5C%20f_%7BD%7D%20=%20maximum%5C;%20Doppler%5C;%20spread,%20%5C;%20%5C%5C%20T_%7Bs%7D=sampling%5C;%20period,%20%5C;%20n=sample%20%5C;%20index%20%5Cend%7Bmatrix%7D" title="\dpi{120} \begin{matrix} h_{I}(nT_{s})=\frac{1}{\sqrt{M}}\sum_{m=1}^{M}cos\left \{ 2\pi f_{D}\,cos\left [ \frac{(2m-1)\pi + \theta}{4M} \right ].nT_{s}+\alpha_{m} \right \}\\ h_{Q}(nT_{s})=\frac{1}{\sqrt{M}}\sum_{m=1}^{M}sin\left \{ 2\pi f_{D}\,cos\left [ \frac{(2m-1)\pi + \theta}{4M} \right ].nT_{s}+\beta_{m} \right \} \\ h(nT_{s}) = h_{I}(nT_{s})+jh_{Q}(nT_{s}) \\\\ where \; \theta , \; \alpha_{m} \; and \; \beta_{m}\; are\; uniformly \;distributed\; over\; [0,2\pi)\\ for \;all\; n \;and\; are\; mutually\; distributed , \; \\ f_{D} = maximum\; Doppler\; spread, \; \\ T_{s}=sampling\; period, \; n=sample \; index \end{matrix}" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Simulation : &lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/Clarkes_model_Rayleigh_Fading.zip?attredirects=0&amp;amp;d=1"&gt;&lt;u&gt;click here to download Matlab code&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
1) The rayleigh fading model is implemented as a function in matlab with following parameters:&lt;br /&gt;
M=number of multipaths in the fading channel, N = number of samples to generate, fd=maximum Doppler spread in Hz, Ts = sampling period&lt;br /&gt;
&lt;br /&gt;
&lt;div class="boxed"&gt;function [h]=rayleighFading(M,N,fd,Ts)&lt;br /&gt;
&lt;div style="color: #274e13;"&gt;&lt;b&gt;% function to generate rayleigh Fading samples based on Clarke's model&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% M = number of multipaths in the channel&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% N = number of samples to generate&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% fd = maximum Doppler frequency&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Ts = sampling period&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Author : Mathuranathan Viswanathan for http://gaussianwaves.blogspot.com&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Creative commons License : CC-BY-NC-SA&lt;/b&gt;&lt;/div&gt;a=0;&lt;br /&gt;
b=2*pi;&lt;br /&gt;
&lt;br /&gt;
alpha=a+(b-a)*rand(1,M);&lt;b&gt;&lt;span style="color: #38761d;"&gt; %uniformly distributed from 0 to 2 pi&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
beta=a+(b-a)*rand(1,M); &lt;b style="color: #38761d;"&gt;%uniformly distributed from 0 to 2 pi&lt;/b&gt;&lt;br /&gt;
theta=a+(b-a)*rand(1,M); &lt;b style="color: #38761d;"&gt;%uniformly distributed from 0 to 2 pi&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
m=1:M;&lt;br /&gt;
for n=1:N;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x=cos(((2.*m-1)*pi+theta)/(4*M));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h_re(n)=1/sqrt(M)*sum(cos(2*pi*fd*x*n'*Ts+alpha));&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h_im(n)=1/sqrt(M)*sum(sin(2*pi*fd*x*n'*Ts+beta));&lt;br /&gt;
end&lt;br /&gt;
h=h_re+j*h_im;&lt;br /&gt;
end&lt;/div&gt;&lt;br /&gt;
2)The above mentioned function is used to generate Rayleigh Fading samples with the following values for the function arguments. M=15; N=10^5; fd=100 Hz;Ts=0.0001 second; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Investigation of Statistical Properties of samples generated using Clarke's model:&lt;/span&gt;&lt;br /&gt;
3) Mean and Variance of the real and imaginary parts of generated samples are&lt;br /&gt;
Mean of real part ~=0&lt;br /&gt;
Mean of imag part ~=0&lt;br /&gt;
Variance of real part = 0.4989 ~=0.5&lt;br /&gt;
Variance of imag part = 0.4989 ~=0.5&lt;br /&gt;
&lt;br /&gt;
The results implies that the mean of the real and imaginary parts are same and are equal to zero.&lt;br /&gt;
The variance of the real and imaginary parts are approximately equal to 0.5.&lt;br /&gt;
&lt;br /&gt;
4)Next, the pdf of the real part of the simulated samples are plotted and compared against the pdf of Gaussian distribution (with mean=0 and variance =0.5)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-8xIJE7yJVbU/Tb5EK-0EKOI/AAAAAAAAEl0/RxPDm8kjKas/s1600/Gaussian_PDF.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-8xIJE7yJVbU/Tb5EK-0EKOI/AAAAAAAAEl0/RxPDm8kjKas/s1600/Gaussian_PDF.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
5) The pdf of the generated Rayleigh fading samples are plotted and compared against pdf of Rayleigh distribution ( with variance = 1)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-oIOZp7ZBxUA/Tb5HffRxp0I/AAAAAAAAEl8/pDwpNygibCA/s1600/Rayleigh_PDF.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-oIOZp7ZBxUA/Tb5HffRxp0I/AAAAAAAAEl8/pDwpNygibCA/s1600/Rayleigh_PDF.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) From 4) and 5) we confirm that the samples generated by Clarke's model follows Rayleigh&amp;nbsp; distribution (with variance = 1) and the real and imaginary part of the samples follow Gaussian distribution (with mean=0 and variance =0.5).&lt;br /&gt;
&lt;br /&gt;
7) The Magnitude and Phase response of the generated Rayleigh Fading samples are plotted here.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-YPdkVnGeIiQ/Tb5HRShXIyI/AAAAAAAAEl4/M__iDsZ7Uns/s1600/Clarkes_Model_Rayleigh_Fading_Samples.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-YPdkVnGeIiQ/Tb5HRShXIyI/AAAAAAAAEl4/M__iDsZ7Uns/s1600/Clarkes_Model_Rayleigh_Fading_Samples.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;More posts on Rayleigh Fading:&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2010/02/rayleigh-fading-simulation-youngs-model.html"&gt;Rayleigh Fading simulation using Young's model&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2010/02/fading-channels-rayleigh-fading.html"&gt;Introduction to Rayleigh Fading&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;References:&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/gp/product/0471649538/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=0471649538" target="_blank"&gt;Marvin K Simon et al,"Digital communication over Fading Channels",Wiley-IEEE Press,2004&lt;span class="contributorNameTrigger"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="contributorNameTrigger"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=2252788420755374228&amp;amp;postID=6855481292220598176" target="_blank"&gt; &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/gp/product/0130422320/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=0130422320" target="_blank"&gt;&lt;span class="contributorNameTrigger"&gt;Theodore S. Rappaport&lt;span class="contributorChevron" style="margin-left: 5px;"&gt;&lt;span class="swSprite s_chevron"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;,"&lt;span id="btAsinTitle"&gt;Wireless Communications: Principles and Practice", Prentice Hall, 2002&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span id="btAsinTitle"&gt;&lt;span style="font-size: 16px; text-transform: capitalize;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="contributorNameTrigger"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="color: #cc0000;"&gt;Recommended Books:&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Communication-Systems-MATLAB-Simulink/dp/1589096215?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communication Systems using MATLAB and Simulink" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1589096215&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1589096215" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Contemporary-Communication-Systems-Using-MATLAB/dp/0534406173?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Contemporary Communication Systems Using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534406173&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534406173" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-Digital-Signal-Processing-MATLAB/dp/0534391508?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of Digital Signal Processing Using MATLAB (with CD-ROM)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534391508&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534391508" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Signals-Systems-using-MATLAB-Chaparro/dp/0123747163?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Signals and Systems using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123747163&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123747163" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Signal-Processing-John-Proakis/dp/0131873741?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Signal Processing (4th Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0131873741&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0131873741" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-John-Proakis/dp/0071263780?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0071263780&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071263780" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-Fundamentals-Applications-2nd/dp/0130847887?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications: Fundamentals and Applications (2nd Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0130847887&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0130847887" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Wireless-Communications-Andrea-Goldsmith/dp/0521837162?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0521837162&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0521837162" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/MIMO-Wireless-Communications-ebook/dp/B000USIVC6?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000USIVC6&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000USIVC6" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/MIMO-Theory-Implementation-Alain-Sibille/dp/0123821940?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO: From Theory to Implementation" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123821940&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123821940" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-WiMAX-Understanding-Networking-ebook/dp/B000SEGQRY?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of WiMAX: Understanding Broadband Wireless Networking" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000SEGQRY&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000SEGQRY" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Theory-Applications-OFDM-CDMA-ebook/dp/B000PY413I?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Theory and Applications of OFDM and CDMA: Wideband Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000PY413I&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000PY413I" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-6855481292220598176?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=p-uzPHWOwZY:RyeIEFGfqXA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=p-uzPHWOwZY:RyeIEFGfqXA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=p-uzPHWOwZY:RyeIEFGfqXA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=p-uzPHWOwZY:RyeIEFGfqXA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=p-uzPHWOwZY:RyeIEFGfqXA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/p-uzPHWOwZY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/6855481292220598176/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=6855481292220598176" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/6855481292220598176?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/6855481292220598176?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/p-uzPHWOwZY/simulation-of-rayleigh-fading-clarkes.html" title="Simulation of Rayleigh Fading ( Clarke's Model - sum of sinusoids method)" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-tB1r6nGUVKw/Tb1RgKKxVQI/AAAAAAAAElg/p3ANpELUWpg/s72-c/multipath_FIR_equation_1.jpg" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/05/simulation-of-rayleigh-fading-clarkes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08DQHc8cCp7ImA9WhZQF0Q.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-6545524452975395505</id><published>2011-04-26T07:30:00.002+01:00</published><updated>2011-04-26T07:37:51.978+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T07:37:51.978+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Digital modulations" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>Correlative Coding - Modified Duobinary Signaling</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Modified Duobinary Signaling is an extension of &lt;a href="http://gaussianwaves.blogspot.com/2011/04/correlative-coding-duobinary-signaling.html"&gt;duobinary signaling&lt;/a&gt;. Modified Duobinary signaling has the advantage of zero PSD at low frequencies (especially at DC ) which is suitable for channels with poor DC response. It correlates two symbols that are 2T time instants apart, whereas in &lt;a href="http://gaussianwaves.blogspot.com/2011/04/correlative-coding-duobinary-signaling.html"&gt;Duobinary signaling&lt;/a&gt; , symbols that are 1T apart are correlated.&lt;br /&gt;
&lt;br /&gt;
The general condition to achieve zero ISI is given by&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20p%28nT%29=%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%201,%5C;%20n=0%5C%5C%200,%5C;%20n%5Cneq%200%20%5Cend%7Bmatrix%7D%5Cright." title="\dpi{150} p(nT)=\left\{\begin{matrix} 1,\; n=0\\ 0,\; n\neq 0 \end{matrix}\right." /&gt;&lt;br /&gt;
&lt;br /&gt;
As discussed in the &lt;a href="http://gaussianwaves.blogspot.com/2011/04/introduction-to-controlled-isi-inter.html"&gt;previous post&lt;/a&gt;, in correlative coding , the requirement of zero ISI condition is relaxed as a controlled  amount of ISI is introduced in the transmitted signal and is  counteracted in the &lt;span class="IL_AD" id="IL_AD10"&gt;receiver&lt;/span&gt; side&lt;br /&gt;
&lt;br /&gt;
In the case of modified duobinary signaling, the above equation is modified as&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20p%28nT%29=%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%201,%5C;%20n=0,2%5C%5C%200,%5C;%20otherwise%20%5Cend%7Bmatrix%7D%5Cright." title="\dpi{150} p(nT)=\left\{\begin{matrix} 1,\; n=0,2\ 0,\; otherwise \end{matrix}\right." /&gt;&lt;/div&gt;&lt;br /&gt;
which states that the ISI is limited to two alternate &lt;span class="IL_AD" id="IL_AD3"&gt;samples&lt;/span&gt;.  Here a controlled or "deterministic" amount of ISI is introduced and  hence its effect can be removed upon signal detection at the receiver.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Modified Duobinary Signaling:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
The following figure shows the modified duobinary signaling scheme (click to enlarge).&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-GYfW0GwnWdI/TbZoNPvnJeI/AAAAAAAAEko/uWhV-swwyF4/s1600/modified_duoBinary_signaling_block_diagram.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="152" src="http://2.bp.blogspot.com/-GYfW0GwnWdI/TbZoNPvnJeI/AAAAAAAAEko/uWhV-swwyF4/s400/modified_duoBinary_signaling_block_diagram.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-m0_SwAejhgI/TbY7_n8MKoI/AAAAAAAAEkY/vr0SxvfWEpE/s1600/modified_duoBinary_signaling_block_diagram.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;Encoding Process:&lt;/span&gt;&lt;br /&gt;
1) a&lt;sub&gt;n&lt;/sub&gt; = binary input bit;&amp;nbsp; a&lt;sub&gt;n&lt;/sub&gt; ∈ {0,1}.&lt;br /&gt;
2) b&lt;sub&gt;n&lt;/sub&gt; = NRZ polar output of Level converter in the precoder and is given by,&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20b_%7Bn%7D=%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20-d,%5C;%20if%5C;a_%7Bk%7D=0%5C%5C%20+d,%5C;%20if%5C;%20a_%7Bk%7D=1%20%5Cend%7Bmatrix%7D%5Cright." title="\dpi{150} b_{n}=\left\{\begin{matrix} -d,\; if\;a_{k}=0\\ +d,\; if\; a_{k}=1 \end{matrix}\right." /&gt;&lt;br /&gt;
where a&lt;sub&gt;k&lt;/sub&gt; is the precoded output (before level converter).&lt;br /&gt;
&lt;br /&gt;
3) y&lt;sub&gt;n&lt;/sub&gt; can be represented as&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20y_%7Bn%7D=b_%7Bn%7D+b_%7Bn-2%7D=%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%202d%20,%20%5C;%20%5C;%20%5C;%20%5C;%20if%20%5C;a_%7Bk%7D=a_%7Bk-2%7D=1%5C%5C%200%20,%20%5C;%20%5C;%20if%20%5C;%20a_%7Bk%7D%5Cneq%20a_%7Bk-2%7D%5C%5C%20-2d%20,%20%5C;%20if%20%5C;%20a_%7Bk%7D=a_%7Bk-2%7D=0%20%5Cend%7Bmatrix%7D%5Cright." title="\dpi{150} y_{n}=b_{n}+b_{n-2}=\left\{\begin{matrix} 2d , \; \; \; \; if \;a_{k}=a_{k-2}=1\\ 0 , \; \; if \; a_{k}\neq a_{k-2}\\ -2d , \; if \; a_{k}=a_{k-2}=0 \end{matrix}\right." /&gt;&lt;br /&gt;
&lt;br /&gt;
Note that the samples b&lt;sub&gt;n&lt;/sub&gt; are uncorrelated ( i.e either +d for "1" or -d for "0" input). On the other-hand,the samples y&lt;sub&gt;n&lt;/sub&gt; are correlated ( i.e. there are three possible values +2d,0,-2d depending on ak and a&lt;sub&gt;k-2&lt;/sub&gt;). Meaning that the modified duobinary encoding correlates present sample a&lt;sub&gt;k&lt;/sub&gt; and  the previous input sample a&lt;sub&gt;k-2.&lt;/sub&gt;&lt;br /&gt;
&lt;br /&gt;
4) From the diagram,impulse response of the modified duobinary encoder is computed as&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20h%28t%29=sinc%5Cleft%20%28%20%5Cfrac%7Bt%7D%7BT%7D%5Cright%20%29-sinc%5Cleft%20%28%5Cfrac%7Bt-2T%7D%7BT%7D%5Cright%20%29" title="\dpi{150} h(t)=sinc\left ( \frac{t}{T}\right )-sinc\left (\frac{t-2T}{T}\right )" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Decoding Process:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
5) The receiver consists of a modified duobinary decoder and a postcoder (inverse of precoder).The modified duobinary decoder implements the following equation (which can be deduced from the equation given under step 3 (see above))&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Chat%7Bb%7D_%7Bn%7D=y_%7Bn%7D-%5Chat%7Bb%7D_%7Bn-2%7D" title="\dpi{150} \hat{b}_{n}=y_{n}-\hat{b}_{n-2}" /&gt;&lt;br /&gt;
&lt;br /&gt;
This equation indicates that the decoding process is prone to error propagation as the estimate of present sample relies on the estimate of previous sample. This error propagation is avoided by using a precoder before modified-duobinary encoder at the transmitter and a postcoder after the modified-duobinary decoder. The precoder ties the present sample and the sample that precedes the previous sample ( correlates these two samples) and the postcoder does the reverse process.&lt;br /&gt;
&lt;br /&gt;
6) The entire process of modified-duobinary decoding and the postcoding can be combined together as one algorithm. The following decision rule is used for detecting the original modified-duobinary signal samples {a&lt;sub&gt;n&lt;/sub&gt;} from {y&lt;sub&gt;n&lt;/sub&gt;}&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Cbegin%7Bmatrix%7D%20if%20%5C;%20y_%7Bn%7D%20%3C%20d%20,%20%5C;%5C;%20then%20%5C;%20%5Chat%7Ba%7D_%7Bn%7D=0%5C%5C%20if%20%5C;%20y_%7Bn%7D%20%3E%20d%20,%20%5C;%5C;%20then%20%5C;%20%5Chat%7Ba%7D_%7Bn%7D=1%5C%5C%20if%20%5C;%20y_%7Bn%7D=0%20,%20%5C;%5C;%20randomly%20%5C;%20guess%20%5C;%20%5Chat%7Ba%7D_%7Bn%7D%20%5Cend%7Bmatrix%7D" title="\dpi{150} \begin{matrix} if \; y_{n} &amp;lt; d , \;\; then \; \hat{a}_{n}=0\\ if \; y_{n} &amp;gt; d , \;\; then \; \hat{a}_{n}=1\\ if \; y_{n}=0 , \;\; randomly \; guess \; \hat{a}_{n} \end{matrix}" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Matlab Code: -&lt;/span&gt;&lt;span style="font-size: large;"&gt; &lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/modifiedDuobinarySignaling.zip?attredirects=0&amp;amp;d=1"&gt;click here to download&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Output:&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-TVLNHza4MeQ/TbZiAwAqJuI/AAAAAAAAEkg/oO8kCFEuti8/s1600/impulse_response_of_modified_duoBinary_signaling.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="http://3.bp.blogspot.com/-TVLNHza4MeQ/TbZiAwAqJuI/AAAAAAAAEkg/oO8kCFEuti8/s400/impulse_response_of_modified_duoBinary_signaling.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/--lAWovft0l4/TbZk1O26O0I/AAAAAAAAEkk/sSNNwRbniWo/s1600/modified_duoBinary_signaling_2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="331" src="http://4.bp.blogspot.com/--lAWovft0l4/TbZk1O26O0I/AAAAAAAAEkk/sSNNwRbniWo/s400/modified_duoBinary_signaling_2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Input Symbols to the system :  (an)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;
&lt;br /&gt;
Decoded Symbols :  (estimated an)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="color: #cc0000;"&gt;Recommended Books:&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Communication-Systems-MATLAB-Simulink/dp/1589096215?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communication Systems using MATLAB and Simulink" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1589096215&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1589096215" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Contemporary-Communication-Systems-Using-MATLAB/dp/0534406173?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Contemporary Communication Systems Using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534406173&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534406173" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-Digital-Signal-Processing-MATLAB/dp/0534391508?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of Digital Signal Processing Using MATLAB (with CD-ROM)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534391508&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534391508" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Signals-Systems-using-MATLAB-Chaparro/dp/0123747163?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Signals and Systems using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123747163&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123747163" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Signal-Processing-John-Proakis/dp/0131873741?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Signal Processing (4th Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0131873741&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0131873741" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-John-Proakis/dp/0071263780?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0071263780&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071263780" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-Fundamentals-Applications-2nd/dp/0130847887?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communications: Fundamentals and Applications (2nd Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0130847887&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0130847887" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Wireless-Communications-Andrea-Goldsmith/dp/0521837162?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0521837162&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0521837162" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/MIMO-Wireless-Communications-ebook/dp/B000USIVC6?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000USIVC6&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000USIVC6" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/MIMO-Theory-Implementation-Alain-Sibille/dp/0123821940?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MIMO: From Theory to Implementation" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123821940&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123821940" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-WiMAX-Understanding-Networking-ebook/dp/B000SEGQRY?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of WiMAX: Understanding Broadband Wireless Networking" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000SEGQRY&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000SEGQRY" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Theory-Applications-OFDM-CDMA-ebook/dp/B000PY413I?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Theory and Applications of OFDM and CDMA: Wideband Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000PY413I&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000PY413I" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-6545524452975395505?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=vmWh10TNsMo:RY9XeJ8ReBA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=vmWh10TNsMo:RY9XeJ8ReBA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=vmWh10TNsMo:RY9XeJ8ReBA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=vmWh10TNsMo:RY9XeJ8ReBA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=vmWh10TNsMo:RY9XeJ8ReBA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/vmWh10TNsMo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/6545524452975395505/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=6545524452975395505" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/6545524452975395505?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/6545524452975395505?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/vmWh10TNsMo/correlative-coding-modified-duobinary.html" title="Correlative Coding - Modified Duobinary Signaling" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-GYfW0GwnWdI/TbZoNPvnJeI/AAAAAAAAEko/uWhV-swwyF4/s72-c/modified_duoBinary_signaling_block_diagram.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/04/correlative-coding-modified-duobinary.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cHR3kzeyp7ImA9WhZQE0g.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-2349662388389734721</id><published>2011-04-21T04:01:00.002+01:00</published><updated>2011-04-21T04:03:56.783+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-21T04:03:56.783+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Digital modulations" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>Correlative coding - Duobinary Signaling</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The condition for zero ISI (Inter Symbol Interference) is&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20p%28nT%29=%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%201,%5C;%20n=0%5C%5C%200,%5C;%20n%5Cneq%200%20%5Cend%7Bmatrix%7D%5Cright." title="\dpi{150} p(nT)=\left\{\begin{matrix} 1,\; n=0\\ 0,\; n\neq 0 \end{matrix}\right." /&gt;&lt;br /&gt;
which states that when sampling a particular symbol (at time instant nT=0), the effect of all other symbols on the current sampled symbol is zero.&lt;br /&gt;
&lt;br /&gt;
As discussed in the &lt;a href="http://gaussianwaves.blogspot.com/2011/04/introduction-to-controlled-isi-inter.html" target="_blank"&gt;previous post&lt;/a&gt;, one of the practical ways to mitigate ISI is to use partial response signaling technique ( otherwise called as "correlative coding"). In partial response signaling, the requirement of zero ISI condition is relaxed as a controlled amount of ISI is introduced in the transmitted signal and is counteracted in the receiver side.&lt;br /&gt;
&lt;br /&gt;
By relaxing the zero ISI condition, the above equation can be modified as,&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20p%28nT%29=%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%201,%5C;%20n=0,1%5C%5C%200,%5C;%20otherwise%20%5Cend%7Bmatrix%7D%5Cright." title="\dpi{150} p(nT)=\left\{\begin{matrix} 1,\; n=0,1\\ 0,\; otherwise \end{matrix}\right." /&gt;&lt;/div&gt;which states that the ISI is limited to two adjacent samples. Here we introduce a controlled or "deterministic" amount of ISI and hence its effect can be removed upon signal detection at the receiver.&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Duobinary Signaling:&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;The following figure shows the duobinary signaling scheme (click to enlarge). &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-lciRxhC6rXw/Ta6u5Xix7sI/AAAAAAAAEkM/V-X4QS00sZA/s1600/duoBinary_signaling_block_diagram.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="http://4.bp.blogspot.com/-lciRxhC6rXw/Ta6u5Xix7sI/AAAAAAAAEkM/V-X4QS00sZA/s400/duoBinary_signaling_block_diagram.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;Encoding Process:&lt;/span&gt;&lt;br /&gt;
1) a&lt;sub&gt;n&lt;/sub&gt; = binary input bit;&amp;nbsp; a&lt;sub&gt;n&lt;/sub&gt; ∈ {0,1}.&lt;br /&gt;
2) b&lt;sub&gt;n&lt;/sub&gt; = NRZ polar output of Level converter in the precoder and is given by,&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20b_%7Bn%7D=%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20-d,%5C;%20if%5C;a_%7Bn%7D=0%5C%5C%20+d,%5C;%20if%5C;%20a_%7Bn%7D=1%20%5Cend%7Bmatrix%7D%5Cright." title="\dpi{150} b_{n}=\left\{\begin{matrix} -d,\; if\;a_{n}=0\\ +d,\; if\; a_{n}=1 \end{matrix}\right." /&gt;&lt;br /&gt;
&lt;br /&gt;
3) y&lt;sub&gt;n&lt;/sub&gt; can be represented as&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20y_%7Bn%7D=b_%7Bn%7D+b_%7Bn-1%7D=%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%202d%20,%20%5C;%20%5C;%20%5C;%20%5C;%20if%20%5C;a_%7Bn%7D=a_%7Bn-1%7D=1%5C%5C%200%20,%20%5C;%20%5C;%20if%20%5C;%20a_%7Bn%7D%5Cneq%20a_%7Bn-1%7D%5C%5C%20-2d%20,%20%5C;%20if%20%5C;%20a_%7Bn%7D=a_%7Bn-1%7D=0%20%5Cend%7Bmatrix%7D%5Cright." title="\dpi{150} y_{n}=b_{n}+b_{n-1}=\left\{\begin{matrix} 2d , \; \; \; \; if \;a_{n}=a_{n-1}=1\\ 0 , \; \; if \; a_{n}\neq a_{n-1}\\ -2d , \; if \; a_{n}=a_{n-1}=0 \end{matrix}\right." /&gt;&lt;br /&gt;
&lt;br /&gt;
Note that the samples b&lt;sub&gt;n&lt;/sub&gt; are uncorrelated ( i.e either +d for "1" or -d for "0" input). On the other-hand,the samples y&lt;sub&gt;n&lt;/sub&gt; are correlated ( i.e. there are three possible values +2d,0,-2d depending on a&lt;sub&gt;n&lt;/sub&gt; and a&lt;sub&gt;n-1&lt;/sub&gt;). Meaning that the duobinary encoding correlates present sample a&lt;sub&gt;n&lt;/sub&gt; and  the previous input sample a&lt;sub&gt;n-1.&lt;/sub&gt;&lt;br /&gt;
&lt;br /&gt;
4) From the diagram,impulse response of the duobinary encoder is computed as&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20h%28t%29=sinc%5Cleft%20%28%20%5Cfrac%7Bt%7D%7BT%7D%5Cright%20%29+sinc%5Cleft%20%28%5Cfrac%7Bt-T%7D%7BT%7D%5Cright%20%29" title="\dpi{150} h(t)=sinc\left ( \frac{t}{T}\right )+sinc\left (\frac{t-T}{T}\right )" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Decoding Process:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
5) The receiver consists of a duobinary decoder and a postcoder (inverse of precoder).The duobinary decoder implements the following equation (which can be deduced from the equation given under step 3 (see above))&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Chat%7Bb%7D_%7Bn%7D=y_%7Bn%7D-%5Chat%7Bb%7D_%7Bn-1%7D" title="\dpi{150} \hat{b}_{n}=y_{n}-\hat{b}_{n-1}" /&gt;&lt;br /&gt;
&lt;br /&gt;
This equation indicates that the decoding process is prone to error propagation as the estimate of present sample relies on the estimate of previous sample. This error propagation is avoided by using a precoder before duobinary encoder at the transmitter and a postcoder after the duobinary decoder. The precoder ties the present sample and previous sample ( correlates these two samples) and the postcoder does the reverse process.&lt;br /&gt;
&lt;br /&gt;
6) The entire process of duobinary decoding and the postcoding can be combined together as one algorithm. The following decision rule is used for detecting the original duobinary signal samples {a&lt;sub&gt;n&lt;/sub&gt;} from {y&lt;sub&gt;n&lt;/sub&gt;}&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Cbegin%7Bmatrix%7D%20if%20%5C;%20y_%7Bn%7D%20%3C%20d%20,%20%5C;%5C;%20then%20%5C;%20%5Chat%7Ba%7D_%7Bn%7D=1%5C%5C%20if%20%5C;%20y_%7Bn%7D%20%3E%20d%20,%20%5C;%5C;%20then%20%5C;%20%5Chat%7Ba%7D_%7Bn%7D=0%5C%5C%20if%20%5C;%20y_%7Bn%7D=0%20,%20%5C;%5C;%20randomly%20%5C;%20guess%20%5C;%20%5Chat%7Ba%7D_%7Bn%7D%20%5Cend%7Bmatrix%7D" title="\dpi{150} \begin{matrix} if \; y_{n} &amp;lt; d , \;\; then \; \hat{a}_{n}=1\\ if \; y_{n} &amp;gt; d , \;\; then \; \hat{a}_{n}=0\\ if \; y_{n}=0 , \;\; randomly \; guess \; \hat{a}_{n} \end{matrix}" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Matlab Code: -&lt;/span&gt;&lt;span style="font-size: large;"&gt; &lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/duoBinarySignaling.zip?attredirects=0&amp;amp;d=1"&gt;click here to download&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Output: &lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-pEN7n34oIqQ/Ta-bHXgV9qI/AAAAAAAAEkQ/07aaDcQZ28w/s1600/impulse_response_duoBinary_encoder.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="310" src="http://2.bp.blogspot.com/-pEN7n34oIqQ/Ta-bHXgV9qI/AAAAAAAAEkQ/07aaDcQZ28w/s400/impulse_response_duoBinary_encoder.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-_3jMMKh3W1o/Ta-br0FbjiI/AAAAAAAAEkU/q7H5nRX0g4o/s1600/duoBinary_Signaling_2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://4.bp.blogspot.com/-_3jMMKh3W1o/Ta-br0FbjiI/AAAAAAAAEkU/q7H5nRX0g4o/s400/duoBinary_Signaling_2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Input Symbols to the system : (an)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;
&lt;br /&gt;
Decoded Symbols :  (estimated an)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b style="color: #cc0000;"&gt;Recommended Books:&lt;/b&gt; &lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Communication-Systems-MATLAB-Simulink/dp/1589096215?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communication Systems using MATLAB and Simulink" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1589096215&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1589096215" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Contemporary-Communication-Systems-Using-MATLAB/dp/0534406173?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Contemporary Communication Systems Using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534406173&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534406173" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-Digital-Signal-Processing-MATLAB/dp/0534391508?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of Digital Signal Processing Using MATLAB (with CD-ROM)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534391508&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534391508" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Signals-Systems-using-MATLAB-Chaparro/dp/0123747163?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Signals and Systems using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123747163&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123747163" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Signal-Processing-John-Proakis/dp/0131873741?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Digital Signal Processing (4th Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0131873741&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0131873741" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-John-Proakis/dp/0071263780?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Digital Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0071263780&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071263780" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Communications-Fundamentals-Applications-2nd/dp/0130847887?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Digital Communications: Fundamentals and Applications (2nd Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0130847887&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0130847887" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Wireless-Communications-Andrea-Goldsmith/dp/0521837162?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0521837162&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0521837162" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/MIMO-Wireless-Communications-ebook/dp/B000USIVC6?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="MIMO Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000USIVC6&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000USIVC6" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/MIMO-Theory-Implementation-Alain-Sibille/dp/0123821940?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="MIMO: From Theory to Implementation" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123821940&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123821940" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-WiMAX-Understanding-Networking-ebook/dp/B000SEGQRY?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Fundamentals of WiMAX: Understanding Broadband Wireless Networking" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000SEGQRY&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000SEGQRY" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Theory-Applications-OFDM-CDMA-ebook/dp/B000PY413I?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Theory and Applications of OFDM and CDMA: Wideband Wireless Communications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000PY413I&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000PY413I" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;span class="Unicode"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-2349662388389734721?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KMIWg3WUGG4:00nawwV4QZY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KMIWg3WUGG4:00nawwV4QZY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KMIWg3WUGG4:00nawwV4QZY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KMIWg3WUGG4:00nawwV4QZY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=KMIWg3WUGG4:00nawwV4QZY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/KMIWg3WUGG4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/2349662388389734721/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=2349662388389734721" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/2349662388389734721?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/2349662388389734721?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/KMIWg3WUGG4/correlative-coding-duobinary-signaling.html" title="Correlative coding - Duobinary Signaling" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-lciRxhC6rXw/Ta6u5Xix7sI/AAAAAAAAEkM/V-X4QS00sZA/s72-c/duoBinary_signaling_block_diagram.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/04/correlative-coding-duobinary-signaling.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EHRn07fCp7ImA9WhZQF0Q.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-2609254216589358759</id><published>2011-04-19T11:51:00.005+01:00</published><updated>2011-04-26T07:33:57.304+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T07:33:57.304+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>Introduction to controlled ISI (Inter Symbol Interference)</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Most of the communication channels (data storage devices,optical,wireless channels etc..) can be considered as band-limited linear filters. The channels can be modeled as having the following frequency response (over a given bandwidth W).&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20H%28f%29=A%28f%29e%5E%7Bj%5Ctheta%28f%29%7D" title="\dpi{150} H(f)=A(f)e^{j\theta(f)}" /&gt;&lt;br /&gt;
&lt;br /&gt;
Here A(f) is amplitude response and θ(f)&amp;nbsp; is the phase response of the channel over the given bandwidth W.&lt;br /&gt;
The envelope or group delay is defined as,&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Ctau%20%28f%29=-%5Cfrac%7B1%7D%7B2%5Cpi%7D%5Cfrac%7Bd%5Ctheta%28f%29%7D%7Bdf%7D" title="\dpi{150} \tau (f)=-\frac{1}{2\pi}\frac{d\theta(f)}{df}" /&gt;&lt;br /&gt;
&lt;br /&gt;
A channel is considered non-distorting (within the given bandwidth W occupied by the transmitted signal), when the amplitude response is constant and the phase response is a linear function frequency (within the given bandwidth W) (or the group delay is a constant).&lt;br /&gt;
&lt;br /&gt;
Amplitude distortion occurs when the amplitude response is no longer constant.Delay/phase distortion occurs when the phase response is not a linear function of frequency or the envelope/group delay is not a constant.&lt;br /&gt;
&lt;br /&gt;
A non-ideal channel frequency response is caused by amplitude and phase distortion. When a succession of pulses transferred through a non-ideal channel, at a rate 2W symbols/second (R=1/T=2W -'&lt;i&gt;&lt;b&gt;Nyquist Rate'&lt;/b&gt;&lt;/i&gt;), gets distorted to a point that they are no longer distinguishable from each other. This is called Inter Symbol Interference (ISI), meaning that a symbol transmitted across a non-ideal channel will be affected by the other symbols. Pulse shaping filters are generally employed at the transmitter and receiver to match the spectral characteristics of the signal with that of the channel.&lt;br /&gt;
&lt;br /&gt;
Generally following strategies may be employed to mitigate ISI&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;1) Use ideal rectangular pulse shaping filters to achieve zero ISI:&lt;/span&gt;&lt;br /&gt;
Maximum transferable data rate that is possible with zero ISI is R=1/T=2W symbols/second, &lt;b&gt;provided ideal rectangular transmit and receiver pulse shaping filters are used&lt;/b&gt;. Ideal rectangular transmit and receive filters are practically unrealizable. So this option is not viable to achieve zero ISI.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;a href="http://gaussianwaves.blogspot.com/2011/04/oversampling-adc-dac-conversionpulse.html"&gt; Implementation of rectangular pulse shaping filters&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;2) Relax the condition of transmitting at maximum rate R=1/T=2W, to achieve zero ISI:&lt;/span&gt;&lt;br /&gt;
If the transmission rate is reduced below 2W (i.e R=1/T&amp;lt;2W), then it is possible to implement practically realizable filters. Raised Cosine and Square Root Raised cosine filters are generally used to achieve zero ISI, if the transmission data rate is reduced below 2W. The signals generated using this method are called full response signals.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;a href="http://gaussianwaves.blogspot.com/2011/04/square-root-raised-cosine-filter.html"&gt; Implementation of Square Root Raised Cosine pulse shaping filters&lt;/a&gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://gaussianwaves.blogspot.com/2010/12/raised-cosine-filter.html"&gt;Implementation of Raised Cosine pulse shaping filters&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: black; font-size: large;"&gt;3) Relax the condition of zero ISI and transfer at Nyquist Rate (R=1/T=2W):&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;In this method, we relax the condition of achieving zero ISI , so that the data can be transferred at maximum possible rate ( R=1/T=2W).Instead of achieving zero ISI, this method introduces controlled amount  of ISI in the transmitted signal and counteracts it upon receiving it. The transmit filter is designed to introduce 'deterministic' or 'controlled' amount of ISI&amp;nbsp; and is counteracted in the receiver side. Methods like duobinary signaling, modified duobinary signaling are employed under this category. The resulting signals are called partial response signals which are transmitted at Nyquist rate of 2W symbols/second.&lt;br /&gt;
&lt;br /&gt;
See also: &lt;a href="http://gaussianwaves.blogspot.com/2011/04/correlative-coding-duobinary-signaling.html"&gt;Implementation of duobinary signaling&lt;/a&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;a href="http://gaussianwaves.blogspot.com/2011/04/correlative-coding-modified-duobinary.html"&gt;Implementation of modified duobinary signaling &lt;/a&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: #cc0000;"&gt;Recommended Books&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: #cc0000;"&gt;&lt;a href="http://www.amazon.com/Digital-Communication-Systems-MATLAB-Simulink/dp/1589096215?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communication Systems using MATLAB and Simulink" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1589096215&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1589096215" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Signal-Processing-Bookware-Companion/dp/0495073113?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Signal Processing Using MATLAB (Bookware Companion)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0495073113&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0495073113" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Random-Signals-Engineers-Mathcad-ebook/dp/B000VIFJ5C?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Random Signals for Engineers Using MATLAB and Mathcad" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000VIFJ5C&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000VIFJ5C" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-Digital-Signal-Processing-MATLAB/dp/0534391508?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of Digital Signal Processing Using MATLAB (with CD-ROM)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534391508&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534391508" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: #cc0000;"&gt;&lt;a href="http://www.amazon.com/Signals-Systems-using-MATLAB-Chaparro/dp/0123747163?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Signals and Systems using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123747163&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123747163" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Computer-Based-Exercises-Signal-Processing-Curriculum/dp/0132198258?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Computer-Based Exercises for Signal Processing Using Matlab (Matlab Curriculum)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0132198258&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0132198258" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Discrete-Systems-Laboratory-Bookware-Companion/dp/0534374638?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Discrete Systems Laboratory Using MATLAB (Bookware Companion Series (Pacific Grove, Calif.).)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534374638&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534374638" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt; &lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-2609254216589358759?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4QwbBsmdovM:yzZSTZN6o2U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4QwbBsmdovM:yzZSTZN6o2U:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4QwbBsmdovM:yzZSTZN6o2U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4QwbBsmdovM:yzZSTZN6o2U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=4QwbBsmdovM:yzZSTZN6o2U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/4QwbBsmdovM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/2609254216589358759/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=2609254216589358759" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/2609254216589358759?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/2609254216589358759?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/4QwbBsmdovM/introduction-to-controlled-isi-inter.html" title="Introduction to controlled ISI (Inter Symbol Interference)" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/04/introduction-to-controlled-isi-inter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQDR3o8fip7ImA9WhZREkk.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-6037831866725143477</id><published>2011-04-07T11:02:00.001+01:00</published><updated>2011-04-08T08:06:16.476+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-08T08:06:16.476+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Digital modulations" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>Square Root Raised Cosine Filter (Matched/split filter implementation)</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;An implementation of a rectangular pulse shaping filter in transmitter and receiver side was discussed in the previous post.&lt;br /&gt;
&lt;br /&gt;
The code was modified a bit to implement a Square Root Raised Cosine Filter (SRRC). Instead of using a single Raised Cosine filter at the transmitter, a square root raised cosine filter is used at both transmitter and receiver. This is to achieve matched filtering (maximizes SNR of the system). SRRC and RRC filters are used to mitigate inter symbol interference (ISI).&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-BXMwF6rcJ34/TZ2Pz41xjrI/AAAAAAAAEjs/Bxon-2NPV5Q/s1600/Square_root_raised_cosine_filter_2.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-BXMwF6rcJ34/TZ2Pz41xjrI/AAAAAAAAEjs/Bxon-2NPV5Q/s1600/Square_root_raised_cosine_filter_2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
The frequency response of the SRRC filter is the square root of the  frequency response of the raised-cosine filter. The impulse response of  the SRRC filter (according to 3GPP standard[1])&amp;nbsp; is given by &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-wjFzdMSMrYA/TZ2Nc5Ch9XI/AAAAAAAAEjo/1IQPaSJcXWY/s1600/Square_root_raised_cosine_filter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-wjFzdMSMrYA/TZ2Nc5Ch9XI/AAAAAAAAEjo/1IQPaSJcXWY/s1600/Square_root_raised_cosine_filter.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;
&lt;/div&gt;with following values&lt;sup&gt;[2]&lt;/sup&gt; at t=0 and t/T=±1/4α .&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20%5Cbegin%7Bmatrix%7D%20p%28t%29%5Cmid%20_%7Bt=0%7D=%281-%5Calpha%29+%5Cfrac%7B4%5Calpha%7D%7B%5Cpi%7D%5C%5C%20%5C%5C%20p%28t%29%5Cmid%20_%7B%5Cfrac%7Bt%7D%7BT%7D=%5Cpm%20%5Cfrac%7B1%7D%7B4%5Calpha%7D%7D=%5Cfrac%7B%5Calpha%7D%7B%5Csqrt%7B2%7D%7D%5Cleft%20%28%20%281+%5Cfrac%7B2%7D%7B%5Cpi%7D%29sin%28%5Cfrac%7B%5Cpi%7D%7B4%5Calpha%7D%29+%281-%5Cfrac%7B2%7D%7B%5Cpi%7D%29cos%28%5Cfrac%7B%5Cpi%7D%7B4%5Calpha%7D%29%20%5Cright%20%29%20%5Cend%7Bmatrix%7D" title="\dpi{150} \begin{matrix} p(t)\mid _{t=0}=(1-\alpha)+\frac{4\alpha}{\pi}\\ \\ p(t)\mid _{\frac{t}{T}=\pm \frac{1}{4\alpha}}=\frac{\alpha}{\sqrt{2}}\left ( (1+\frac{2}{\pi})sin(\frac{\pi}{4\alpha})+(1-\frac{2}{\pi})cos(\frac{\pi}{4\alpha}) \right ) \end{matrix}" /&gt;&lt;br /&gt;
&lt;br /&gt;
There are other forms of equations to implement SRRC.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Matlab function to implement Square Root Raised Cosine Filter:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="boxed"&gt;function [response]=srrc(os_factor,roll_off)&lt;br /&gt;
&lt;div style="color: #38761d;"&gt;&lt;b&gt;%os_factor=oversampling factor&lt;/b&gt;&lt;/div&gt;a=roll_off;&lt;br /&gt;
t=-4:1/os_factor:4; %Limiting the response to -4T to 4T&lt;br /&gt;
&lt;b style="color: #38761d;"&gt;%This can be increased or decreased according to the requirement&lt;/b&gt;&lt;br /&gt;
p=zeros(1,length(t));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i=1:1:length(t)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if t(i)==0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p(i)= (1-a)+4*a/pi;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if t(i)==1/(4*a) || t(i)==-1/(4*a)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p(i)=a/sqrt(2)*((1+2/pi)*sin(pi/(4*a)+(1-2/pi)*cos(pi/(4*a))));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p(i) = (sin(pi*t(i)*(1-a))+4*a*t(i).*cos(pi*t(i)*(1+a)))./(pi*t(i).*(1-(4*a*t(i)).^2));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; response=p./sqrt(sum(p.^2)); &lt;b&gt;&lt;span style="color: #38761d;"&gt;%Normalization to unit energy&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
end&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Simulation of Square Root Raised Cosine Filter in Matlab:&lt;/b&gt;&lt;/div&gt;Define oversampling factor (to simulated digital to analog conversion in the transmitter), input bits to be transmitted and the impulse response of the desired SRRC filter (as shown in the equation/function above).&lt;br /&gt;
The SRRC filter's impulse response is computed for t=-4T to 4T duration. This duration can be changed to any appropriate desired value.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="boxed"&gt;clc;clear;close all;&lt;br /&gt;
overSampling_Factor=8;&lt;br /&gt;
Input_bit = [1]; &lt;b style="color: #38761d;"&gt;%Bits to be transmitted&lt;/b&gt;&lt;br /&gt;
Input_bit_os=upsample(Input_bit,overSampling_Factor); &lt;b&gt;&lt;span style="color: #38761d;"&gt;%oversampling&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
alpha=0.1; &lt;b&gt;&lt;span style="color: #38761d;"&gt;% roll-off factor of Root Raised Cosine Filter&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
pt = srrc(overSampling_Factor,alpha);&lt;b style="color: #38761d;"&gt; % impulse response of SRRC filter&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
Convolve the impulse response of the root raised cosine filter with the oversampled version of input bits and plot the resulting response. This is the response of the filter for the input bits at the transmitter side.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;div class="boxed"&gt;output_of_srrc_filter = conv(Input_bit_os,pt);&lt;br /&gt;
stem(output_of_srrc_filter);&lt;br /&gt;
title('Response of SRRC Filter at Tx side')&lt;br /&gt;
xlabel('Samples')&lt;br /&gt;
ylabel('Amplitude')&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/-Atjzw5zNUsM/TZ6s0mQMZ5I/AAAAAAAAEj4/V7DWokV93Do/s1600/Square_root_raised_cosine_filter_11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="http://2.bp.blogspot.com/-Atjzw5zNUsM/TZ6s0mQMZ5I/AAAAAAAAEj4/V7DWokV93Do/s400/Square_root_raised_cosine_filter_11.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-kPaZO_dtyno/TZ6sR4aBKXI/AAAAAAAAEjw/EtDsAECFnDs/s1600/Square_root_raised_cosine_filter_11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt; &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
At the receiver side the received signal ("output_of_srrc_filter") is convolved with a matched filter (which is same as the transmitting filter).Note that no noise is added to the incoming signal. If you wish you  could add some noise to the signal before performing the matched filter  operation.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%Receiver side; Using a matched filter (that is matched to the SRRC pulse&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%in the transmitter)&lt;/b&gt;&lt;/div&gt;y = conv(output_of_srrc_filter,pt);&lt;br /&gt;
stem(y);&lt;br /&gt;
title('Matched filter (SRRC) response at Rx side')&lt;br /&gt;
xlabel('Samples')&lt;br /&gt;
ylabel('Amplitude')&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/-VA9JnDR7guQ/TZ6tdN6Qz4I/AAAAAAAAEj8/ElNmMUATysI/s1600/Square_root_raised_cosine_filter_12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://2.bp.blogspot.com/-VA9JnDR7guQ/TZ6tdN6Qz4I/AAAAAAAAEj8/ElNmMUATysI/s400/Square_root_raised_cosine_filter_12.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
Note that the peak value of the matched filter response occurs at 65th sample (this number will vary depending on the oversampling rate). Noting down the sample number of the peak value for a single bit input at the transmitter is important in downsampling operation (equivalent to recovering the input bits by sampling using a Digital to Analog Converter). A small snipped of code is given below, to extract the recovered bits out of the matched filter response.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="boxed"&gt;midSample=length(-4:1/overSampling_Factor:4);&lt;br /&gt;
y_truncated=y(midSample-1:end);&lt;b&gt;&lt;span style="color: #38761d;"&gt; %Remove unwanted portions(first few samples till the peak value)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style="color: #38761d;"&gt;&lt;b&gt;%Now the first sample contains the peak value of the response. From here&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%the samples are extracted depending on the oversampling factor&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;y_down = downsample(y_truncated,overSampling_Factor,1);&lt;/span&gt; &lt;b&gt;&lt;span style="color: #38761d;"&gt;%here offset=1 means starting from 1st sample&lt;/span&gt; %retain every 8th sample&lt;/b&gt;&lt;/div&gt;stem(y_down);&lt;br /&gt;
title('Downsampled output (ADC conversion and Sampling)')&lt;br /&gt;
xlabel('Samples')&lt;br /&gt;
ylabel('Amplitude')&lt;/div&gt;&lt;br /&gt;
Following simulation results are shown for a series of input bits: Input_bit =  [1 -1 1 -1 1 1 -1 -1 -1 1 -1 1 1 1]. It is interesting to note how the effect of inter symbol interference being mitigated by the Square Root Raised Cosine Filters implemented at both the transmitter and receiver. The roll-factor of the SRRC filter can be adjusted to see the effects of ISI on the recovered samples.&lt;br /&gt;
&lt;br /&gt;
(Click the picture to enlarge)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-os-hB6mtv2A/TZ6xq_WgPdI/AAAAAAAAEkE/q1fW2IaKr2g/s1600/Square_root_raised_cosine_filter_13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="http://3.bp.blogspot.com/-os-hB6mtv2A/TZ6xq_WgPdI/AAAAAAAAEkE/q1fW2IaKr2g/s400/Square_root_raised_cosine_filter_13.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-OzZMveG7BVA/TZ6wBH3geEI/AAAAAAAAEkA/OYHiPFNNrqc/s1600/Square_root_raised_cosine_filter_13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;References:&lt;/b&gt;&lt;/div&gt;[1] &lt;a href="http://www.3gpp.org/ftp/Specs/archive/25_series/25.104/25104-680.zip" target="_blank"&gt;3GPP TS 25.104 V6.8.0 (2004-12)&lt;/a&gt; (URL for all 3GPP Standards - &lt;a href="http://www.3gpp.org/specifications" target="_blank"&gt;click here&lt;/a&gt;)&lt;br /&gt;
[2]&lt;a href="http://www.michael-joost.de/rrcfilter.pdf" target="_blank"&gt;Michael Joost,"Theory of Root-Raised Cosine Filter",Krefeld DE,December 2010&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: #cc0000;"&gt;Recommended Books&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: #cc0000;"&gt;&lt;a href="http://www.amazon.com/Digital-Communication-Systems-MATLAB-Simulink/dp/1589096215?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communication Systems using MATLAB and Simulink" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1589096215&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1589096215" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Signal-Processing-Bookware-Companion/dp/0495073113?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Signal Processing Using MATLAB (Bookware Companion)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0495073113&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0495073113" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Random-Signals-Engineers-Mathcad-ebook/dp/B000VIFJ5C?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Random Signals for Engineers Using MATLAB and Mathcad" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000VIFJ5C&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000VIFJ5C" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-Digital-Signal-Processing-MATLAB/dp/0534391508?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of Digital Signal Processing Using MATLAB (with CD-ROM)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534391508&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534391508" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: #cc0000;"&gt;&lt;a href="http://www.amazon.com/Signals-Systems-using-MATLAB-Chaparro/dp/0123747163?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Signals and Systems using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123747163&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123747163" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Computer-Based-Exercises-Signal-Processing-Curriculum/dp/0132198258?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Computer-Based Exercises for Signal Processing Using Matlab (Matlab Curriculum)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0132198258&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0132198258" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Discrete-Systems-Laboratory-Bookware-Companion/dp/0534374638?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Discrete Systems Laboratory Using MATLAB (Bookware Companion Series (Pacific Grove, Calif.).)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534374638&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534374638" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt; &lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-6037831866725143477?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=QYnGIxefNbM:YITRQHOMt98:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=QYnGIxefNbM:YITRQHOMt98:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=QYnGIxefNbM:YITRQHOMt98:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=QYnGIxefNbM:YITRQHOMt98:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=QYnGIxefNbM:YITRQHOMt98:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/QYnGIxefNbM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/6037831866725143477/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=6037831866725143477" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/6037831866725143477?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/6037831866725143477?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/QYnGIxefNbM/square-root-raised-cosine-filter.html" title="Square Root Raised Cosine Filter (Matched/split filter implementation)" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-BXMwF6rcJ34/TZ2Pz41xjrI/AAAAAAAAEjs/Bxon-2NPV5Q/s72-c/Square_root_raised_cosine_filter_2.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/04/square-root-raised-cosine-filter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIGRXw5fCp7ImA9WhZREUg.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-3837833963419120642</id><published>2011-04-07T06:01:00.000+01:00</published><updated>2011-04-07T06:02:04.224+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-07T06:02:04.224+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Digital modulations" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>Oversampling, ADC - DAC Conversion,pulse shaping and Matched Filter</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In order to simulate a communication system in Matlab one needs to understand the concept of Oversampling (upsampling) and undersampling (downsampling).&lt;br /&gt;
&lt;br /&gt;
Digital communication systems involves conversion of digital data to analog form (with some modulation,coding stuffs etc..) at the transmitter side. The data transmitted through a channel is in analog form and it needs to be converted back to digital domain by the process of Digital to Analog Conversion (DAC). Once the data is in digital domain, the receiver is at ease to process it to recover the transmitted data.&lt;br /&gt;
&lt;br /&gt;
In Matlab one needs to emulate this situation where in the input data has to be represented in analog form in the transmitter and back to digital form at the receiver. Matlab is just a piece of software that runs on a digital machine (computer terminals), so it cannot really produce data in analog domain. To circumvent this problem, one has to use a process called oversampling.&lt;br /&gt;
&lt;br /&gt;
Lets consider a digital communication system (shown below), where in a train of input data (In = +/-1) are shaped by a pulse shaping filter and modulated by a carrier Fc. This is a simple system implementing BPSK modulation. We will use rectangular pulse shaping filter (p(t)) for implementation in Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Y0FliZZsG_U/TZ02_KJqQdI/AAAAAAAAEjQ/rfgK69sbmwg/s1600/simple_modulation.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="148" src="http://2.bp.blogspot.com/-Y0FliZZsG_U/TZ02_KJqQdI/AAAAAAAAEjQ/rfgK69sbmwg/s400/simple_modulation.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
For illustration we try to transmit only one bit (In=1) through the system. To represent digital to analog conversion ("n" domain to "t" domain), we use oversampling by 4. Oversampling is a process in which additional "oversampling factor-1" zeros are inserted in to the digital data.&lt;br /&gt;
&lt;br /&gt;
For example, oversampling In=&lt;b&gt;1&lt;/b&gt; by a factor of 4 gives&amp;nbsp; [&lt;b&gt;1&lt;/b&gt; &lt;b style="color: #cc0000;"&gt;0 0 0&lt;/b&gt;]. Similarly, oversampling the input [&lt;b&gt;1 0 1 1&lt;/b&gt;] by a factor of 3 gives [&lt;b&gt;1&lt;/b&gt; &lt;b&gt;&lt;span style="color: #cc0000;"&gt;0 0&lt;/span&gt;&lt;/b&gt; &lt;b&gt;0&lt;/b&gt; &lt;b&gt;&lt;span style="color: #cc0000;"&gt;0 0&lt;/span&gt;&lt;/b&gt; &lt;b&gt;1&lt;/b&gt; &lt;b&gt;&lt;span style="color: #cc0000;"&gt;0 0&lt;/span&gt;&lt;/b&gt; &lt;b&gt;1&lt;/b&gt; &lt;b style="color: #cc0000;"&gt;0 0&lt;/b&gt;]. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="boxed"&gt;overSampling_Factor=4;&lt;br /&gt;
Input_bit = 1;&lt;br /&gt;
Input_bit_os=upsample(Input_bit,overSampling_Factor);&lt;b&gt;&lt;span style="color: #274e13;"&gt; &lt;span style="color: #38761d;"&gt;%oversampling by 4 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style="color: #38761d;"&gt;&lt;b&gt;%This is equivalent to performing digital to analog conversion in Tx side&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
The oversampled version of input is then passed through a pulse shaping filter (it can be a rectangular filter, root cosine filter, etc..,). A rectangular filter is implemented in the following code.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%Normalizing the pulse shape to have unit energy&lt;/b&gt;&lt;/div&gt;pt = [ones(1,overSampling_Factor) 0 0 0 0 0 0]/sqrt(overSampling_Factor);&lt;br /&gt;
&lt;div style="color: #38761d;"&gt;&lt;b&gt;% impulse response of a rectangular pulse&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #38761d;"&gt;&lt;b&gt;%convolving the oversampled input with rectangular pulse&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%The output of the convolution operation will be in the transmitter side&lt;/b&gt;&lt;/div&gt;output_of_rect_filter = conv(Input_bit_os,pt);&lt;br /&gt;
&lt;br /&gt;
stem(output_of_rect_filter);&lt;br /&gt;
title('Output of Rectangular Filter at Tx side')&lt;br /&gt;
xlabel('Samples')&lt;br /&gt;
ylabel('Amplitude')&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/-xRym17p1QGY/TZ1CAB4m6pI/AAAAAAAAEjY/8vteKsNeR4w/s1600/rect_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="255" src="http://4.bp.blogspot.com/-xRym17p1QGY/TZ1CAB4m6pI/AAAAAAAAEjY/8vteKsNeR4w/s400/rect_1.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&amp;nbsp;At the receiver side, we might want to recover the transmitter samples. To do this we need to used a matched filter at the receiver side (to maximize the SNR of the system). The matched filter is exactly matched to the pulse shaping filter used in the transmitter side.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%Receiver side; Using a matched filter (that is matched to the rect pulse&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%in the transmitter)&lt;/b&gt;&lt;/div&gt;y = conv(output_of_rect_filter,pt);&lt;br /&gt;
stem(y)&lt;br /&gt;
title('Matched filter output at Rx side')&lt;br /&gt;
xlabel('Samples')&lt;br /&gt;
ylabel('Amplitude')&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/-S6rRm-TFePQ/TZ1CGbOEWCI/AAAAAAAAEjc/OTQH6Lv3Df0/s1600/rect_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="265" src="http://4.bp.blogspot.com/-S6rRm-TFePQ/TZ1CGbOEWCI/AAAAAAAAEjc/OTQH6Lv3Df0/s400/rect_2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Once the received signal is passed through the matched filter it has to be converted back to digital domain ("t" to "n" domain). This is achieved by implementing a downsampling process. Note that the value "1" is at 4 th sample, this is where we have to sample in the receiver side.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="boxed"&gt;%Downsampling by 4, since the actual value of the output is shifted to 4 th&lt;br /&gt;
%sample&lt;br /&gt;
y_down = downsample(y,overSampling_Factor,overSampling_Factor-1);&lt;br /&gt;
&lt;br /&gt;
stem(y_down)&lt;br /&gt;
title('Downsampled output (ADC conversion and Sampling)')&lt;br /&gt;
xlabel('Samples')&lt;br /&gt;
%ylabel('Amplitude')&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/-wMOxVJWTFjc/TZ1CS3FDXsI/AAAAAAAAEjg/hiYo-K5wg2M/s1600/rect_3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="267" src="http://4.bp.blogspot.com/-wMOxVJWTFjc/TZ1CS3FDXsI/AAAAAAAAEjg/hiYo-K5wg2M/s400/rect_3.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The above chart illustrates the scenario in which the input bit is received properly via a matched filter arrangement.Note that there are some trailing zeros in the downsampled signal (which  is the effect of padding additional zeros in the pulse shaping  function). The trailing zeros can be removed, if the padded zeros are  stripped off from the pulse shaping function ( Matlab Code: pt =  [ones(1,overSampling_Factor) ]/sqrt(overSampling_Factor);)&lt;br /&gt;
&lt;br /&gt;
Output of the received signal (after matched filter) for an input [1 0 1 1] is shown below. &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/-rYgnWkYMZTs/TZ1D6himLMI/AAAAAAAAEjk/fhnLjypJODs/s1600/rect_4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/-rYgnWkYMZTs/TZ1D6himLMI/AAAAAAAAEjk/fhnLjypJODs/s400/rect_4.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="color: #cc0000;"&gt;&lt;/div&gt;&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Recommended Products/books on Matlab:&lt;/b&gt;&lt;/div&gt;&lt;a href="http://www.amazon.com/MATLAB-SIMULINK-Student-Version-R2007a/dp/0979223903?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MATLAB &amp;amp; SIMULINK Student Version R2007a" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0979223903&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0979223903" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Advanced-Engineering-Mathematics-Mathematica-MATLAB/dp/0201325497?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Advanced Engineering Mathematics with Mathematica(R) and MATLAB(R), Volume 2" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0201325497&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0201325497" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0201325497" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Matlab-Release-Simulink-Student-Version/dp/0967219558?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Matlab 6 Release 12 with Simulink 4 Student Version" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0967219558&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0967219558" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/MATLAB-Engineers-2nd-Holly-Moore/dp/0136044220?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MATLAB for Engineers (2nd Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0136044220&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0136044220" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Wolfram-Research-Inc-Mathematica-5-1/dp/B0007D9QQ4?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Mathematica 5.1" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B0007D9QQ4&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B0007D9QQ4" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/MATLAB-Introduction-Applications-Amos-Gilat/dp/0470767855?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MATLAB: An Introduction with Applications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0470767855&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0470767855" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0750687622" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/MATLAB-Demystified-David-McMahon/dp/0071485511?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="MATLAB Demystified" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0071485511&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071485511" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Essential-MATLAB-Scientists-Engineers-Second/dp/0750652403?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Essential MATLAB for Scientists and Engineers, Second Edition" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0750652403&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0750652403" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Graphics-GUIs-MATLAB-Third/dp/1584883200?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Graphics and GUIs with MATLAB, Third Edition (Graphics &amp;amp; GUIs with MATLAB)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1584883200&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1584883200" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/-rYgnWkYMZTs/TZ1D6himLMI/AAAAAAAAEjk/fhnLjypJODs/s1600/rect_4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-3837833963419120642?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=gWQjsJ-I0LA:HooJ3fOK92Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=gWQjsJ-I0LA:HooJ3fOK92Y:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=gWQjsJ-I0LA:HooJ3fOK92Y:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=gWQjsJ-I0LA:HooJ3fOK92Y:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=gWQjsJ-I0LA:HooJ3fOK92Y:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/gWQjsJ-I0LA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/3837833963419120642/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=3837833963419120642" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/3837833963419120642?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/3837833963419120642?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/gWQjsJ-I0LA/oversampling-adc-dac-conversionpulse.html" title="Oversampling, ADC - DAC Conversion,pulse shaping and Matched Filter" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-Y0FliZZsG_U/TZ02_KJqQdI/AAAAAAAAEjQ/rfgK69sbmwg/s72-c/simple_modulation.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/04/oversampling-adc-dac-conversionpulse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcHSHs8cCp7ImA9WhZSEEs.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-8981782225493600307</id><published>2011-03-25T09:26:00.002Z</published><updated>2011-03-25T15:30:39.578Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-25T15:30:39.578Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Digital modulations" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><title>BER Vs Eb/N0 for 8-PSK modulation over AWGN</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;BER Vs Eb/No for QPSK and BER were discussed in the previous posts.Click below to see the posts if you have missed them earlier. &lt;br /&gt;
(&lt;a href="http://gaussianwaves.blogspot.com/2010/10/ber-vs-ebn0-for-qpsk-modulation-over.html"&gt;BER Vs Eb/N0 for QPSK modulation over AWGN&lt;/a&gt;),&lt;br /&gt;
(&lt;a href="http://gaussianwaves.blogspot.com/2010/04/ber-vs-ebn0-for-bpsk-modulation-over.html"&gt;BER Vs Eb/N0 for BPSK modulation over AWGN&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
BER Vs Eb/No for 8-PSK is discussed here. A baseband simulation of 8-PSK is demonstrated below.&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Simulation Model: (click to enlarge the figure)&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-Usubb33LIQM/TYxNuBGMb1I/AAAAAAAAEio/KmM_JgyFalI/s1600/8_PSK_simulation_model.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="132" src="https://lh5.googleusercontent.com/-Usubb33LIQM/TYxNuBGMb1I/AAAAAAAAEio/KmM_JgyFalI/s400/8_PSK_simulation_model.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Transmitter:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
A complex baseband M-PSK signal is represented by&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B120%7D%20s_%7Bn%7D%28t%29=%5Csqrt%7B%5Cfrac%7B2E_%7Bs%7D%7D%7BT%7D%7Dcos%28%5Comega%20t+%5Ctheta_%7Bn%7D%20%29%20%5Cmid%20n=1,2,..M" title="\dpi{120} s_{n}(t)=\sqrt{\frac{2E_{s}}{T}}cos(\omega t+\theta_{n} ) \mid n=1,2,..M" /&gt;&lt;br /&gt;
where  Es is the symbol energy of each M-PSK Symbol, T is the bit period, θn  is the phase shift for each of the symbol. For 8-PSK, M=8.&lt;br /&gt;
&lt;br /&gt;
In 8PSK modulator, every 3 input data bits are mapped to one complex-valued 8PSK symbol (where as in QPSK 2 input bits are mapped to one complex-valued QPSK symbol). Each symbol is gray coded prior to mapping them to the 8-PSK constellation (this is to allow only one bit change in the constellation, there by avoiding abrupt phase changes in the constellation which may lead to addition errors in the receiver) . In 8PSK there are eight possible symbols that can be transmitted. We will use eight different phases ( 22.5°, 67.5°, 112.5°, 157.5°, 202.5°, 247.5°, 292.5°, 337.5° ) to represent each 8-PSK symbol. Each symbol is 45° away from adjacent symbols (see the constellation diagram below).&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://lh5.googleusercontent.com/-7L4VvVzngOs/TYwSDFHo3eI/AAAAAAAAEik/3VpWf9N3vfg/s1600/Transmitter_Constellation.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="302" src="https://lh5.googleusercontent.com/-7L4VvVzngOs/TYwSDFHo3eI/AAAAAAAAEik/3VpWf9N3vfg/s400/Transmitter_Constellation.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="https://lh4.googleusercontent.com/-xeNFnVry-xc/TYwRGGt384I/AAAAAAAAEig/L_r6R-b6DnQ/s1600/Transmitter_Constellation.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The 8PSK symbols are transmitted over an AWGN channel that adds Gaussian Noise to the transmitted symbol.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Receiver: &lt;/b&gt;&lt;/div&gt;The demodulation process is performed by finding one of the eight constellation symbols that has the smallest Euclidean distance with received symbol. Some may prefer to use a sector based detection approach in which the received signal constellation is divided into sectors.For 8PSK, the entire constellation can be equally divided into 8 sectors, with each angle sector corresponding to one of the 8 constellation symbols. The demodulation process can be performed by using the angle sectors. For example, the angle sector defined by [0,π/4] corresponds to the 8PSK symbol S&lt;sub&gt;1&lt;/sub&gt;. Instead of this approach, this simulation is based on minimum Euclidean Distance. The demodulator computes the Euclidean Distance of each received symbol against all possible ideal symbols. Then it pin points an ideal symbol which gave the minimum Euclidean Distance.&lt;/div&gt;&lt;br /&gt;
Euclidean Distance is given by&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20D=%5Csqrt%7B%28y_%7BR%7D-s_%7BR%7D%29%5E%7B2%7D+%28y_%7BI%7D-s_%7BI%7D%29%5E%7B2%7D%7D" title="\dpi{150} D=\sqrt{(y_{R}-s_{R})^{2}+(y_{I}-s_{I})^{2}}" /&gt;&lt;br /&gt;
&lt;br /&gt;
Where y=received signal (with noise), s=points on ideal constellation and the subscripts R and I are for their real and imaginary part respectively.&lt;br /&gt;
The demodulator calculates the Euclidean distance of a received symbol against all possible symbols in the constellation and picks a symbol from the ideal constellation that gives the minimum Euclidean Distance.&lt;br /&gt;
&lt;br /&gt;
Finally, the demodulated symbols are converted back to binary symbols and the BER (Bit Error Rate) is calculated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Matlab Program:&lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/MPSK_8.zip?attredirects=0&amp;amp;d=1"&gt; (Click here to download the entire package)&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="background-color: #d8d8d8; font: 16px/20px Georgia,Garamond,Serif; height: 300px; overflow: scroll; width: 550px;"&gt;&lt;b&gt;&lt;span style="color: #38761d;"&gt;%&amp;nbsp;&amp;nbsp; 8PSK Simulation&lt;/span&gt;&lt;br style="color: #38761d;" /&gt;&lt;span style="color: #38761d;"&gt;%&amp;nbsp;&amp;nbsp; Author: Mathuranathan Viswanathan (http://gaussianwaves.blogspot.com)&lt;/span&gt;&lt;br style="color: #38761d;" /&gt;&lt;span style="color: #38761d;"&gt;%&amp;nbsp;&amp;nbsp; License : creative commons : Attribution-NonCommercial-ShareAlike 3.0&lt;/span&gt;&lt;br style="color: #38761d;" /&gt;&lt;span style="color: #38761d;"&gt;%&amp;nbsp;&amp;nbsp; Unported&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
clc;&lt;br /&gt;
clear;&lt;br /&gt;
close all;&lt;br /&gt;
&lt;br /&gt;
N=100000; &lt;b style="color: #38761d;"&gt;%Number of data bits to send over the channel&lt;/b&gt;&lt;br /&gt;
EbN0dB=-6:2:12;&lt;br /&gt;
&lt;br /&gt;
N=N+rem((3-rem(N,3)),3);&lt;span style="color: #38761d;"&gt; &lt;/span&gt;&lt;b style="color: #38761d;"&gt;%add additional bits to the data to make the length multiple of 3&lt;/b&gt;&lt;br /&gt;
&lt;b style="color: #38761d;"&gt;% one 8-PSK symbol contains 3 binary bits&lt;/b&gt;&lt;br /&gt;
x=rand(1,N)&amp;gt;=0.5;&lt;b style="color: #38761d;"&gt;%Generate random 1's and 0's as data;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b style="color: #38761d;"&gt;%Club 3 bits together and gray code it individually&lt;/b&gt;&lt;br /&gt;
inputSymBin=reshape(x,3,N/3)';&lt;br /&gt;
g=bin2gray(inputSymBin);&lt;br /&gt;
&lt;br /&gt;
&lt;b style="color: #38761d;"&gt;%Convert each Gray coded symbols to decimal value this is to ease the process&lt;br /&gt;
%of mapping based on array index&lt;/b&gt;&lt;br /&gt;
b=bin2dec(num2str(g,'%-1d'))';&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #38761d;"&gt;%8-PSK Constellation Mapper&lt;/span&gt;&lt;br style="color: #38761d;" /&gt;&lt;span style="color: #38761d;"&gt;%8-PSK mapping Table&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
map=[1.414 0.707;0.707 1.414;-0.707 1.414;-1.414 0.707;-1.414 -0.707;-0.707 -1.414;0.707 -1.414;1.414 -0.707];&lt;br /&gt;
s=map(b(:)+1,1)+1i*map(b(:)+1,2);&lt;br /&gt;
&lt;br /&gt;
&lt;b style="color: #38761d;"&gt;%Simulation for each Eb/N0 value&lt;/b&gt;&lt;br /&gt;
M=8;&lt;b style="color: #38761d;"&gt; %Number of Constellation points M=2^k for 8-PSK k=3&lt;/b&gt;&lt;br /&gt;
Rm=log2(M);&amp;nbsp;&amp;nbsp; &lt;b style="color: #38761d;"&gt;%Rm=log2(M) for 8-PSK M=8&lt;/b&gt;&lt;br /&gt;
Rc=1;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style="color: #38761d;"&gt;%Rc = code rate for a coded system. Since no coding is used Rc=1&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
simulatedBER = zeros(1,length(EbN0dB));&lt;br /&gt;
theoreticalBER = zeros(1,length(EbN0dB));&lt;br /&gt;
count=1;&lt;br /&gt;
figure; &lt;br /&gt;
for i=EbN0dB&lt;br /&gt;
&lt;b style="color: #38761d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %-------------------------------------------&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; %Channel Noise for various Eb/N0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; %-------------------------------------------&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; %Adding noise with variance according to the required Eb/N0&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; EbN0 = 10.^(i/10); %Converting Eb/N0 dB value to linear scale&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; noiseSigma = sqrt(2)*sqrt(1./(2*Rm*Rc*EbN0)); %Standard deviation for AWGN Noise&lt;br /&gt;
&lt;b style="color: #38761d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %Creating a complex noise for adding with 8-PSK s signal&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; %Noise is complex since 8-PSK is in complex representation&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; n = noiseSigma*(randn(1,length(s))+1i*randn(1,length(s)))';&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; y = s + n;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; plot(real(y),imag(y),'r*');hold on;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; plot(real(s),imag(s),'ko','MarkerFaceColor','g','MarkerSize',7);hold off;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; title(['Constellation plots - ideal 8-PAM (green) Vs Noisy y signal for EbN0dB =',num2str(i),' dB']);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; pause;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;b style="color: #38761d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %Demodulation&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; %Find the signal points from MAP table using minimum Euclidean distance&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; demodSymbols = zeros(1,length(y));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for j=1:length(y)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [minVal,minindex]=min(sqrt((real(y(j))-map(:,1)).^2+(imag(y(j))-map(:,2)).^2));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; demodSymbols(j)=minindex-1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; demodBits=dec2bin(demodSymbols)-'0'; %Dec to binary vector&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xBar=gray2bin(demodBits)'; %gray to binary&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xBar=xBar(:)';&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; bitErrors=sum(sum(xor(x,xBar)));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; simulatedBER(count) = log10(bitErrors/N);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; theoreticalBER(count) = log10(1/3*erfc(sqrt(EbN0*3)*sin(pi/8)));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; count=count+1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
end&lt;br /&gt;
figure;&lt;br /&gt;
plot(EbN0dB,theoreticalBER,'r-*');hold on;&lt;br /&gt;
plot(EbN0dB,simulatedBER,'k-o');&lt;br /&gt;
&lt;br /&gt;
title('BER Vs Eb/N0 (dB) for 8-PSK');legend('Theoretical','Simulated');grid on;&lt;br /&gt;
xlabel('Eb/N0 dB');&lt;br /&gt;
ylabel('BER - Bit Error Rate'); &lt;br /&gt;
grid on;&lt;/div&gt;&lt;br /&gt;
&lt;b style="color: #cc0000;"&gt;Output:&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-DN9jcMWiHU0/TYxdn287cUI/AAAAAAAAEi0/KqBaSBs01Fs/s1600/8_PSK_noise_constellation_12_dB.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="271" src="https://lh3.googleusercontent.com/-DN9jcMWiHU0/TYxdn287cUI/AAAAAAAAEi0/KqBaSBs01Fs/s320/8_PSK_noise_constellation_12_dB.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-x0mbwMAZNak/TYxdnqX0GtI/AAAAAAAAEiw/Wm29z8ZNRjg/s1600/8_PSK_noise_constellation_8_dB.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="https://lh3.googleusercontent.com/-x0mbwMAZNak/TYxdnqX0GtI/AAAAAAAAEiw/Wm29z8ZNRjg/s320/8_PSK_noise_constellation_8_dB.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-T3ceOLYX_Qk/TYxcSta7RLI/AAAAAAAAEis/M8MSUp9XRXY/s1600/PSK_8_BER_EbN0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="316" src="https://lh6.googleusercontent.com/-T3ceOLYX_Qk/TYxcSta7RLI/AAAAAAAAEis/M8MSUp9XRXY/s400/PSK_8_BER_EbN0.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b style="color: #cc0000;"&gt;Recommended Books:&lt;/b&gt; &lt;br /&gt;
&lt;a href="http://www.amazon.com/Digital-Communication-Systems-MATLAB-Simulink/dp/1589096215?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communication Systems using MATLAB and Simulink" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1589096215&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1589096215" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Contemporary-Communication-Systems-Using-MATLAB/dp/0534406173?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Contemporary Communication Systems Using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534406173&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534406173" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-Digital-Signal-Processing-MATLAB/dp/0534391508?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of Digital Signal Processing Using MATLAB (with CD-ROM)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534391508&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534391508" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Signals-Systems-using-MATLAB-Chaparro/dp/0123747163?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Signals and Systems using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123747163&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123747163" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-8981782225493600307?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=2maY0ie8L8c:YDiVhioQMyo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=2maY0ie8L8c:YDiVhioQMyo:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=2maY0ie8L8c:YDiVhioQMyo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=2maY0ie8L8c:YDiVhioQMyo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=2maY0ie8L8c:YDiVhioQMyo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/2maY0ie8L8c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/8981782225493600307/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=8981782225493600307" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/8981782225493600307?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/8981782225493600307?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/2maY0ie8L8c/ber-vs-ebn0-for-8-psk-modulation-over.html" title="BER Vs Eb/N0 for 8-PSK modulation over AWGN" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh5.googleusercontent.com/-Usubb33LIQM/TYxNuBGMb1I/AAAAAAAAEio/KmM_JgyFalI/s72-c/8_PSK_simulation_model.jpg" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/03/ber-vs-ebn0-for-8-psk-modulation-over.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAMRH05cSp7ImA9WhZSEEk.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-828690518239472090</id><published>2011-03-03T02:47:00.006Z</published><updated>2011-03-25T09:53:05.329Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-25T09:53:05.329Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Spread Spectrum" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><title>Walsh Hadamard Code - Matlab Simulation</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The following is a function to generate a Walsh Hadamard Matrix of given codeword size. The codeword size has to be a power of 2.&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;div class="boxed"&gt;function [H]=generateHadamardMatrix(codeSize)&lt;br /&gt;
&lt;div style="color: #274e13;"&gt;&lt;b&gt;%[H]=generateHadamardMatrix(codeSize);&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Function to generate Walsh-Hadamard Matrix where "codeSize" is the code&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% length of walsh code. The first matrix gives us two codes; 00, 01. The second&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% matrix gives: 0000, 0101, 0011, 0110 and so on&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Author: Mathuranathan Viswanathan for http://gaussianwaves.blogspot.com&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% License: Creative Commons: Attribution-NonCommercial-ShareAlike 3.0&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Unported&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;%codeSize=64; %For testing only&lt;/b&gt;&lt;/div&gt;N=2;&lt;br /&gt;
H=[0 0 ; 0 1];&lt;br /&gt;
if bitand(codeSize,codeSize-1)==0&lt;br /&gt;
while(N~=codeSize)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N=N*2;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H=repmat(H,[2,2]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [m,n]=size(H);   &lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #274e13;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %Invert the matrix located at the bottom right hand corner&lt;/b&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i=m/2+1:m,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; for j=n/2+1:n,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H(i,j)=~H(i,j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
end&lt;br /&gt;
else&lt;br /&gt;
disp('INVALID CODE SIZE:The code size must be a power of 2');&lt;br /&gt;
end&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #990000;"&gt;&lt;span style="font-size: large;"&gt;Example:&lt;/span&gt;&lt;/div&gt;To Generate Walsh Codes used in IS-95 (which utilizes 64 Walsh codes of size 64 bits each, use : [H]=generateHadamardMatrix(64)&lt;br /&gt;
This will generate 64 Walsh Codes of length 64-bits (for each code).&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #990000; font-size: large;"&gt;Test Program: &lt;/span&gt;&lt;span style="color: black; font-size: large;"&gt;&lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/Walsh_Hadamard_Codes.zip?attredirects=0&amp;amp;d=1"&gt;Click here to download the entire package&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
Also given below is a program to test the cross-correlation and auto-correlation of Walsh code. A set of 8-Walsh codes are used for this purpose. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Matlab Program to test Walsh Hadamard Codes and to test its orthogonality&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Plots cross-correlation and auto correlation of Walsh Hadamard Codes&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Author: Mathuranathan Viswanathan for http://gaussianwaves.blogspot.com&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% License: Creative Commons: Attribution-NonCommercial-ShareAlike 3.0&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Unported&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
codeSize=8;&lt;br /&gt;
[H]=generateHadamardMatrix(codeSize);&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #274e13;"&gt;&lt;b&gt;%-----------------------------------------------------------&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;%Cross-Correlation of Walsh Code 1 with rest of Walsh Codes&lt;/b&gt;&lt;/div&gt;h = zeros(1, codeSize-1); &lt;b&gt;&lt;span style="color: #274e13;"&gt;%For dynamic Legends&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
s = cell(1, codeSize-1);  &lt;b&gt;&lt;span style="color: #274e13;"&gt;%For dynamic Legends&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
for rows=2:codeSize&lt;br /&gt;
[crossCorrelation,lags]=crossCorr(H(1,:),H(rows,:));&lt;br /&gt;
h(rows-1)=plot(lags,crossCorrelation);&lt;br /&gt;
s{rows-1} = sprintf('Walsh Code Sequence #-%d', rows);&lt;br /&gt;
hold all;&lt;br /&gt;
end&lt;br /&gt;
&lt;div style="color: #274e13;"&gt;&lt;b&gt;%Dynamic Legends&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Select the plots to include in the legend&lt;/b&gt;&lt;/div&gt;index = 1:codeSize-1;&lt;br /&gt;
&lt;div style="color: #274e13;"&gt;&lt;b&gt;% Create legend for the selected plots&lt;/b&gt;&lt;/div&gt;legend(h(index),s{index});&lt;br /&gt;
title('Cross Correlation of Walsh Code 1 with the rest of the Walsh Codes');&lt;br /&gt;
ylabel('Cross Correlation');&lt;br /&gt;
xlabel('Lags');&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #274e13;"&gt;&lt;b&gt;%-----------------------------------------------------------&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #274e13;"&gt;&lt;b&gt;%AutoCorrelation of Walsh Code - 1&lt;/b&gt;&lt;/div&gt;autoCorr2(H(2,:),8,2,1);&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/Walsh_Hadamard_Codes.zip?attredirects=0&amp;amp;d=1"&gt;Click here to download the entire package&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #990000;"&gt;&lt;span style="font-size: large;"&gt;Output:&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-size: small;"&gt;From the output plots below, it can be ascertained that the Walsh codes has excellent cross-correlation property and poor autocorrelation property. Excellent cross-correlation property (zero cross-correlation) implies&amp;nbsp; orthogonality, which makes it suitable for CDMA applications&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #990000;"&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ma0dhR-mV4c/TW7-gyfggjI/AAAAAAAAEiI/tCa-mbDXnsI/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="332" src="http://4.bp.blogspot.com/-ma0dhR-mV4c/TW7-gyfggjI/AAAAAAAAEiI/tCa-mbDXnsI/s400/1.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-QuNOHJOZ5aM/TW7-rQqsTAI/AAAAAAAAEiQ/5MfzXPbtE6U/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="340" src="http://2.bp.blogspot.com/-QuNOHJOZ5aM/TW7-rQqsTAI/AAAAAAAAEiQ/5MfzXPbtE6U/s400/2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
More on Walsh Codes and CDMA:&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2011/02/codes-used-in-cdma.html"&gt;Codes used in CDMA (Long codes, Short Codes and Walsh Codes)&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2010/10/generation-of-gold-codes-and-their.html"&gt;Generation of Gold Codes and their Cross-correlation&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2010/10/preferred-pairs-m-sequences-generation.html"&gt;Preferred Pairs m-sequence generation for Gold Codes&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2010/09/maximum-length-sequences-m-sequences.html"&gt;Maximum Length Sequences&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://gaussianwaves.blogspot.com/2010/09/spread-spectrum-communication-part-1.html"&gt;Spread Spectrum Communications - Intro&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Recommended Books on CDMA and spread spectrum techniques&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.amazon.com/CDMA-Principles-Spread-Spectrum-Communication/dp/0201633744?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="CDMA: Principles of Spread Spectrum Communication" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0201633744&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0201633744" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Spread-Spectrum-CDMA-Principles-Applications/dp/0470091789?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Spread Spectrum and CDMA: Principles and Applications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0470091789&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0470091789" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/CDMA2000-Evolution-System-Concepts-Principles/dp/0471461253?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="CDMA2000 Evolution: System Concepts and Design Principles" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0471461253&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0471461253" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Principles-Spread-Spectrum-Communication-Systems-Torrieri/dp/0387227822?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Principles of Spread-Spectrum Communication Systems" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0387227822&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0024316237" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0890068585" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071406719" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;div style="background-color: transparent; border: medium none; color: black; overflow: hidden; text-align: left; text-decoration: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-828690518239472090?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=OiKlyaUSjkw:xju9Xd_lnOw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=OiKlyaUSjkw:xju9Xd_lnOw:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=OiKlyaUSjkw:xju9Xd_lnOw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=OiKlyaUSjkw:xju9Xd_lnOw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=OiKlyaUSjkw:xju9Xd_lnOw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/OiKlyaUSjkw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/828690518239472090/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=828690518239472090" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/828690518239472090?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/828690518239472090?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/OiKlyaUSjkw/walsh-hadamard-code-matlab-simulation.html" title="Walsh Hadamard Code - Matlab Simulation" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-ma0dhR-mV4c/TW7-gyfggjI/AAAAAAAAEiI/tCa-mbDXnsI/s72-c/1.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/03/walsh-hadamard-code-matlab-simulation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEADQXc8eyp7ImA9WhZSEEk.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-7986391947432648260</id><published>2011-02-28T05:36:00.002Z</published><updated>2011-03-25T09:52:50.973Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-25T09:52:50.973Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Spread Spectrum" /><title>Codes used in CDMA</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;IS-95 CDMA Standard uses three types of codes namely 1) Long code 2) Short code and 3) Walsh Hadamard codes.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-COQd9O-j8j8/TWi6ErAlALI/AAAAAAAAEiA/cIEknBlxUPY/s1600/CDMA+Architecture.GIF" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="161" src="https://lh4.googleusercontent.com/-COQd9O-j8j8/TWi6ErAlALI/AAAAAAAAEiA/cIEknBlxUPY/s400/CDMA+Architecture.GIF" width="400" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #990000;"&gt;&lt;span style="font-size: large;"&gt;Long Code:&lt;/span&gt;&lt;/div&gt;Long codes run at 1.2288 Mb/s and are 42 bits longs (created using a 42 bits LFSR register). It takes approx 41.2 days to repeat a long code at this rate. It is used for both encryption and spreading. Encryption is achieved by using a mask called Long Code mask which is a created using a 64-bit authentication key called A-key (assigned by CAVE protocol) and Electronic Serial Number ( ESN - assigned each user based on the mobile number). The Long code changes each time a new connection is created.&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;div style="color: #990000;"&gt;&lt;span style="font-size: large;"&gt;Short Code:&lt;/span&gt;&lt;/div&gt;Short code is a m-sequence of lenght 2&lt;sup&gt;15&lt;/sup&gt;-1 (created using a 15 bit LFSR register) and is used for synchronization purpose in the forward as well as reverse links. The short code is also used to identify  cell/base station connection in the forward link. It repeats approx 75 times in 2 seconds. Each base station is assigned a cyclically shifted version of same short code sequence to differentiate the base stations.This is also called PN offset in CDMA jargon. Since the cyclically shifted versions of a same m-sequence offer poor correlation, it is easier to differentiate between different base station links.&lt;br /&gt;
&lt;br /&gt;
During the initial call setup stage, a mobile phone tries to find a base station (in 2 seconds max allowed time), if it find a base station, the mobile phone is validated using a database by the base station and is assigned a PN Short code sequence. This PN short code sequence uniquely identifies the connection between the particular base station and the mobile devices served under that base station.&lt;br /&gt;
In reality two short code sequences are used one for I channel and another for Q channel (used in spreading and de-spreading).&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #990000;"&gt;&lt;span style="font-size: large;"&gt;Walsh Hadamard Code:&lt;/span&gt;&lt;/div&gt;CDMA used another type of code called Walsh Hadamard Code. In IS-95 CDMA, 64 Walsh codes are used per base station. This enables to create 64 separate channels per base stations (i.e. a base station can handle maximum 64 unique users at a given time).In CDMA-2000 standard, 256 Walsh codes are used to handle maximum 256 unique users under a base.&lt;br /&gt;
&lt;br /&gt;
Walsh codes are created using Hadamard Matrix and transform. The codes under a family of Walsh codes, posses a beautiful property of being orthogonal to each other (what else do we want to identify/accommodate users ?). &lt;br /&gt;
&lt;br /&gt;
The first matrix in a Hadamard transform is&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20H1%20=%20%5Cbegin%7Bbmatrix%7D%200%20&amp;amp;0%20%5C%5C%200%20&amp;amp;%201%20%5Cend%7Bbmatrix%7D" title="\dpi{150} H1 = \begin{bmatrix} 0 &amp;amp;0 \\ 0 &amp;amp; 1 \end{bmatrix}" /&gt;&lt;br /&gt;
&lt;br /&gt;
The next matrices are formed iteratively using&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20H_%7BN+1%7D%20=%20%5Cbegin%7Bbmatrix%7D%20H_%7BN%7D%20&amp;amp;%20H_%7BN%7D%20%5C%5C%20H_%7BN%7D%20&amp;amp;%20%5Cbar%7BH_%7BN%7D%7D%20%5Cend%7Bbmatrix%7D" title="\dpi{150} H_{N+1} = \begin{bmatrix} H_{N} &amp;amp; H_{N} \\ H_{N} &amp;amp; \bar{H_{N}} \end{bmatrix}" /&gt;&lt;br /&gt;
&lt;br /&gt;
For example H2 will be&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20H_%7B2%7D%20=%20%5Cbegin%7Bbmatrix%7D%20H_%7B1%7D%20&amp;amp;%20H_%7B1%7D%20%5C%5C%20H_%7B1%7D%20&amp;amp;%20%5Cbar%7BH_%7B1%7D%7D%20%5Cend%7Bbmatrix%7D%20=%5Cbegin%7Bbmatrix%7D%200%20&amp;amp;%200%20&amp;amp;0%20&amp;amp;0%20%5C%5C%200%20&amp;amp;%201%20&amp;amp;%200%20&amp;amp;1%20%5C%5C%200%20&amp;amp;0%20&amp;amp;1%20&amp;amp;1%20%5C%5C%200%20&amp;amp;%201%20&amp;amp;%201%20&amp;amp;%200%20%5Cend%7Bbmatrix%7D" title="\dpi{150} H_{2} = \begin{bmatrix} H_{1} &amp;amp; H_{1} \\ H_{1} &amp;amp; \bar{H_{1}} \end{bmatrix} =\begin{bmatrix} 0 &amp;amp; 0 &amp;amp;0 &amp;amp;0 \\ 0 &amp;amp; 1 &amp;amp; 0 &amp;amp;1 \\ 0 &amp;amp;0 &amp;amp;1 &amp;amp;1 \\ 0 &amp;amp; 1 &amp;amp; 1 &amp;amp; 0 \end{bmatrix}" /&gt;&lt;br /&gt;
&lt;br /&gt;
Each row of a Hadamard matrix represent a unique Walsh code and all the Walsh codes in a given matrices are orthogonal. The length of the row of the matrix ( number of columns otherwise) is the code-length of the Walsh codes. To get a 64-Walsh code matrix we need to transform the matrices till H8 (this matrix contains 64 rows - representing 64 walsh codes and each code is of 64 bits length).&lt;br /&gt;
&lt;br /&gt;
Walsh codes posses excellent cross-correlation property ( cross correlation of one Walsh code with another is always zero) therefore possess excellent orthogonality property. The auto-correlation property of Walsh code is very poor and so it is used only in synchronous CDMA networks, which maintains a synchronizing mechanism to identify the starting of the codeword.&lt;br /&gt;
&lt;br /&gt;
Actually in IS-95, out of the 64 available Walsh codes, Walsh code 0 is reserved for pilot channel, 1 to 7 are assigned for synch channel and paging channels and the remaining 8-63 are assigned for users (traffic channel).&lt;br /&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both;"&gt;&lt;a href="https://lh4.googleusercontent.com/-COQd9O-j8j8/TWi6ErAlALI/AAAAAAAAEiA/cIEknBlxUPY/s1600/CDMA+Architecture.GIF" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-7986391947432648260?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=d_UoQkLqa7k:Q0QJ2yecxew:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=d_UoQkLqa7k:Q0QJ2yecxew:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=d_UoQkLqa7k:Q0QJ2yecxew:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=d_UoQkLqa7k:Q0QJ2yecxew:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=d_UoQkLqa7k:Q0QJ2yecxew:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/d_UoQkLqa7k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/7986391947432648260/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=7986391947432648260" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/7986391947432648260?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/7986391947432648260?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/d_UoQkLqa7k/codes-used-in-cdma.html" title="Codes used in CDMA" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-COQd9O-j8j8/TWi6ErAlALI/AAAAAAAAEiA/cIEknBlxUPY/s72-c/CDMA+Architecture.GIF" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/02/codes-used-in-cdma.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEABQ3Y7fCp7ImA9WhZSEEk.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-7562408176866098802</id><published>2011-02-10T08:57:00.001Z</published><updated>2011-03-25T09:52:32.804Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-25T09:52:32.804Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>Window Functions - An Analysis</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Effect of limited measurement time and it consequence - Spectral Leakage were discussed in the &lt;a href="http://gaussianwaves.blogspot.com/2011/01/fft-and-spectral-leakage.html" target="_blank"&gt;previous post.&lt;/a&gt; Lets discuss the application of window techniques that has the potential of reducing the spectral leakage.&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
The usage of windows (like Hann,Hamming,etc.., except for rectangular window) smoothens the observed signal over the edges of measured time interval and gradually reduces it to zero. This prevents glitches in the "assumed" signal repetitively reconstructed by the Fourier Transform. This phenomena reduces the spectral leakage.&lt;br /&gt;
&lt;br /&gt;
The process of multiplying the measured signal with a smoothly ending function (that gradually reduces to zero) is called "windowing" technique and the function is called "window" function. Frequency domain characteristics of window functions are often analyzed to determine their suitability for a specific application/system limitations. Spectral characteristics of window functions are used to underpin the answer to the most commonly occurring dilemma of making a choice between "detection" and "resolution".&lt;br /&gt;
&lt;br /&gt;
"Detection" means detecting a desired signal in the presence of broadband noise. Resolution refers to the ability of distinguishing narrowband spectral components. Available are plethora of parameters that would help us to select the window functions which would suit our needs.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Commonly used Parameters for Window Selection:&lt;sup&gt;[1][2][3]&lt;/sup&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;Main Lobe Width:&lt;/b&gt;&lt;br /&gt;
Main Lobe Width is directly linked to "Frequency resolution". Narrower the main lobe, more will be its frequency resolution (Ability of selecting finest frequency components). Main Lobe Width is the measure of the main lobe width at -3dB or -6dB below main lobe peak. When the main lobe width decreases, the remaining energy spreads out to side lobes thereby increasing spectral leakage/decreasing amplitude accuracy (decreasing "detection" ability). A compromise is needed to strike a balance between detection and resolution that would suit the application at hand.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Side Lobe Level:&lt;/b&gt;&lt;br /&gt;
Side lobes occur at either side of the main lobe and they approach zero at integral multiples of Fs/N (where Fs=Sampling Frequency; N is the length of N-point FFT/DFT). Side lobes  directly affect the extent to which adjacent frequency components leak into adjacent frequency bins. Side Lobe Level is usually measure for that side lobe which has the maximum peak (compared to other side lobes). It is measured in decibels relative to the peak of the main lobe. Lesser the side lobe level of a window, more will be its detection ability.The side lobe roll-off rate is the asymptotic decay rate in decibels per decade of frequency of the peaks of the side lobes.(Note: Main Lobe Width and Side Lobe levels can be measured by visual inspection of the frequency response of the windows)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;For an "Ideal" Window :&lt;/b&gt;&lt;br /&gt;
1) Main lobe width is very small (High Frequency Resolution)&lt;br /&gt;
2) Side Lobe level is very high (Good noise suppression - High detection ability)&lt;br /&gt;
3) Side Lobes fall-offs rapidly&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Normalized Equivalent Noise Bandwidth:&lt;/b&gt;&lt;sup&gt;[2]&lt;/sup&gt;&lt;br /&gt;
The windowing of a signal in time also affects the resolution bandwidth  that can be achieved. When calculating the spectrum of a signal segment  the resolution bandwidth achieved with a window is always lower (worse)  than the resolution bandwidth achieved without a window. The normalized  equivalent noise bandwidth (NENBW) of a window is one measure of how  much it reduces the resolution bandwidth that can be achieved. To  compensate for this a longer signal segment should be processed.Equivalent noise bandwidth (ENBW) compares the window to an ideal,  rectangular filter. It is the equivalent width of a rectangular filter  that passes the same amount of white noise as the window. The normalized  ENBW (NENBW) is the ENBW multiplied by the time duration of the of the  signal being windowed. NENBW values for windows available in  SpectrumAnalyzerResBW are listed in the following table.For our computation we assume that the time duration is of unit duration ,therefore ENBW and NENBW will be equal.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Calculation of Equivalent Noise Bandwidth:&lt;/b&gt;&lt;br /&gt;
Equivalent Noise Bandwidth is calculated as a ratio of inherent power gain over coherent power gain as given below. This equation is particularly useful for simulations as we do not have to bother about the transfer functions of each window functions in frequency domain.&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B120%7D%20%5Cbegin%7Bmatrix%7D%20Inherent%5C,%20Power%5C,%20Gain%20=%20%5Cfrac%7B1%7D%7BN%7D%5Csum_%7Bi=1%7D%5E%7BN%7Dw%28i%29%5E%7B2%7D%5C%5C%5C%5C%20Coherent%5C,%20Power%5C,%20Gain%20=%20%5Cleft%20[%20%5Cfrac%7B1%7D%7BN%7D%5Csum_%7Bi=1%7D%5E%7BN%7Dw%28i%29%5Cright%20]%5E%7B2%7D%5C%5C%5C%5C%20ENBW=%5Cfrac%7BInherent%5C,%20Power%5C,%20Gain%7D%7BCoherent%5C,%20Power%5C,%20Gain%7D%20%5Cend%7Bmatrix%7D" title="\dpi{120} \begin{matrix} Inherent\, Power\, Gain = \frac{1}{N}\sum_{i=1}^{N}w(i)^{2}\\\\ Coherent\, Power\, Gain = \left [ \frac{1}{N}\sum_{i=1}^{N}w(i)\right ]^{2}\\\\ ENBW=\frac{Inherent\, Power\, Gain}{Coherent\, Power\, Gain} \end{matrix}" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;List of Window Functions:&lt;/b&gt;&lt;sup&gt;[3]&lt;/sup&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20Rectangular%5C,:%5C,%20w%28n%29=1" title="\dpi{120} Rectangular\,:\, w(n)=1" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20Hanning%5C,:%5C,%20w%28n%29=0.5%5Cleft%20%281-cos%5Cleft%20%28%20%5Cfrac%7B2%5Cpi%20n%7D%7BN-1%7D%5Cright%20%29%20%5Cright%29" title="\dpi{150} w(n)=0.5\left (1-cos\left ( \frac{2\pi n}{N-1}\right ) \right )" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20Hamming%5C,%20:%5C,%20w%28n%29=0.54-0.46%5C,%20cos%5Cleft%20%28%20%5Cfrac%7B2%5Cpi%20n%7D%7BN-1%7D%5Cright%20%29%20%5Cright%29" title="\dpi{150} w(n)=0.54-0.46\, cos\left ( \frac{2\pi n}{N-1}\right ) \right )" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7D%20Bartlett%5C,%20:%5C,%20w%28n%29=%5Cfrac%7B2%7D%7BN%7D%5Cleft%20%28%5Cfrac%7BN%7D%7B2%7D-%5Cleft%20%7C%20n-%5Cfrac%7BN-1%7D%7B2%7D%20%5Cright%20%7C%20%5Cright%20%29" title="\dpi{200} w(n)=\frac{2}{N}\left (\frac{N}{2}-\left | n-\frac{N-1}{2} \right | \right )" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7DBlackman%5C,%20:%5C%5C%20%5Calpha=0.16;a_%7B0%7D=%5Cfrac%7B1-%5Calpha%7D%7B2%7D;a_%7B1%7D=%5Cfrac%7B1%7D%7B2%7D;a_%7B2%7D=%5Cfrac%7B%5Calpha%7D%7B2%7D%5C%5C%5C%5C%20w%28n%29=a_%7B0%7D-a_%7B1%7D%5Ccos%5Cleft%20%28%20%5Cfrac%7B2%5Cpi%20n%7D%7BN-1%7D%5Cright%20%29%5Cright%20%29+a_%7B2%7D%5Ccos%5Cleft%20%28%20%5Cfrac%7B4%5Cpi%20n%7D%7BN-1%7D%5Cright%20%29%20%5Cright%20%29" title="\dpi{150} \begin{matrix} \alpha=0.16;a_{0}= \frac{1-\alpha}{2};a_{1}=\frac{1}{2};a_{2}=\frac{\alpha}{2}\\\\ w(n)=a_{0}-a_{1}\cos\left ( \frac{2\pi n}{N-1}\right ) \right )+a_{2}\cos\left ( \frac{4\pi n}{N-1}\right ) \right ) \end{matrix}" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7DKaiser%5C,%20:%5C%5C%20w%28n%29=%5Cfrac%7BI_%7B0%7D%5Cleft%20%28%20%5Cpi%5Calpha%5Csqrt%7B1-%5Cleft%20%28%5Cfrac%7B2n%7D%7BN-1%7D-1%20%5Cright%20%29%5E%7B2%7D%7D%20%5Cright%20%29%7D%7BI_%7B0%7D%5Cleft%20%28%5Cpi%5Calpha%7D%5Cright%20%29" title="\dpi{150} w(n)=\frac{I_{0}\left (\pi\alpha\sqrt{1-\left ( \frac{2n}{N-1}-1 \right )^{2}} \right )}{I_{0}\left(\pi\alpha}\right )" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7DGaussian%5C,%20:%5C%5C%20w%28n%29=e%5E%7B%5Cfrac%7B-1%7D%7B2%7D%5Cleft%20%28%20%5Cfrac%7Bn-%5Cleft%20%28%20N-1%20%5Cright%29/2%7D%7B%5Csigma%5Cleft%20%28%20N-1%20%5Cright%20%29/2%20%7D%20%5Cright%20%29%5E%7B2%7D%7D" title="\dpi{150} w(n)=e^{\frac{-1}{2}\left ( \frac{n-\left ( N-1\right )/2}{\sigma\left ( N-1 \right )/2 } \right )^{2}}" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7DFlattop%5C,%20:%5C%5C%20%5Cbegin%7Bmatrix%7Da_%7B0%7D=1;a_%7B1%7D=1.93;a_%7B2%7D=1.29;a_%7B3%7D=0.388;a_%7B4%7D=0.032%5C%5C%5C%5C%20w%28n%29=a_%7B0%7D-a_%7B1%7D%5C,%20cos%5Cleft%20%28%20%5Cfrac%7B2%5Cpi%20n%7D%7BN-1%7D%20%5Cright%29+a_%7B2%7D%5C,%20cos%5Cleft%20%28%20%5Cfrac%7B4%5Cpi%20n%7D%7BN-1%7D%20%5Cright%20%29-a_%7B3%7D%5C,%20cos%5Cleft%20%28%20%5Cfrac%7B6%5Cpi%20n%7D%7BN-1%7D%20%5Cright%20%29+a_%7B4%7D%5C,%20cos%5Cleft%20%28%5Cfrac%7B8%5Cpi%20n%7D%7BN-1%7D%20%5Cright%20%29%20%5Cend%7Bmatrix%7D" title="\dpi{150} \begin{matrix}a_{0}=1;a_{1}=1.93;a_{2}=1.29;a_{3}=0.388;a_{4}=0.032\\\\ w(n)=a_{0}-a_{1}\, cos\left ( \frac{2\pi n}{N-1} \right)+a_{2}\, cos\left ( \frac{4\pi n}{N-1} \right )-a_{3}\, cos\left ( \frac{6\pi n}{N-1} \right )+a_{4}\, cos\left (\frac{8\pi n}{N-1} \right ) \end{matrix}" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="boxed"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5Cdpi%7B150%7DBartlett-Hann%5C,%20:%5C%5C%20%5Cbegin%7Bmatrix%7D%20a_%7B0%7D=0.62;a_%7B1%7D=0.48;a_%7B2%7D=0.38%5C%5C%5C%5Cw%28n%29=a_%7B0%7D-a_%7B1%7D%5Cleft%20%7C%20%5Cfrac%7Bn%7D%7BN-1%7D-%5Cfrac%7B1%7D%7B2%7D%20%5Cright%20%7C-a_%7B2%7D%5C,%20cos%5Cleft%20%28%20%5Cfrac%7B2%5Cpi%20n%7D%7BN-1%7D%20%5Cright%20%29%5Cend%7Bmatrix%7D" title="\dpi{150} \begin{matrix} a_{0}=0.62;a_{1}=0.48;a_{2}=0.38\\\\ w(n)=a_{0}-a_{1}\left |\frac{n}{N-1}-\frac{1}{2} \right |-a_{2}\, cos\left ( \frac{2\pi n}{N-1} \right ) \end{matrix}" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Matlab Code: &lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/Window_Functions.zip?attredirects=0&amp;amp;d=1"&gt;(click here to download)&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
A Matlab Code for simulating the Window functions and its response is given below. The Main lobe level, Side lobe level ENBW and other parameters are measured based on the plots obtained and are tabulated below.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="boxed"&gt;% Simulation of Window Functions and its characteristics &amp;nbsp; &lt;br /&gt;
%Author: Mathuranathan Viswanathan (http://gaussianwaves.blogspot.com)&lt;br /&gt;
%&amp;nbsp;&amp;nbsp; License : creative commons : Attribution-NonCommercial-ShareAlike 3.0&lt;br /&gt;
%&amp;nbsp;&amp;nbsp; Unported &lt;br /&gt;
clear;&lt;br /&gt;
clc;&lt;br /&gt;
N=64;&lt;br /&gt;
n=0:N-1;&lt;br /&gt;
&lt;b style="color: #674ea7;"&gt;%Window Functions&lt;/b&gt;&lt;br /&gt;
w_rec=ones(1,N);&lt;br /&gt;
w_hann=0.5*(1-cos(2*pi*n/(N-1)));&lt;br /&gt;
w_hamming=0.54-0.46*cos(2*pi*n/(N-1));&lt;br /&gt;
w_bartlett=2/N*(N/2-abs(n-(N-1)/2));&lt;br /&gt;
&lt;br /&gt;
alpha=0.16;a0=(1-alpha)/2;a1=1/2;a2=alpha/2;&lt;br /&gt;
w_blackman=a0-a1*cos(2*pi*n/(N-1))+a2*cos(4*pi*n/(N-1));&lt;br /&gt;
&lt;br /&gt;
alpha=3;&lt;br /&gt;
num=besseli(0,pi*alpha*sqrt(1-(2*n/(N-1)-1).^2));&lt;br /&gt;
den=besseli(0,pi*alpha);&lt;br /&gt;
w_kaiser=num/den;&lt;br /&gt;
&lt;br /&gt;
alpha=0.5;&lt;br /&gt;
w_gaussian=exp(-1/2*((n-(N-1)/2)./(alpha*(N-1)/2)).^2);&lt;br /&gt;
&lt;br /&gt;
a0=1;a1=1.93;a2=1.29;a3=0.388;a4=0.032;&lt;br /&gt;
w_flattop=a0-a1*cos(2*pi*n/(N-1))+a2*cos(4*pi*n/(N-1))-a3*cos(6*pi*n/(N-1))+a4*cos(8*pi*n/(N-1));&lt;br /&gt;
w_flattop=w_flattop/max(w_flattop);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #674ea7;"&gt;%Frequency Response of Window Functions&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
[W_REC,f]=freqz(w_rec,1);&lt;br /&gt;
W_REC=W_REC/(max(abs(W_REC)));&lt;br /&gt;
[W_HANN,f]=freqz(w_hann,1);&lt;br /&gt;
W_HANN=W_HANN/(max(abs(W_HANN)));&lt;br /&gt;
[W_HAMMING,f]=freqz(w_hamming,1);&lt;br /&gt;
W_HAMMING=W_HAMMING/(max(abs(W_HAMMING)));&lt;br /&gt;
[W_BARTLETT,f]=freqz(w_bartlett,1);&lt;br /&gt;
W_BARTLETT=W_BARTLETT/(max(abs(W_BARTLETT)));&lt;br /&gt;
[W_BLACKMAN,f]=freqz(w_blackman,1);&lt;br /&gt;
W_BLACKMAN=W_BLACKMAN/(max(abs(W_BLACKMAN)));&lt;br /&gt;
[W_KAISER,f]=freqz(w_kaiser,1);&lt;br /&gt;
W_KAISER=W_KAISER/(max(abs(W_KAISER)));&lt;br /&gt;
[W_GAUSSIAN,f]=freqz(w_gaussian,1);&lt;br /&gt;
W_GAUSSIAN=W_GAUSSIAN/(max(abs(W_GAUSSIAN)));&lt;br /&gt;
[W_FLATTOP,f]=freqz(w_flattop,1);&lt;br /&gt;
W_FLATTOP=W_FLATTOP/(max(abs(W_FLATTOP)));&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #674ea7;"&gt;%Plotting&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
figure;&lt;br /&gt;
handle=plot(n,[w_rec;w_hann;w_hamming;w_bartlett;w_blackman;w_kaiser;w_gaussian]);&lt;br /&gt;
set(handle,'linewidth',1.5);hold on;&lt;br /&gt;
handle=plot(n,[w_flattop],'b-*');&lt;br /&gt;
set(handle,'linewidth',1.5);axis([0 N-1 -0.2 1.2]);grid on;&lt;br /&gt;
legend('Rectangular','Hanning','Hamming','Bartlett','Blackman','Kaiser','Gaussian','Flat-top',0);&lt;br /&gt;
title('Window Functions in Time domain - w(n)');&lt;br /&gt;
%xlabel('Samples');ylabel('Amplitude');&lt;br /&gt;
&lt;br /&gt;
figure;&lt;br /&gt;
handle=plot(20*log10(abs(([W_REC W_HANN W_HAMMING W_BARTLETT W_BLACKMAN W_KAISER W_GAUSSIAN]))));&lt;br /&gt;
set(handle,'linewidth',1.5);hold on;&lt;br /&gt;
handle=plot(20*log10(abs(([W_FLATTOP]))),'b-*');&lt;br /&gt;
set(handle,'linewidth',1.5);axis([0 length(W_REC)-1 -200 1]);grid on;&lt;br /&gt;
legend('Rectangular','Hanning','Hamming','Bartlett','Blackman','Kaiser','Gaussian','Flat-top',0);&lt;br /&gt;
title('Frequency Response of Window function- W(K)');&lt;br /&gt;
xlabel('Frequency Bins (K)');%ylabel('Magnitude');&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #674ea7;"&gt;%Equivalent Noise Bandwidth Calculations&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
ENBW_Rectangular=(1/N*sum(w_rec.^2))/((1/N*sum(w_rec)).^2)&lt;br /&gt;
ENBW_Hanning=(1/N*sum(w_hann.^2))/((1/N*sum(w_hann)).^2)&lt;br /&gt;
ENBW_Hamming=(1/N*sum(w_hamming.^2))/((1/N*sum(w_hamming)).^2)&lt;br /&gt;
ENBW_Bartlett=(1/N*sum(w_bartlett.^2))/((1/N*sum(w_bartlett)).^2)&lt;br /&gt;
ENBW_Blackman=(1/N*sum(w_blackman.^2))/((1/N*sum(w_blackman)).^2)&lt;br /&gt;
ENBW_Kaiser=(1/N*sum(w_kaiser.^2))/((1/N*sum(w_kaiser)).^2)&lt;br /&gt;
ENBW_Gaussian=(1/N*sum(w_gaussian.^2))/((1/N*sum(w_gaussian)).^2)&lt;br /&gt;
ENBW_Flattop=(1/N*sum(w_flattop.^2))/((1/N*sum(w_flattop)).^2)&lt;br /&gt;
&lt;b&gt;&lt;br style="color: #674ea7;" /&gt;&lt;span style="color: #674ea7;"&gt;%Other functions to try&lt;/span&gt;&lt;br style="color: #674ea7;" /&gt;&lt;span style="color: #674ea7;"&gt;%Bartlett-Hann Window&lt;/span&gt;&lt;br style="color: #674ea7;" /&gt;&lt;span style="color: #674ea7;"&gt;%a0=0.62;a1=0.48;a2=0.38;&lt;/span&gt;&lt;br style="color: #674ea7;" /&gt;&lt;span style="color: #674ea7;"&gt;%w_bartlett_hann=a0-a1*abs(n/(N-1) - 1/2)-a2*cos(2*pi*n/(N-1));&lt;/span&gt;&lt;br style="color: #674ea7;" /&gt;&lt;span style="color: #674ea7;"&gt;%W_BARTLETT_HANN=freqz(w_bartlett_hann,1,f);&lt;/span&gt;&lt;br style="color: #674ea7;" /&gt;&lt;span style="color: #674ea7;"&gt;%W_BARTLETT_HANN=W_BARTLETT_HANN/(max(abs(W_BARTLETT_HANN)));&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Simulation Results and Tabulation of "Measured" Window Parameters:&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/-LSXPzmp2dr4/TVOIJIWQW9I/AAAAAAAAEhQ/yJ4tJcDDJrM/s1600/windowfunction_time_domain.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/-LSXPzmp2dr4/TVOIJIWQW9I/AAAAAAAAEhQ/yJ4tJcDDJrM/s400/windowfunction_time_domain.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TVOIIpdLpsI/AAAAAAAAEhM/L89Zcpmk0H4/s1600/windowfunction_frequency_domain.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="257" src="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TVOIIpdLpsI/AAAAAAAAEhM/L89Zcpmk0H4/s400/windowfunction_frequency_domain.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-5DUutNqgeu8/TVOj1KrIB2I/AAAAAAAAEhY/nMZVJ5VInOQ/s1600/Window_Functions_Characteristics.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" src="http://4.bp.blogspot.com/-5DUutNqgeu8/TVOj1KrIB2I/AAAAAAAAEhY/nMZVJ5VInOQ/s400/Window_Functions_Characteristics.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/-yXISrqjKrJ4/TVOjcjt904I/AAAAAAAAEhU/i9lpPYxlV0s/s1600/Window_Functions_Characteristics.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt; &lt;/a&gt;&lt;/div&gt;&lt;div style="color: #cc0000;"&gt;&lt;b&gt;References:&lt;/b&gt;&lt;/div&gt;[1] National Instruments, &lt;a href="http://zone.ni.com/reference/en-XX/help/371361B-01/lvanlsconcepts/char_smoothing_windows/" target="_blank"&gt;"Characteristics of Different Smoothing Windows"&lt;/a&gt; ,LabView 8.2 Help,Aug 2006&lt;br /&gt;
&lt;br /&gt;
[2] Agilent Technologies,&lt;a href="http://cp.literature.agilent.com/litweb/pdf/ads2008/sinks/ads2008/SpectrumAnalyzerResBW.html" target="_blank"&gt;"Spectrum analyzer with resolution bandwidth setting",&lt;/a&gt;Advanced Design System Documentation 2008.&lt;br /&gt;
[3] Wikipedia, &lt;a href="http://en.wikipedia.org/wiki/Window_function" target="_blank"&gt;"Window Function"&lt;/a&gt; ,Wikimedia Foundation Inc.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Additional Resources:&lt;/b&gt;&lt;/div&gt;[1] If you are particularly interested in calculating the Equivalent Noise Bandwidth of Analog Filters refer - Thomas J. Karras,&lt;a href="http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19660001034_1966001034.pdf"&gt;"Equivalent Noise Bandwidth Analysis from Transfer Functions"&lt;/a&gt;,NASA Technical Note,NASA TN D-2842&lt;br /&gt;
&lt;br /&gt;
[2] Strategies for Choosing Windows : Michael Cerna and Audrey F. Harvey,&lt;a href="http://www.electronics.teipir.gr/PersonalPages/papageorgas/download/dsp_lab_I/MATLAB_material/FFT_fundamentals.pdf"&gt;"The Fundamentals of FFT-Based Signal Analysis and Measurement"&lt;/a&gt;,National Instruments Application Notes 041.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-7562408176866098802?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=mwlpcfN7mps:tzVbMT5_QHk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=mwlpcfN7mps:tzVbMT5_QHk:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=mwlpcfN7mps:tzVbMT5_QHk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=mwlpcfN7mps:tzVbMT5_QHk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=mwlpcfN7mps:tzVbMT5_QHk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/mwlpcfN7mps" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/7562408176866098802/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=7562408176866098802" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/7562408176866098802?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/7562408176866098802?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/mwlpcfN7mps/window-functions-analysis.html" title="Window Functions - An Analysis" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-LSXPzmp2dr4/TVOIJIWQW9I/AAAAAAAAEhQ/yJ4tJcDDJrM/s72-c/windowfunction_time_domain.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/02/window-functions-analysis.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIBRn06fip7ImA9Wx9UE00.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-2116153730839711126</id><published>2011-01-20T10:34:00.001Z</published><updated>2011-02-10T02:55:57.316Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-10T02:55:57.316Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>FFT and Spectral Leakage</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Introduction:&lt;/b&gt;&lt;/div&gt;Frequency Transform is&amp;nbsp; used to study a signal's frequency domain characteristics. When using FFT to study the frequency domain characteristics of a signal, there are two limits : 1) The detectability of a small signal in the presence of a larger one ; 2) frequency resolution - which distinguishes two different frequencies. &lt;br /&gt;
&lt;br /&gt;
In practice, the measured signals are limited in time and the FFT calculates the frequency transform over a certain number of discreet frequencies called bins.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Spectral Leakage:&lt;/b&gt;&lt;/div&gt;In reality, signals are of time-limited nature and nothing can be known about the signal beyond the measured interval. For example, if the measurement of a never ending continuous train of sinusoidal wave is of interest, at some point of time we need to terminate our measurement to do further analysis. The limit on the time is also posed by limitations of the measurement system itself (like buffer size) besides other factors. Some assumptions have to made about the nature of the signal outside the measured interval. Fourier Transforms implicitly assumes that the signal essentially repeats itself after the measured interval.&lt;br /&gt;
&lt;br /&gt;
Figure 1 illustrates the scenario in which a continuous train of sinusoidal signal is observed over a finite interval of time ("measured signal"). As discussed, the FFT assumes the signal to be continuous (conceptually, it does this by juxtaposing the measured signal repetitively). Observe the glitches in the assumed signal. These glitches are the manifestations of the measurement time relative to the frequency of the actual signal. If measurement time is an integral multiple of the rate of the actual signal (i.e. the inverse of the frequency of the signal), then no glitch will be observed in the assumed signal. In Figure 1, the measurement time is purposefully made to be a non-integral multiple of the actual signal rate. These sharp discontinuities will spread out in the frequency domain. This is called spectral leakage. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_4Q2hMGW5AXs/TTfXnCBWIZI/AAAAAAAAEgE/wDJ4aa9LS3U/s1600/sineWaveContinuous.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="290" src="http://2.bp.blogspot.com/_4Q2hMGW5AXs/TTfXnCBWIZI/AAAAAAAAEgE/wDJ4aa9LS3U/s400/sineWaveContinuous.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Figure 1: Impact of observation interval on FFT&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
Lets visualize the concept of spectral leakage by taking a pure sinusoidal signal as an example. Here we consider a sinusoid of 7Hz frequency (7 cycles in 1 second) and sampling it with a sampling frequency Fs=100Hz. We observe the signal for 100 seconds (700 cycles in total) and take the FFT of the observed signal. Figure 2 illustrates the frequency spectrum of the observed/measured signal. Essentially, the frequency spectrum contains a distinct peak at 7Hz.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TTf5ATirbwI/AAAAAAAAEgI/Sku7fy1Tebk/s1600/sineWave_widened_window_FFT.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TTf5ATirbwI/AAAAAAAAEgI/Sku7fy1Tebk/s400/sineWave_widened_window_FFT.png" width="400" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Figure 2: Frequency Spectrum of a 7 Hz sinusoid observed for 100 seconds &lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
Next, the measurement window is shrunk to 1 second. Now the FFT is taken on this observed signal. Figure 3 illustrates the frequency spectrum of the observed signal (which has 7 cycles only). The frequency spectrum contains some spectral leakage because of limited observation interval.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TTf-OvHrm8I/AAAAAAAAEgk/K3omMP3Kl-8/s1600/sineWave_FFT_spectral_leakage.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TTf-OvHrm8I/AAAAAAAAEgk/K3omMP3Kl-8/s640/sineWave_FFT_spectral_leakage.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TTf8-3yAQvI/AAAAAAAAEgY/M4w67IPLAQA/s1600/sineWave_no_discontinuity.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&amp;nbsp;Figure 3 : A 7 Hz sinusoid observed for 1 second and its Frequency Spectrum&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
In the previous illustrations (Figure 2 and 3), the observation time interval contained an integral number of sinewave cycles (i.e. in Figure 2 the observation interval contained exactly 700 cycles of sinusoid and in Figure 3 the observation interval contained exactly 7 cycles of sinusoid in the time domain).&lt;br /&gt;
&lt;br /&gt;
For the next illustration the measurement time interval is adjusted in such a way that number of cycles in the observation window is no longer an integer. In Figure 4, the signal is observed for 1.4 seconds, which implies that there are 9.8 cycles. Now the observed signal does not end at zero amplitude at t=1.4 seconds. This scenario gives rise to gliches in the FFT's assumed signal (which constructs a periodic signal from the observed signal) and obviously results in more spectral leakage (Compare the Frequency spectrum in Figure 3 and Figure 4).&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TTgIsZOa1LI/AAAAAAAAEgo/UPqNb9pyr3I/s1600/sineWave_discontinuity_FFT.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="252" src="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TTgIsZOa1LI/AAAAAAAAEgo/UPqNb9pyr3I/s640/sineWave_discontinuity_FFT.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TTf6yzOoijI/AAAAAAAAEgM/RhhJMerm2KM/s1600/sineWave_no_discontinuity.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt; &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TTf5ATirbwI/AAAAAAAAEgI/Sku7fy1Tebk/s1600/sineWave_widened_window_FFT.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt; &lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Figure 4 : A 7 Hz sinusoid observed for 1.4 seconds and its Frequency Spectrum.&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;The effect of spectral leakage may be lessened if the observed signal does not contain any discontinuity at the end of the measurement time (this scenario rarely occurs in any real application). Another scenario in which the spectral leakage can be reduced is by having a signal that gradually reduces to zero at the ends of the measurement time.( All the windows (like Hamming, Hanning, Bartlett, etc.., essentially attempts to do this). Such signal would have no discontinuity when made periodic and so does not suffer spectral leakages.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b style="color: #cc0000;"&gt;Conclusion:&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Spectral leakage is not due to FFT but due to the finite observation time. Spectral Leakage gives rise to two problems : 1) The spectral component of the desired signal no longer contains the complete energy, rather it also contains the energy of adjacent components and noise, thereby reducing the Signal to noise ratio; 2) Spectral leakage from a larger signal component may significantly overshadow other smaller signals making them difficult to identify or detect.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Windowing Techniques are used to mitigate the effects of spectral leakage and therefore the restriction of having a limited observation interval.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #cc0000; text-align: left;"&gt;&lt;b&gt;Matlab Code:&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Here is a matlab code to simulate the charts given in this discussion&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div class="boxed"&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%Illustration of Spectral Leakage and its effects on Frequency Spectrum&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%(FFT)&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%Author: Mathuranathan Viswanathan&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%http:gaussianwaves.blosgpot.com&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;b&gt;%License - Creative Commons - cc-by-nc-sa&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
observationTime=1;&lt;b&gt;&lt;span style="color: #38761d;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="color: #38761d;"&gt;%Input : Observation time interval change it to 100 and 1.4&lt;/span&gt;&lt;br /&gt;
&lt;div style="color: #38761d;"&gt;%and see the effect on FFT&lt;/div&gt;Fx=7;&lt;b style="color: #38761d;"&gt; &lt;/b&gt;&lt;span style="color: #38761d;"&gt;%Frequency of the sinusoid&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Fs=100;&lt;b style="color: #38761d;"&gt; &lt;/b&gt;&lt;span style="color: #38761d;"&gt;%Sampling Frequency&lt;/span&gt;&lt;br /&gt;
t=0:1/Fs:observationTime;&lt;br /&gt;
x=1*sin(2*pi*Fx*t);&lt;br /&gt;
plot(t,x)&lt;br /&gt;
title('SineWave - Frequency = 7Hz');&lt;br /&gt;
xlabel('Times (s)');ylabel('Amplitude');&lt;br /&gt;
&lt;div style="color: #38761d;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #38761d;"&gt;%Perform FFT&lt;/div&gt;NFFX=2.^(ceil(log(length(x))/log(2)));&lt;br /&gt;
FFTX=fft(x,NFFX);&lt;span style="color: #38761d;"&gt;%pad with zeros&lt;/span&gt;&lt;br /&gt;
NumUniquePts=ceil((NFFX+1)/2); &lt;br /&gt;
FFTX=FFTX(1:NumUniquePts);&lt;br /&gt;
MY=abs(FFTX);&lt;br /&gt;
MY=MY*2;&lt;br /&gt;
MY(1)=MY(1)/2;&lt;br /&gt;
MY(length(MY))=MY(length(MY))/2;&lt;br /&gt;
MY=MY/length(x);&lt;br /&gt;
f1=(0:NumUniquePts-1)*Fs/NFFX;&lt;br /&gt;
&lt;br /&gt;
figure;&lt;br /&gt;
stem(f1,MY,'k');&lt;br /&gt;
title('FFT of the sine wave');&lt;br /&gt;
axis([0 50 0 1]);&lt;br /&gt;
xlabel('Frequency');ylabel('Amplitude');&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;/div&gt;[1] Fredric J Harris, "On the use of windows for Harmonic Analysis with the Discrete Wavelet Transform", Proceedings of IEEE, Vol 66,No 1, January 1978 - &lt;a href="http://web.mit.edu/xiphmont/Public/windows.pdf" target="_blank"&gt;click here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Recommended Readings:&lt;/b&gt; &lt;/div&gt;&amp;nbsp;&lt;a href="http://www.amazon.com/Introduction-Digital-Signal-Processing-ebook/dp/B000QEXAVQ?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Introduction to Digital Signal Processing and Filter Design" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000QEXAVQ&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000QEXAVQ" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Filters-Basics-Dietrich-Schlichth%C3%A4rle/dp/3540668411?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Filters: Basics and Design" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=3540668411&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=3540668411" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Filters-Design-Processing-ISTE-DSP/dp/1905209452?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Filters Design for Signal and Image Processing (Digital Signal &amp;amp; Image Processing Series (ISTE-DSP))" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1905209452&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1905209452" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Practical-Analog-Digital-Microwave-Library/dp/1580539157?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Practical Analog And Digital Filter Design (Artech House Microwave Library)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1580539157&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1580539157" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Applied-Signal-Processing-MATLAB-Based-Communication/dp/0387745343?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Applied Signal Processing: A MATLAB-Based Proof of Concept (Signals and Communication Technology)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0387745343&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0387745343" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Processing-Wavelets-Electrical-Engineering-Computer/dp/0977858200?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Signal Processing Using MATLAB and Wavelets (with CD-ROM)(Electrical Engineering) (Computer Science)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0977858200&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0977858200" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Analog-Digital-Signal-Processing/dp/B002R0RTD2?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Analog &amp;amp; Digital Signal Processing" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B002R0RTD2&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;a href="http://www.amazon.com/Digital-Filters-Signal-Processing-ebook/dp/B000VUBZNU?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Filters and Signal Processing: With MATLAB Exercises, 3rd Edition" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000VUBZNU&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000VUBZNU" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-2116153730839711126?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=kYQ4FXzBIOo:yKkE0Kd1YWw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=kYQ4FXzBIOo:yKkE0Kd1YWw:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=kYQ4FXzBIOo:yKkE0Kd1YWw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=kYQ4FXzBIOo:yKkE0Kd1YWw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=kYQ4FXzBIOo:yKkE0Kd1YWw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/kYQ4FXzBIOo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/2116153730839711126/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=2116153730839711126" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/2116153730839711126?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/2116153730839711126?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/kYQ4FXzBIOo/fft-and-spectral-leakage.html" title="FFT and Spectral Leakage" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_4Q2hMGW5AXs/TTfXnCBWIZI/AAAAAAAAEgE/wDJ4aa9LS3U/s72-c/sineWaveContinuous.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2011/01/fft-and-spectral-leakage.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUDRno9cSp7ImA9Wx9QFE8.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-8630116426119443984</id><published>2010-12-27T04:09:00.001Z</published><updated>2010-12-27T04:14:37.469Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-27T04:14:37.469Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>Raised Cosine Filter</title><content type="html">&lt;b&gt;Role of Pulse Shaping in Communication Systems:&lt;/b&gt;&lt;br /&gt;
In communication systems, data is transmitted as binary bits ( ones and zeros). It is easier to implement a binary system using switches, where turning on a switch represents '1' and turning it off represents '0'. Such simple binary systems essentially represents ones and zeros as rectangular pulses of finite duration (say τ).&lt;br /&gt;
In frequency domain a rectangular pulse of&amp;nbsp; finite duration τ&amp;nbsp; manifests itself as a sinc pulse of infinite duration. Also, most of the energy of the rectangular pulse is concentrated with in -1/τ to 1/τ&lt;b&gt; &lt;/b&gt;in the frequency domain. This implies a pulse of duration τ requires twice its bandwidth for reliable transmission&lt;b&gt;.&lt;/b&gt; This poses a&amp;nbsp; limitation when it comes to bandwidth limited system, if we wish to increase the transmission data rate. The challenge here is, how do we transmit the data with highest possible data rate in a given band-limited system. The answer is : Pulse Shaping.&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
In a band-limited system, when we try to increase the data rate, it may lead to Inter Symbol Interference (ISI).&amp;nbsp; There are two criteria for a non-interference systems where pulse shaping is employed. (1)&amp;nbsp; The pulse shape exhibits a zero crossing at the sampling point of all pulse intervals except its own ; (2) the shape of the pulses be such that the amplitude decays rapidly outside of the pulse interval. A rectangular pulse satisfies the first criterion (where it contains zero crossing - see figure below) but not the second criterion ( the energy of the rectangular pulse does not decay rapidly outside the pulse interval and in fact it extends to infinite bandwidth). A raised cosine pulse is designed to satisfy these two criterion and thus provides a ISI free system.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TRdQeZ1pGrI/AAAAAAAAEe8/SP637MY6VwE/s1600/Sinc+Function.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="304" src="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TRdQeZ1pGrI/AAAAAAAAEe8/SP637MY6VwE/s320/Sinc+Function.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Raised Cosine Filters/Pulses:&lt;/b&gt; &lt;br /&gt;
A Raised Cosine pulse takes on the shape of a sinc pulse in time domain and is given by the following function (This equation is apt for digital domain and matlab simulation, it is obtained from its analog form by substituting "t" by n*Ts)&lt;br /&gt;
&lt;img src="http://latex.codecogs.com/gif.latex?%5C120dpi%20p%28t%29=%5Cbegin%7Bcases%7D%20%5Cfrac%7B%5Cpi%7D%7B4%7D%28sinc%5Cfrac%7BnT_%7Bs%7D%7D%7B%5Ctau%20%7D%29%20%5Ctext%7B%20,%20if%20%7D%20%7B1-%5Cleft%20%28%5Cfrac%7B2%5Calpha%20nT_%7Bs%7D%7D%7B%5Ctau%20%7D%5Cright%29%5E%7B2%7D%20%7D=0%5C%5C%5C%5C%20%5Cfrac%7Bcos%5Cfrac%7B%5Calpha%20%5Cpi%20nT_%7Bs%7D%20%7D%7B%5Ctau%7D%7D%7B1-%5Cleft%20%28%5Cfrac%7B2%5Calpha%20nT_%7Bs%7D%7D%7B%5Ctau%20%7D%5Cright%29%5E%7B2%7D%20%7D%5Ctext%7B%20,%20if%20n=0%7D%5C%5C%5C%5C%20%5Cfrac%7B%28sinc%5Cfrac%7BnT_%7Bs%7D%7D%7B%5Ctau%20%7D%29%28cos%5Cfrac%7B%5Calpha%20%5Cpi%20nT_%7Bs%7D%20%7D%7B%5Ctau%7D%29%7D%7B1-%5Cleft%20%28%5Cfrac%7B2%5Calpha%20nT_%7Bs%7D%7D%7B%5Ctau%20%7D%5Cright%29%5E%7B2%7D%20%7D%20%5Ctext%7B%20,otherwise%7D%20%5Cend%7Bcases%7D" title="\120dpi p(t)=\begin{cases} \frac{\pi}{4}(sinc\frac{nT_{s}}{\tau }) \text{ , if } {1-\left (\frac{2\alpha nT_{s}}{\tau }\right)^{2} }=0\\\\ \frac{cos\frac{\alpha \pi nT_{s} }{\tau}}{1-\left (\frac{2\alpha nT_{s}}{\tau }\right)^{2} }\text{ , if n=0}\\\\ \frac{(sinc\frac{nT_{s}}{\tau })(cos\frac{\alpha \pi nT_{s} }{\tau})}{1-\left (\frac{2\alpha nT_{s}}{\tau }\right)^{2} } \text{ ,otherwise} \end{cases}" /&gt;&lt;br /&gt;
Here Ts is the Sampling period ,n is the sample number, α is a parameter that governs the bandwidth occupied by the pulse and the rate at which the tails of the pulse decay. A value of α = 0 offers the narrowest bandwidth, but the slowest rate of decay in the time domain. When α = 1,the bandwidth is 1/τ, but the time domain tails decay rapidly. For more details on investigation of raised cosine characteristics and its implementation - refer [1]&lt;br /&gt;
&lt;br /&gt;
The following Matlab program simulated a Raised Cosine Filter and plots its frequency response and its eye diagram. (&lt;b&gt;&lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/Raised_cosine_filter.zip?attredirects=0&amp;amp;d=1"&gt;Click here to download&lt;/a&gt;&lt;/b&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt; &lt;div class="boxed"&gt;L=41; &lt;span style="color: #38761d;"&gt;%filter Length&lt;/span&gt;&lt;br /&gt;
R=1E6; &lt;span style="color: #38761d;"&gt;%data Rate = 1Mbps&lt;/span&gt;&lt;br /&gt;
Fs=8*R; &lt;span style="color: #38761d;"&gt;%oversampling by 8&lt;/span&gt;&lt;br /&gt;
T=1/R; &lt;span style="color: #38761d;"&gt;%pulse duration&lt;/span&gt;&lt;br /&gt;
Ts=1/Fs; &lt;span style="color: #38761d;"&gt;%sampling duration&lt;/span&gt;&lt;br /&gt;
alpha =0.5; &lt;span style="color: black;"&gt;% Design Factor for Raised Cosing Filter&lt;br style="color: black;" /&gt;&lt;span style="color: black;"&gt; &lt;span style="color: #38761d;"&gt;%----------------------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;br style="color: #38761d;" /&gt;&lt;span style="color: #38761d;"&gt; %Raised Cosing Filter Design&lt;/span&gt;&lt;br style="color: #38761d;" /&gt;&lt;span style="color: #38761d;"&gt; %----------------------------------------------------------&lt;/span&gt;&lt;br style="color: black;" /&gt;&lt;span style="color: black;"&gt; if mod(L,2)==0&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M=L/2 ; &lt;span style="color: #38761d;"&gt;% for even value of L&lt;/span&gt;&lt;/span&gt;&lt;br style="color: black;" /&gt;&lt;span style="color: black;"&gt; else&lt;/span&gt;&lt;br style="color: black;" /&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     M=(L-1)/2; &lt;span style="color: #38761d;"&gt;% for odd value of L    &lt;/span&gt;&lt;/span&gt;&lt;br style="color: black;" /&gt;&lt;span style="color: black;"&gt; end&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;span style="color: black;"&gt;g=zeros(1,L); &lt;span style="color: #38761d;"&gt;%Place holder for RC filter's transfer function&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;span style="color: black;"&gt; for n=-M:M&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;num=sin(pi*n*Ts/T)*cos(alpha*pi*n*Ts/T);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; den=(pi*n*Ts/T)*(1-(2*alpha*n*Ts/T)^2);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g(n+M+1)=num/den;&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (1-(2*alpha*n*Ts/T)^2)==0&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g(n+M+1)=pi/4*sin(pi*n*Ts/T)/(pi*n*Ts/T);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if  (pi*n*Ts/T)==0&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g(n+M+1)=cos(alpha*pi*n*Ts/T)/(1-(2*alpha*n*Ts/T)^2);&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;end&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&lt;span style="color: black;"&gt;%----------------------------------------------------------&lt;/span&gt;&lt;br style="color: black;" /&gt;&lt;span style="color: black;"&gt;&lt;span style="color: #38761d;"&gt; % Plot the transfer function of RC filter&lt;/span&gt; &lt;/span&gt;&lt;br style="color: black;" /&gt;&lt;span style="color: black;"&gt; figure;&lt;/span&gt;&lt;br style="color: black;" /&gt;&lt;span style="color: black;"&gt; impz(g,1);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/center&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;The above section of code implements the raised cosine filter equation and plots the impulse response of the filter.The RC filtered outputs for α = 1 and α =0.5 are plotted below. As we can see that as α increases (from 0 to 1), the pulse duration decreases (in frequency domain it will consume excess bandwidth). We must strict an optimum balance between the value of α&amp;nbsp; and the bandwidth it occupies, in order for the pulse to travel undistorted in a given band-limited channel.&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div class="separator" style="clear: both; text-align: right;"&gt;&lt;a href="http://2.bp.blogspot.com/_4Q2hMGW5AXs/TRgFN9RezdI/AAAAAAAAEfI/pFERTYe44oQ/s1600/Raised+Cosine+Impulse+Response++alpha_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://2.bp.blogspot.com/_4Q2hMGW5AXs/TRgFN9RezdI/AAAAAAAAEfI/pFERTYe44oQ/s200/Raised+Cosine+Impulse+Response++alpha_1.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TRgEYscBIhI/AAAAAAAAEfE/Hy26hiXQijA/s1600/Raised+Cosine+Impulse+Response.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TRgEYscBIhI/AAAAAAAAEfE/Hy26hiXQijA/s200/Raised+Cosine+Impulse+Response.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Next we generate a random data stream and upsample it with an upsample factor of Fs/R (where Fs is the sampling rate and R is the data rate). The upsampled data is convolved with the designed filter to give the RC filtered output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt; &lt;div class="boxed"&gt;%----------------------------------------------------------&lt;br /&gt;
&lt;div style="color: #38761d;"&gt;%Generate data of random 1s and 0s&lt;/div&gt;data=2*(rand(1,1000)&amp;gt;=0.5)-1; &lt;span style="color: #38761d;"&gt;%Polar encoding -&amp;gt; 1-&amp;gt; 1V, 0-&amp;gt;-1V&lt;/span&gt;&lt;br /&gt;
output=upsample(data,Fs/R);&lt;br /&gt;
%y=conv(g,output); &lt;span style="color: #38761d;"&gt;%Convolving the data signal with the Raised Cosine Filter&lt;/span&gt;&lt;br /&gt;
y=filter(g,1,output); &lt;span style="color: #38761d;"&gt;%you can use either Conv function or filter function to obtain the output&lt;/span&gt;&lt;br /&gt;
&lt;div style="color: #38761d;"&gt;%----------------------------------------------------------&lt;/div&gt;&lt;div style="color: #38761d;"&gt;%Plot data and RC filtered Output&lt;/div&gt;figure;&lt;br /&gt;
subplot(2,1,1);&lt;br /&gt;
stem(data);&lt;br /&gt;
title('Input data to the Raised Cosine Filter');&lt;br /&gt;
xlabel('Samples');&lt;br /&gt;
ylabel('Amplitude');&lt;br /&gt;
subplot(2,1,2);&lt;br /&gt;
plot(y);&lt;br /&gt;
title('Response of the Raised Cosine Filter for the given Input');&lt;br /&gt;
xlabel('Samples');&lt;br /&gt;
ylabel('Amplitude');&lt;/div&gt;&lt;/center&gt;&lt;br /&gt;
The next section of code computes the frequency response (by employing FFT) and also plots the eye diagram for the RC filtered output signal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;div class="boxed" style="color: #38761d;"&gt;%Obtain FFT of the output to plot its frequency response.&lt;/div&gt;&lt;div class="boxed"&gt;Fn=Fs/2;NFFY=2.^(ceil(log(length(y))/log(2)));&lt;br /&gt;
FFTY=fft(y,NFFY);%pad with zeros&lt;br /&gt;
NumUniquePts=ceil((NFFY+1)/2); &lt;br /&gt;
FFTY=FFTY(1:NumUniquePts);&lt;br /&gt;
MY=abs(FFTY);&lt;br /&gt;
MY=MY*2;&lt;br /&gt;
MY(1)=MY(1)/2;&lt;br /&gt;
MY(length(MY))=MY(length(MY))/2;&lt;br /&gt;
MY=MY/length(y);&lt;br /&gt;
f1=(0:NumUniquePts-1)*2*Fn/NFFY;&lt;br /&gt;
&lt;div style="color: #38761d;"&gt;%Plot Frequency spectrum&lt;/div&gt;figure;&lt;br /&gt;
plot(f1,20*log10(abs(MY).^2));xlabel('FREQUENCY(Hz)');ylabel('DB');&lt;br /&gt;
grid&lt;br /&gt;
title('Frequency domain plots') &lt;br /&gt;
&lt;div style="color: #38761d;"&gt;% Plot Eye Diagram&lt;/div&gt;plotEye(y,Fs/R);&lt;/div&gt;&lt;/center&gt;&lt;br /&gt;
The frequency response and the eye-diagram for the Raised Cosine Filtered output for α=1 and α=0.5 are plotted below for comparison. The frequency response shows minimized side lobes for α=1, whereas for the case α=0.5 the side lobes' energy is higher when compared to α=1. Also, for α=1, the eye opening is clearer when compared to α=0.5. This implies that as we increase the value of α from 0 to 1, the ISI decreases where as the excess bandwidth of the signal increases. An optimum balance between the value of α and the bandwidth of the band-limited channel is necessary for ISI free reliable communication between the transmitter and receiver.&lt;br /&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_4Q2hMGW5AXs/TRgOpzOfLRI/AAAAAAAAEfQ/ndZUbSE944g/s1600/Raised+cosine+filter+frequency+response+alpha_1.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/_4Q2hMGW5AXs/TRgOpzOfLRI/AAAAAAAAEfQ/ndZUbSE944g/s320/Raised+cosine+filter+frequency+response+alpha_1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_4Q2hMGW5AXs/TRgOtQ1yjjI/AAAAAAAAEfU/Z-YUtARsToo/s1600/Raised+cosine+filter+frequency+response+alpha_0_5.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/_4Q2hMGW5AXs/TRgOtQ1yjjI/AAAAAAAAEfU/Z-YUtARsToo/s320/Raised+cosine+filter+frequency+response+alpha_0_5.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TRgOzRiOHmI/AAAAAAAAEfY/GYqu-mIpnW8/s1600/Raised+cosine+filter+eyeDiagram+alpha_1.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TRgOzRiOHmI/AAAAAAAAEfY/GYqu-mIpnW8/s320/Raised+cosine+filter+eyeDiagram+alpha_1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TRgO5tJ-JqI/AAAAAAAAEfc/BrguW3Ol6FA/s1600/Raised+cosine+filter+eyeDiagram+alpha_0_5.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TRgO5tJ-JqI/AAAAAAAAEfc/BrguW3Ol6FA/s320/Raised+cosine+filter+eyeDiagram+alpha_0_5.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;Note : &lt;/b&gt;The function  plotEye is a custom made function which does not depend on the Matlab Communication toolbox. Please &lt;a href="http://gaussianwaves.blogspot.com/2010/12/utility-for-plotting-eyediagram-in.html" target="_blank"&gt;click here &lt;/a&gt;to obtain the code for this function.&lt;br /&gt;
&lt;br /&gt;
Reference:&lt;br /&gt;
&lt;a href="http://www.nonstopsystems.com/radio/article-raised-cosine.pdf" target="_blank"&gt;Ken Gentile,"The care and feeding of digital, pulse-shaping filters",RF design.com magazine,April 2002.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Recommended Products/books on Matlab:&lt;br /&gt;
&lt;a href="http://www.amazon.com/MATLAB-SIMULINK-Student-Version-R2007a/dp/0979223903?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="MATLAB &amp;amp; SIMULINK Student Version R2007a" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0979223903&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0979223903" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Advanced-Engineering-Mathematics-Mathematica-MATLAB/dp/0201325497?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Advanced Engineering Mathematics with Mathematica(R) and MATLAB(R), Volume 2" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0201325497&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0201325497" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0201325497" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Matlab-Release-Simulink-Student-Version/dp/0967219558?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Matlab 6 Release 12 with Simulink 4 Student Version" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0967219558&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0967219558" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/MATLAB-Engineers-2nd-Holly-Moore/dp/0136044220?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="MATLAB for Engineers (2nd Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0136044220&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0136044220" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Wolfram-Research-Inc-Mathematica-5-1/dp/B0007D9QQ4?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Mathematica 5.1" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B0007D9QQ4&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B0007D9QQ4" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/MATLAB-Introduction-Applications-Amos-Gilat/dp/0470767855?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="MATLAB: An Introduction with Applications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0470767855&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0470767855" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Matlab-Practical-Introduction-Programming-Problem/dp/0750687622?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Matlab: A Practical Introduction to Programming and Problem Solving" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0750687622&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0750687622" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/MATLAB-Demystified-David-McMahon/dp/0071485511?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="MATLAB Demystified" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0071485511&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071485511" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Essential-MATLAB-Scientists-Engineers-Second/dp/0750652403?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Essential MATLAB for Scientists and Engineers, Second Edition" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0750652403&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0750652403" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Graphics-GUIs-MATLAB-Third/dp/1584883200?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Graphics and GUIs with MATLAB, Third Edition (Graphics &amp;amp; GUIs with MATLAB)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1584883200&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1584883200" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-8630116426119443984?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=kZSkrA1Dwhg:G-NvOxTU4Ok:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=kZSkrA1Dwhg:G-NvOxTU4Ok:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=kZSkrA1Dwhg:G-NvOxTU4Ok:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=kZSkrA1Dwhg:G-NvOxTU4Ok:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=kZSkrA1Dwhg:G-NvOxTU4Ok:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/kZSkrA1Dwhg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/8630116426119443984/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=8630116426119443984" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/8630116426119443984?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/8630116426119443984?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/kZSkrA1Dwhg/raised-cosine-filter.html" title="Raised Cosine Filter" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TRdQeZ1pGrI/AAAAAAAAEe8/SP637MY6VwE/s72-c/Sinc+Function.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2010/12/raised-cosine-filter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUDRno8eCp7ImA9Wx9QFE8.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-5501550298213739601</id><published>2010-12-26T06:43:00.006Z</published><updated>2010-12-27T04:14:37.470Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-27T04:14:37.470Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>An utility for plotting eyediagram in matlab (without using Communication toolbox)</title><content type="html">Here is a small function written in Matlab to plot eyediagram for any real signal. This function will come handy when the communication toolbox of Matlab is not accessible/installed. This function will work with basic installation of Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Syntax:&lt;/b&gt;&lt;/div&gt;&lt;b&gt;plotEye(input,overSamplingRate)&lt;/b&gt;&lt;br /&gt;
where, &lt;br /&gt;
input = input signal&lt;br /&gt;
overSamplingRate = oversampling factor used to sample the signal. Generally this must be Fs/R where Fs is the sampling rate and R is the data rate.&lt;br /&gt;
&lt;br /&gt;
We will use this routine in subsequent post to analyze Inter Symbol Interference (ISI)&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Matlab Code: &lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/ploteye.m?attredirects=0&amp;amp;d=1"&gt;&lt;span style="color: #0b5394;"&gt;(click here to download)&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;.&lt;br /&gt;
&lt;div style="background-color: #d8d8d8; font-family: Georgia,Garamond,Serif; font-size-adjust: none; font-size: 16px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; height: 300px; line-height: 20px; overflow: scroll; width: 550px;"&gt;&lt;br /&gt;
function [T,EyeSig]=plotEye(inputSignal,overSampleRate,offset);&lt;br /&gt;
%----------------------------------------------&lt;br /&gt;
%Function to plot eye diagram of inputSignal&lt;br /&gt;
%Inputs&lt;br /&gt;
%&amp;nbsp;&amp;nbsp; inputSignal-real signal&lt;br /&gt;
%&amp;nbsp;&amp;nbsp; overSampleRate-oversample rate&lt;br /&gt;
% http://gaussianwaves.blogspot.com&lt;br /&gt;
% License: Creative Commons - CC - BY-NC-SA&lt;br /&gt;
%----------------------------------------------&lt;br /&gt;
if(nargin &amp;lt; 3),offset=0;end&lt;br /&gt;
inputSignal=interp(inputSignal,4);&lt;br /&gt;
overSampleRate=overSampleRate*4;&lt;br /&gt;
f=mod(length(inputSignal),overSampleRate);&lt;br /&gt;
inputSignal=real(inputSignal(f+1+offset:end-(overSampleRate-offset)));&lt;br /&gt;
%------------------------------------------------&lt;br /&gt;
EyeSigRef=reshape(real(inputSignal),overSampleRate,length(inputSignal)/overSampleRate);&lt;br /&gt;
EyeSigm1=EyeSigRef(overSampleRate/2+2:overSampleRate,1:end-2);&lt;br /&gt;
EyeSig0=EyeSigRef(:,2:end-1);&lt;br /&gt;
EyeSigp1=EyeSigRef(1:overSampleRate/2,3:end);&lt;br /&gt;
EyeSig=[EyeSigm1;EyeSig0;EyeSigp1];&lt;br /&gt;
&lt;br /&gt;
T=[-1+1/(overSampleRate):1/(overSampleRate):+1-1/(overSampleRate)];&lt;br /&gt;
figure;&lt;br /&gt;
plot(T,EyeSig),xlabel('Symbol periods'),ylabel('Amplitude');&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Sample Plot:&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TRbi6lPkV1I/AAAAAAAAEew/2IpkL0b_K4c/s1600/EyeDiagram+Plot+Sample.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TRbi6lPkV1I/AAAAAAAAEew/2IpkL0b_K4c/s400/EyeDiagram+Plot+Sample.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Recommended books/products on Matlab:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/MATLAB-SIMULINK-Student-Version-R2007a/dp/0979223903?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="MATLAB &amp;amp; SIMULINK Student Version R2007a" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0979223903&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0979223903" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Advanced-Engineering-Mathematics-Mathematica-MATLAB/dp/0201325497?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Advanced Engineering Mathematics with Mathematica(R) and MATLAB(R), Volume 2" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0201325497&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0201325497" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0201325497" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Matlab-Release-Simulink-Student-Version/dp/0967219558?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Matlab 6 Release 12 with Simulink 4 Student Version" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0967219558&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0967219558" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/MATLAB-Engineers-2nd-Holly-Moore/dp/0136044220?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="MATLAB for Engineers (2nd Edition)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0136044220&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0136044220" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Wolfram-Research-Inc-Mathematica-5-1/dp/B0007D9QQ4?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Mathematica 5.1" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B0007D9QQ4&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B0007D9QQ4" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/MATLAB-Introduction-Applications-Amos-Gilat/dp/0470767855?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="MATLAB: An Introduction with Applications" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0470767855&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0470767855" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Matlab-Practical-Introduction-Programming-Problem/dp/0750687622?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Matlab: A Practical Introduction to Programming and Problem Solving" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0750687622&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0750687622" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/MATLAB-Demystified-David-McMahon/dp/0071485511?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="MATLAB Demystified" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0071485511&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0071485511" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Essential-MATLAB-Scientists-Engineers-Second/dp/0750652403?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Essential MATLAB for Scientists and Engineers, Second Edition" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0750652403&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0750652403" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Graphics-GUIs-MATLAB-Third/dp/1584883200?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Graphics and GUIs with MATLAB, Third Edition (Graphics &amp;amp; GUIs with MATLAB)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1584883200&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1584883200" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-5501550298213739601?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=aAVzxXyum7k:-f2VE22yrPc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=aAVzxXyum7k:-f2VE22yrPc:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=aAVzxXyum7k:-f2VE22yrPc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=aAVzxXyum7k:-f2VE22yrPc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=aAVzxXyum7k:-f2VE22yrPc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/aAVzxXyum7k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/5501550298213739601/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=5501550298213739601" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/5501550298213739601?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/5501550298213739601?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/aAVzxXyum7k/utility-for-plotting-eyediagram-in.html" title="An utility for plotting eyediagram in matlab (without using Communication toolbox)" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TRbi6lPkV1I/AAAAAAAAEew/2IpkL0b_K4c/s72-c/EyeDiagram+Plot+Sample.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2010/12/utility-for-plotting-eyediagram-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUCR3o4eSp7ImA9Wx9QFE8.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-3214479173856325868</id><published>2010-11-23T07:15:00.004Z</published><updated>2010-12-27T04:14:26.431Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-27T04:14:26.431Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Signal processing" /><title>Moving Average Filter ( MA filter )</title><content type="html">The moving average filter is a simple Low Pass FIR (Finite Impulse Response) filter commonly used for smoothing an array of sampled data/signal. It takes M samples of input at a time and take the average of those M-samples and produces a single output point. It is a very simple LPF structure that comes handy for scientists and engineers to filter unwanted noisy component from the intended data.&lt;br /&gt;
&lt;br /&gt;
As the filter length increases ( the parameter M ) the smoothness of the output increases, whereas the sharp transitions in the data are made increasingly blunt. This implies that this filter has excellent time domain response but a poor frequency response.&lt;br /&gt;
&lt;br /&gt;
The MA filter perform three important functions:&lt;br /&gt;
1) It takes M input points, computes the average of those M-points and produces a single output point&lt;br /&gt;
2) Due to the computation/calculations involved , the filter introduces a definite amount of delay&lt;br /&gt;
3) The filter acts as a Low Pass Filter (with poor frequency domain response and a good time domain response).&lt;br /&gt;
&lt;br /&gt;
&lt;input type="hidden" name="IL_RELATED_TAGS" value="1"/&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #cc0000;"&gt;Matlab Code: &lt;/span&gt;&lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/MA_filter_single.m?attredirects=0&amp;amp;d=1"&gt;&lt;span style="color: #0b5394;"&gt;(click here to download)&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
Following matlab code simulates the time domain response of a M-point Moving Average filter and also plots the frequency response for various filter lengths.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: #cccccc; font-family: Georgia,Garamond,Serif; font-size-adjust: none; font-size: 16px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; height: 300px; line-height: 20px; overflow: scroll; width: 550px;"&gt;%Moving Average Filter(MA) Demonstration&lt;br /&gt;
%Computes and plots the time domain output of a M-point Moving Average&lt;br /&gt;
%Filter. Note : The parameter M must be a odd number inorder to realize the&lt;br /&gt;
%filter.&lt;br /&gt;
%Plots the frequency response of the M-point Moving Average filter for&lt;br /&gt;
%comparison.&lt;br /&gt;
%Author : Mathuranathan Viswanathan&lt;br /&gt;
%http://gaussianwaves.blogspot.com&lt;br /&gt;
%License - Creative Commons - cc-by-nc-sa&lt;br /&gt;
&lt;br /&gt;
clear;&lt;br /&gt;
clc;&lt;br /&gt;
&lt;br /&gt;
M=51; %Number of taps/points in the MA filter&lt;br /&gt;
data=[zeros(1,1000),5*ones(1,3000),zeros(1,1000)]; %5000 points sample data&lt;br /&gt;
noise= 2*rand(1,5000)-1;&lt;br /&gt;
&lt;br /&gt;
x=data+noise; %Adding some noise to the data&lt;br /&gt;
&lt;br /&gt;
%Plot the input&lt;br /&gt;
figure;&lt;br /&gt;
plot(x);&lt;br /&gt;
xlabel('Samples');&lt;br /&gt;
ylabel('Amplitude');&lt;br /&gt;
title('Input to the M-point Moving Average Filter');&lt;br /&gt;
&lt;br /&gt;
%Computing the output response of the given moving average filter&lt;br /&gt;
figure;&lt;br /&gt;
y=zeros(1,5000);&lt;br /&gt;
for i=(M-1)/2+1:length(data)-(M-1)/2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; y(i)=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for k=-(M-1)/2:(M-1)/2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y(i)=y(i)+x(i+k);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; y(i)=y(i)/M;&lt;br /&gt;
end&lt;br /&gt;
plot(y);&lt;br /&gt;
xlabel('Samples');&lt;br /&gt;
ylabel('Amplitude');&lt;br /&gt;
title(['Filtered output of the ',num2str(M),'-point Moving Average filter']);&lt;br /&gt;
&lt;br /&gt;
%========================================================================&lt;br /&gt;
%Frequency Response for various Filter lengths&lt;br /&gt;
%========================================================================&lt;br /&gt;
colors=['r','b','k','g']; %To plot in different colors&lt;br /&gt;
colorIndex=1;&lt;br /&gt;
figure;&lt;br /&gt;
M=[3,11,51,101];&lt;br /&gt;
for i=M&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; b=repmat(1/i,1,i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; a=1; %Since this is a FIR filter a=1 and b=[1/M,1/M,1/M,...,repeated M times]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [h,w]=freqz(b,a); %Using the Freqz function to get the frequency response&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; h=abs(h);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; w=w/max(w);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; plot(w,h,colors(colorIndex)); %Plotting the response&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; colorIndex=colorIndex+1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; hold on;&lt;br /&gt;
end&lt;br /&gt;
hold off;&lt;br /&gt;
legend('M=3','M=11','M=51','M=101');&lt;br /&gt;
xlabel('Normalized Frequency');&lt;br /&gt;
ylabel('Magnitude');&lt;br /&gt;
title('Frequency Response of M-point Moving average filters');&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #cc0000;"&gt;Time domain Response:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="color: #351c75; text-align: center;"&gt;&lt;b&gt;Input to MA filter&lt;/b&gt;&lt;/td&gt;&lt;td style="color: #351c75; text-align: center;"&gt;&lt;b&gt;3-point MA filter output&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TOthECp2ZQI/AAAAAAAAEc8/n7yFxlb_FPg/s1600/Input_to_Moving_average_filter.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TOthECp2ZQI/AAAAAAAAEc8/n7yFxlb_FPg/s200/Input_to_Moving_average_filter.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TOtkyTNHXUI/AAAAAAAAEdM/QmtFhp8QXus/s1600/Response_of_3_point_Moving_average_filter.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TOtkyTNHXUI/AAAAAAAAEdM/QmtFhp8QXus/s200/Response_of_3_point_Moving_average_filter.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td style="color: #351c75; text-align: center;"&gt;&lt;b&gt;51-point MA filter output&lt;/b&gt;&lt;/td&gt;&lt;td style="color: #351c75; text-align: center;"&gt;&lt;b&gt;101-point MA filter output&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TOthKfxsyOI/AAAAAAAAEdE/AL7Cf33weKs/s1600/Response_of_Moving_average_filter.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TOthKfxsyOI/AAAAAAAAEdE/AL7Cf33weKs/s200/Response_of_Moving_average_filter.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TOtkzTtbBLI/AAAAAAAAEdQ/h0KByVu9PYE/s1600/Response_of_101_point_Moving_average_filter.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://3.bp.blogspot.com/_4Q2hMGW5AXs/TOtkzTtbBLI/AAAAAAAAEdQ/h0KByVu9PYE/s200/Response_of_101_point_Moving_average_filter.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr align="center" style="color: #351c75;"&gt;&lt;td&gt;&lt;b&gt;501-point MA filter output&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TOtkxfKrwFI/AAAAAAAAEdI/098Hu0ccRsQ/s1600/Response_of_501_point_Moving_average_filter.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TOtkxfKrwFI/AAAAAAAAEdI/098Hu0ccRsQ/s200/Response_of_501_point_Moving_average_filter.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
On the first plot, we have the input that is going into the moving average filter. The input is noisy and our objective is to reduce the noise. The next figure is the output response of a 3-point Moving Average filter. It can be deduced from the figure that the 3-point Moving Average filter has not done much in filtering out the noise. We increase the filter taps to 51-points and we can see that the noise in the output has reduced a lot, which is depicted in next figure. We increase the taps further to 101 and 501 and we can observe that even-though the noise is almost zero, the transitions are blunted out drastically (observe the slope on the either side of the signal and compare them with the ideal brick wall transition in our input).&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Frequency Response:&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TOthJN7jjNI/AAAAAAAAEdA/ZCDhUJNvjdw/s1600/frequency_response_of_Moving_average_filters.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TOthJN7jjNI/AAAAAAAAEdA/ZCDhUJNvjdw/s320/frequency_response_of_Moving_average_filters.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
From the frequency response it can be asserted that the roll-off is very slow and the stopband attenuation is not good.  Given this stop band attenuation,clearly, the moving average filter cannot separate one band of frequencies from another. As we know that a good performance in the time domain results in poor performance in the frequency domain, and vice versa.  In short, the moving average is an exceptionally good &lt;i&gt;smoothing filter&lt;/i&gt; (the action in the time domain), but an exceptionally bad &lt;i&gt;low-pass filter&lt;/i&gt; (the action in the frequency domain).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: black;"&gt;&lt;b&gt;For Further Reading:&lt;/b&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&amp;nbsp;&lt;a href="http://www.amazon.com/Introduction-Digital-Signal-Processing-ebook/dp/B000QEXAVQ?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Introduction to Digital Signal Processing and Filter Design" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000QEXAVQ&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000QEXAVQ" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Filters-Basics-Dietrich-Schlichth%C3%A4rle/dp/3540668411?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Digital Filters: Basics and Design" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=3540668411&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=3540668411" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Filters-Design-Processing-ISTE-DSP/dp/1905209452?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Digital Filters Design for Signal and Image Processing (Digital Signal &amp;amp; Image Processing Series (ISTE-DSP))" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1905209452&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1905209452" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Practical-Analog-Digital-Microwave-Library/dp/1580539157?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Practical Analog And Digital Filter Design (Artech House Microwave Library)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1580539157&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1580539157" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Applied-Signal-Processing-MATLAB-Based-Communication/dp/0387745343?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Applied Signal Processing: A MATLAB-Based Proof of Concept (Signals and Communication Technology)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0387745343&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0387745343" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Processing-Wavelets-Electrical-Engineering-Computer/dp/0977858200?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Digital Signal Processing Using MATLAB and Wavelets (with CD-ROM)(Electrical Engineering) (Computer Science)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0977858200&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0977858200" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Analog-Digital-Signal-Processing/dp/B002R0RTD2?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Analog &amp;amp; Digital Signal Processing" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B002R0RTD2&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;a href="http://www.amazon.com/Digital-Filters-Signal-Processing-ebook/dp/B000VUBZNU?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" target="_blank"&gt;&lt;img alt="Digital Filters and Signal Processing: With MATLAB Exercises, 3rd Edition" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000VUBZNU&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000VUBZNU" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0977858200" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0977858200" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B002R0RTD2" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-3214479173856325868?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=wxMTDSc8B9c:X1OIu6b8o_I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=wxMTDSc8B9c:X1OIu6b8o_I:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=wxMTDSc8B9c:X1OIu6b8o_I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=wxMTDSc8B9c:X1OIu6b8o_I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=wxMTDSc8B9c:X1OIu6b8o_I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/wxMTDSc8B9c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/3214479173856325868/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=3214479173856325868" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/3214479173856325868?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/3214479173856325868?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/wxMTDSc8B9c/moving-average-filter-ma-filter.html" title="Moving Average Filter ( MA filter )" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_4Q2hMGW5AXs/TOthECp2ZQI/AAAAAAAAEc8/n7yFxlb_FPg/s72-c/Input_to_Moving_average_filter.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2010/11/moving-average-filter-ma-filter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMERH04fSp7ImA9Wx9XEUQ.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-3834362215621464718</id><published>2010-11-16T09:15:00.002Z</published><updated>2011-01-05T02:26:45.335Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-05T02:26:45.335Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Interleaver" /><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Reed Solomon codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><title>Random Interleaver</title><content type="html">&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Random Interleaver:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
The Random Interleaver rearranges the elements of its input vector using a random permutation. The incoming data is rearranged using a series of generated permuter indices. A permuter is essentially a device that generates pseudo-random permutation of given memory addresses. The data is arranged according to the pseudo-random order of memory addresses.&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
The de-interleaver must know the permuter-indices exactly in the same order as that of the interleaver. The de-interleaver arranges the interleaved data back to the original state by knowing the permuter-indices.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TOJLLCbhwlI/AAAAAAAAEc4/YW4DzU-8zzg/s1600/Random_Interleaver.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TOJLLCbhwlI/AAAAAAAAEc4/YW4DzU-8zzg/s400/Random_Interleaver.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The interleaver depth (D) (Not sure what this term means ? - check out this post - &lt;span id="goog_183030613"&gt;&lt;/span&gt;&lt;a href="http://gaussianwaves.blogspot.com/2010/10/block-interleaver-design-for-rs-codes.html"&gt;click here&lt;span id="goog_183030614"&gt;&lt;/span&gt;&lt;/a&gt;) is essentially the number of memory addresses taken for permutation at a time. If the number of memory addresses taken for permutation increases, the interleaver depth increases.&lt;br /&gt;
&lt;br /&gt;
In the Matlab simulation that is given below, an interleaver depth of 15 is used for illustration. This means that 15 letters are taken at a time and are permuted (rearranged randomly). This process is repeated consecutively for the next block of 15 lettes.&lt;br /&gt;
&lt;br /&gt;
As you may observe from the simulation that increasing the interleaver depth will increase the degree of randomness in the interleaved data and will decrease the maximum burst length after the de-interleaver operation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Matlab Code: &lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/random_interleaver.m?attredirects=0&amp;amp;d=1"&gt;&lt;span style="color: #0b5394;"&gt;(click here to download)&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;A  sample matlab code that simulates the above mentioned random interleaver is given below. The input data is a repeatitive stream of  following symbols - "&lt;b&gt;&lt;span style="color: #38761d;"&gt;THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_&lt;/span&gt;&lt;/b&gt;". This code simulates only the interleaving/denterleaving part.The burst errors produced by channel are  denoted by '&lt;b style="color: #cc0000;"&gt;*&lt;/b&gt;'.&lt;br /&gt;
.&lt;br /&gt;
&lt;div style="background-color: #d8d8d8; font: 16px/20px Georgia,Garamond,Serif; height: 300px; overflow: scroll; width: 550px;"&gt;&lt;br /&gt;
%Demonstration of PseudoRandom Interleaver/Deinterleaver&lt;br /&gt;
%Author : Mathuranathan for http://gaussianwaves.blogspot.com&lt;br /&gt;
%License - Creative Commons - cc-by-nc-sa&lt;br /&gt;
&lt;br /&gt;
clc;&lt;br /&gt;
clear;&lt;br /&gt;
%____________________________________________&lt;br /&gt;
%Input Parameters&lt;br /&gt;
%____________________________________________&lt;br /&gt;
D=15; %Interleaver Depth. More the value of D more is the randomness&lt;br /&gt;
n=5; %Number of Data blocks that you want to send.&lt;br /&gt;
data='THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_'; % A constant pattern used as a data&lt;br /&gt;
%____________________________________________&lt;br /&gt;
&lt;br /&gt;
%Make the length of the data to be a multiple of D. This is for&lt;br /&gt;
%demonstration only.Otherwise the empty spaces has to be zero filled.&lt;br /&gt;
data=repmat(data,1,n); %send n blocks of specified data pattern&lt;br /&gt;
if mod(length(data),D) ~=0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; data=[data data(1:(D*(fix(length(data)/D+1))-length(data)))];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%We sending D blocks of similar data&lt;br /&gt;
%intlvrInput=repmat(data(1:n),[1 D]);&lt;br /&gt;
&lt;br /&gt;
%fprintf('Input Data to the Interleaver -&amp;gt; \n');&lt;br /&gt;
%disp(char(intlvrInput));&lt;br /&gt;
%disp('____________________________________________________________________________');&lt;br /&gt;
&lt;br /&gt;
%INTERLEAVER&lt;br /&gt;
%Writing into the interleaver row-by-row&lt;br /&gt;
permuterIndex=randperm(D);&lt;br /&gt;
intrlvrOutput=[];&lt;br /&gt;
index=1;&lt;br /&gt;
for i=1:fix(length(data)/D)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; intrlvrOutput=[intrlvrOutput data(permuterIndex+(i-1)*D)];&lt;br /&gt;
end&lt;br /&gt;
for i=1:mod(length(data),D)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; intrlvrOutput=[intrlvrOutput data(permuterIndex(i)+fix(length(data)/D)*D)];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
uncorruptedIntrlvrOutput=intrlvrOutput;&lt;br /&gt;
&lt;br /&gt;
%Corrupting the interleaver output by inserting 10 '*'&lt;br /&gt;
intrlvrOutput(1,25:34)=zeros(1,10)+42; &lt;br /&gt;
&lt;br /&gt;
%DEINTERLEAVER&lt;br /&gt;
deintrlvrOutput=[];&lt;br /&gt;
for i=1:fix(length(intrlvrOutput)/D)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; deintrlvrOutput(permuterIndex+(i-1)*D)=intrlvrOutput((i-1)*D+1:i*D);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
end&lt;br /&gt;
for i=1:mod(length(intrlvrOutput),D)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; deintrlvrOutput((fix(length(intrlvrOutput)/D))*permuterIndex+i)=intrlvrOutput((i+1):(i+1)*D);&lt;br /&gt;
end&lt;br /&gt;
deintrlvrOutput=char(deintrlvrOutput);&lt;br /&gt;
&lt;br /&gt;
disp('Given Data --&amp;gt;');&lt;br /&gt;
disp(data);&lt;br /&gt;
disp(' ')&lt;br /&gt;
&lt;br /&gt;
disp('Permuter Index--&amp;gt;')&lt;br /&gt;
disp(permuterIndex);&lt;br /&gt;
disp(' ')&lt;br /&gt;
&lt;br /&gt;
disp('PseudoRandom Interleaver Output --&amp;gt;');&lt;br /&gt;
disp(uncorruptedIntrlvrOutput);&lt;br /&gt;
disp(' ')&lt;br /&gt;
&lt;br /&gt;
disp('Interleaver Output after being corrupted by 10 symbols of burst error - marked by ''*''-&amp;gt;');&lt;br /&gt;
disp(char(intrlvrOutput));&lt;br /&gt;
disp(' ')&lt;br /&gt;
&lt;br /&gt;
disp('PseudoRandom Deinterleaver Output --&amp;gt;');&lt;br /&gt;
disp(deintrlvrOutput);&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/div&gt;&lt;b&gt;Given Data --&amp;gt;&lt;/b&gt;&lt;br /&gt;
THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_Q&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Permuter Index--&amp;gt;&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;PseudoRandom Interleaver Output --&amp;gt;&lt;/b&gt;&lt;br /&gt;
NTBKIRQUO_H_ECWR__PUO_JVXFSOMET_DYAO_LGET_HZ__HR_COUIWQEB_KN_FOSMVJUE_O_XPRHTO_ZGLA__HDEYTFEOBKWICNU_RQ__TOV_PEUMRJXO_S_EHGDY_AZTLEO__HO_WR_NCK_IQOUBFHXEOSRMP_U_VJ_T_E_O_TZYHA_GLDEXQNOB_K_FCUWIROE_RV__PSTMJEUOHQ_TGDHY_EZL_AO_&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Interleaver Output after being corrupted by 10 symbols of burst error - marked by '*'-&amp;gt;&lt;/b&gt;&lt;br /&gt;
NTBKIRQUO_H_ECWR__PUO_JV&lt;span style="color: #cc0000;"&gt;**********&lt;/span&gt;AO_LGET_HZ__HR_COUIWQEB_KN_FOSMVJUE_O_XPRHTO_ZGLA__HDEYTFEOBKWICNU_RQ__TOV_PEUMRJXO_S_EHGDY_AZTLEO__HO_WR_NCK_IQOUBFHXEOSRMP_U_VJ_T_E_O_TZYHA_GLDEXQNOB_K_FCUWIROE_RV__PSTMJEUOHQ_TGDHY_EZL_AO_&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;PseudoRandom Deinterleaver Output --&amp;gt;&lt;/b&gt;&lt;br /&gt;
THE_QUICK_BROWN_&lt;span style="color: #cc0000;"&gt;***&lt;/span&gt;_JU&lt;span style="color: #cc0000;"&gt;*&lt;/span&gt;P&lt;span style="color: #cc0000;"&gt;*&lt;/span&gt;_OV&lt;span style="color: #cc0000;"&gt;*&lt;/span&gt;R&lt;span style="color: #cc0000;"&gt;*&lt;/span&gt;THE_LAZ&lt;span style="color: #cc0000;"&gt;*&lt;/span&gt;_&lt;span style="color: #cc0000;"&gt;*&lt;/span&gt;OG_&lt;span style="color: #cc0000;"&gt;*&lt;/span&gt;HE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_Q&lt;br /&gt;
&lt;br /&gt;
As  we can see from the above simulation that, eventhough the channel  introduces 10 symbols of consecutive burst error, the interleaver/deinterleaver  operation has effectively distributed the errors and reduced the maximum  burst length to 3 symbols.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: #cc0000;"&gt;Recommended Books&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: #cc0000;"&gt;&lt;a href="http://www.amazon.com/Digital-Communication-Systems-MATLAB-Simulink/dp/1589096215?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Communication Systems using MATLAB and Simulink" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1589096215&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1589096215" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Digital-Signal-Processing-Bookware-Companion/dp/0495073113?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Digital Signal Processing Using MATLAB (Bookware Companion)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0495073113&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0495073113" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Random-Signals-Engineers-Mathcad-ebook/dp/B000VIFJ5C?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Random Signals for Engineers Using MATLAB and Mathcad" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B000VIFJ5C&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000VIFJ5C" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Fundamentals-Digital-Signal-Processing-MATLAB/dp/0534391508?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Fundamentals of Digital Signal Processing Using MATLAB (with CD-ROM)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534391508&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534391508" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: #cc0000;"&gt;&lt;a href="http://www.amazon.com/Signals-Systems-using-MATLAB-Chaparro/dp/0123747163?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Signals and Systems using MATLAB" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0123747163&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0123747163" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Computer-Based-Exercises-Signal-Processing-Curriculum/dp/0132198258?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Computer-Based Exercises for Signal Processing Using Matlab (Matlab Curriculum)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0132198258&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0132198258" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Discrete-Systems-Laboratory-Bookware-Companion/dp/0534374638?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;&lt;img alt="Discrete Systems Laboratory Using MATLAB (Bookware Companion Series (Pacific Grove, Calif.).)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0534374638&amp;amp;tag=gaussi-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0534374638" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt; &lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-3834362215621464718?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4bc_9aaXG8w:1gOzG0tG6sU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4bc_9aaXG8w:1gOzG0tG6sU:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4bc_9aaXG8w:1gOzG0tG6sU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=4bc_9aaXG8w:1gOzG0tG6sU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=4bc_9aaXG8w:1gOzG0tG6sU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/4bc_9aaXG8w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/3834362215621464718/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=3834362215621464718" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/3834362215621464718?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/3834362215621464718?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/4bc_9aaXG8w/random-interleaver.html" title="Random Interleaver" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TOJLLCbhwlI/AAAAAAAAEc4/YW4DzU-8zzg/s72-c/Random_Interleaver.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2010/11/random-interleaver.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMFQ3k8eyp7ImA9Wx9XEUQ.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-742089904944464943</id><published>2010-10-28T09:18:00.001+01:00</published><updated>2011-01-05T02:26:52.773Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-05T02:26:52.773Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Interleaver" /><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><category scheme="http://www.blogger.com/atom/ns#" term="Reed Solomon codes" /><category scheme="http://www.blogger.com/atom/ns#" term="Matlab Codes" /><title>Block Interleaver Design for RS codes</title><content type="html">&lt;b style="color: #cc0000;"&gt;Introduction:&lt;/b&gt; &lt;br /&gt;
A (n,k) Reed Solomon (RS) encoder, takes k user data symbols and converts it into a n symbol wide codeword, by adding n-k parity symbols. The error correcting capability (t) of the RS code is computed as t&amp;lt;=(n-k)/2. That is, a RS code with n-k parity symbols can correct a burst error of upto (n-k)/2 symbol errors.&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;b style="color: #cc0000;"&gt;Block Interleavers:&lt;/b&gt;&lt;br /&gt;
Suppose, assume that the dominant error mechanism in a channel is of burst type. A burst of length b is defined as a string of b unreliable consecutive symbols. If the expected burst length, b is less than or equal to t (the number of correctable symbol errors by RS coding), the code can be used as it is. However, if bursts length b &amp;gt;t, the error correcting code will fail. This is where interleaving comes to our rescue.&lt;br /&gt;
&lt;br /&gt;
Let us assume that b &amp;gt; t and b ≤ t × d, where d (the interleaving depth) is an integer. The Reed-Solomon (n,k) code can be used if we can spread the burst error sequence over several code blocks so that each block has no more than t errors (which can then be corrected). This can be accomplished using block interleaving as follows. Instead of encoding blocks of k symbols and then sending the encoded symbols consecutively, we can interleave the encoded blocks and transmit the interleaved data. In the case where n = 255, k = 235, t = 10, d = 5,the data bytes output from the Reed-Solomon encoder would appear as shown below , where bytes numbered 0 to 234 are the data bytes and bytes 235 to 254 are the parity check bytes.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TMkil2xjEgI/AAAAAAAAEck/PSwMh_4Aon0/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="100" src="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TMkil2xjEgI/AAAAAAAAEck/PSwMh_4Aon0/s400/1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;Here, the data is written row by row and read back column by column.Consider now the effect of a burst error of length b &amp;gt; t, (where t is the number of correctable errors per block) and b ≤ v × d for some v, on the received symbols in the table. Because of the order in which the symbols are sent, a burst length less than or equal to d × i will effect at most d + 1 consecutive columns of the table, depending on where the burst&lt;br /&gt;
starts. Notice that any single row (which corresponds to a codeword) has no more than v errors in it. If d &amp;gt; t, these errors are within the error correction capability of the code and can be corrected. In this case, d becomes the interleaving depth. The trade-off is that extra buffer space is required to store the interleaver table and additional delay is introduced. The worst case burst length determines the size of the table (and the interleaving depth) and the table size determines the amount of buffer space required and the delay.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Design Example:&lt;/b&gt;&lt;/div&gt;Consider a (255,235) Reed Solomon coding system. This code can correct upto t=(n-k)/2 = 10 symbols errors. Lets assume that the channel that we are going to use, is expected to cause b=253 symbols. Then the interleaver depth (d) is calculated as&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.codecogs.com/eqnedit.php?latex=%5C120dpi%20d%20%3E%20%5Cfrac%7Bb%7D%7Bt%7D%20=%20%5Cfrac%7B253%7D%7B10%7D=25.3" target="_blank"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?%5C120dpi%20d%20%3E%20%5Cfrac%7Bb%7D%7Bt%7D%20=%20%5Cfrac%7B253%7D%7B10%7D=25.3" title="\120dpi d &amp;gt; \frac{b}{t} = \frac{253}{10}=25.3" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In this case , an interleaver depth of 26 is enough to combat the burst errors introduced by the channel. The block interleaver dimensions would be d x n = 26 x 255 (26 rows by 255 columns).&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Matlab Code: &lt;a href="https://sites.google.com/site/gaussianwaves/filecabinet/block_Interleaver.m?attredirects=0&amp;amp;d=1"&gt;&lt;span style="color: #0b5394;"&gt;(click here to download)&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;A sample matlab code that simulates the above mentioned block interleaver design is given below. The input data is a repeatitive stream of following symbols - "&lt;b&gt;&lt;span style="color: #38761d;"&gt;THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_&lt;/span&gt;&lt;/b&gt;". A (255,235) Reed Solomon decoder (with correction capability of 10 symbols) is used. We assume that the channel is expected to produce a maximum of consecutive 20 symbols of burst error. The burst errors are denoted by '&lt;b style="color: #cc0000;"&gt;*&lt;/b&gt;'.&lt;br /&gt;
.&lt;br /&gt;
&lt;div style="background-color: #d8d8d8; font: 16px/20px Georgia,Garamond,Serif; height: 300px; overflow: scroll; width: 550px;"&gt;%Demonstration of design of Block Interleaver for Reed Solomon Code&lt;br /&gt;
%Author : Mathuranathan for http://gaussianwaves.blogspot.com&lt;br /&gt;
%License - Creative Commons - cc-by-nc-sa&lt;br /&gt;
clc;&lt;br /&gt;
clear;&lt;br /&gt;
%____________________________________________&lt;br /&gt;
%Input Parameters&lt;br /&gt;
%____________________________________________&lt;br /&gt;
%Interleaver Design for Reed-Solomon Codes&lt;br /&gt;
%RS code parameters&lt;br /&gt;
n=255;&amp;nbsp; %RS codeword length &lt;br /&gt;
k=235;&amp;nbsp; %Number of data symbols &lt;br /&gt;
b=20;&amp;nbsp; %Number of symbols that is expected to be corrupted by the channel &lt;br /&gt;
%____________________________________________&lt;br /&gt;
&lt;br /&gt;
p=n-k;&amp;nbsp; %Number of parity symbols&lt;br /&gt;
t=p/2; %Error correction capability of RS code&lt;br /&gt;
&lt;br /&gt;
fprintf('Given (%d,%d) Reed Solomon code can correct : %d symbols \n',n,k,fix(t));&lt;br /&gt;
fprintf('Given - expected burst error length from the channel : %d symbols \n',b);&lt;br /&gt;
disp('____________________________________________________________________________');&lt;br /&gt;
if(b&amp;amp;gt;t)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf('Interleaving&amp;nbsp; MAY help in this scenario\n');&lt;br /&gt;
else&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf('Interleaving will NOT help in this scenario\n');&lt;br /&gt;
end&lt;br /&gt;
disp('____________________________________________________________________________');&lt;br /&gt;
D=ceil(b/t)+1; %Intelever Depth&lt;br /&gt;
&lt;br /&gt;
memory = zeros(D,n); %constructing block interleaver memory&lt;br /&gt;
&lt;br /&gt;
data='THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_'; % A constant pattern used as a data&lt;br /&gt;
&lt;br /&gt;
%If n&amp;amp;gt;length(data) then repeat the pattern to construct a data of length 'n'&lt;br /&gt;
data=char([repmat(data,[1,fix(n/length(data))]),data(1:mod(n,length(data)))]);&lt;br /&gt;
&lt;br /&gt;
%We sending D blocks of similar data&lt;br /&gt;
intlvrInput=repmat(data(1:n),[1 D]);&lt;br /&gt;
&lt;br /&gt;
fprintf('Input Data to the Interleaver -&amp;amp;gt; \n');&lt;br /&gt;
disp(char(intlvrInput));&lt;br /&gt;
disp('____________________________________________________________________________');&lt;br /&gt;
&lt;br /&gt;
%INTERLEAVER&lt;br /&gt;
%Writing into the interleaver row-by-row&lt;br /&gt;
for index=1:D&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; memory(index,1:end)=intlvrInput((index-1)*n+1:index*n);&lt;br /&gt;
end&lt;br /&gt;
intlvrOutput=zeros(1,D*n);&lt;br /&gt;
%Reading from the interleaver column-by-column&lt;br /&gt;
for index=1:n&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; intlvrOutput((index-1)*D+1:index*D)=memory(:,index);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Create b symbols error at 25th Symbol location for test in the interleaved output&lt;br /&gt;
%'*' means error in this case&lt;br /&gt;
intlvrOutput(1,25:24+b)=zeros(1,b)+42; &lt;br /&gt;
fprintf('\nInterleaver Output after being corrupted by %d symbol burst error - marked by ''*''-&amp;amp;gt;\n',b);&lt;br /&gt;
disp(char(intlvrOutput));&lt;br /&gt;
disp('____________________________________________________________________________');&lt;br /&gt;
&lt;br /&gt;
%Deinteleaver&lt;br /&gt;
deintlvrOutput=zeros(1,D*n);&lt;br /&gt;
%Writing into the deinterleaver column-by-column&lt;br /&gt;
for index=1:n&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; memory(:,index)=intlvrOutput((index-1)*D+1:index*D)';&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Reading from the deinterleaver row-by-row&lt;br /&gt;
for index=1:D&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; deintlvrOnput((index-1)*n+1:index*n)=memory(index,1:end);&lt;br /&gt;
end&lt;br /&gt;
fprintf('Deinterleaver Output-&amp;amp;gt;\n');&lt;br /&gt;
disp(char(deintlvrOnput));&lt;br /&gt;
disp('____________________________________________________________________________');&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #cc0000;"&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/div&gt;Given (255,235) Reed Solomon code can correct : 10 symbols &lt;br /&gt;
Given - expected burst error length from the channel : 20 symbols &lt;br /&gt;
____________________________________________________________________________&lt;br /&gt;
Interleaving&amp;nbsp; MAY help in this scenario&lt;br /&gt;
____________________________________________________________________________&lt;br /&gt;
Input Data to the Interleaver -&amp;gt;&lt;br /&gt;
&lt;b style="color: #38761d;"&gt;THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_&lt;/b&gt;____________________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Interleaver Output after being corrupted by 20 symbols burst error - marked by '&lt;span style="color: #cc0000;"&gt;*'&lt;/span&gt;-&amp;gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #38761d;"&gt;TTTHHHEEE___QQQUUUIIICCC&lt;span style="color: #cc0000;"&gt;********************&lt;/span&gt;N___FFFOOOXXX___JJJUUUMMMPPPSSS___OOOVVVEEERRR___TTTHHHEEE___LLLAAAZZZYYY___DDDOOOGGG___TTTHHHEEE___QQQUUUIIICCCKKK___BBBRRROOOWWWNNN___FFFOOOXXX___JJJUUUMMMPPPSSS___OOOVVVEEERRR___TTTHHHEEE___LLLAAAZZZYYY___DDDOOOGGG___TTTHHHEEE___QQQUUUIIICCCKKK___BBBRRROOOWWWNNN___FFFOOOXXX___JJJUUUMMMPPPSSS___OOOVVVEEERRR___TTTHHHEEE___LLLAAAZZZYYY___DDDOOOGGG___TTTHHHEEE___QQQUUUIIICCCKKK___BBBRRROOOWWWNNN___FFFOOOXXX___JJJUUUMMMPPPSSS___OOOVVVEEERRR___TTTHHHEEE___LLLAAAZZZYYY___DDDOOOGGG___TTTHHHEEE___QQQUUUIIICCCKKK___BBBRRROOOWWWNNN___FFFOOOXXX___JJJUUUMMMPPPSSS___OOOVVVEEERRR___TTTHHHEEE___LLLAAAZZZYYY___DDDOOOGGG___TTTHHHEEE___QQQUUUIIICCCKKK___BBBRRROOOWWWNNN___FFFOOOXXX___JJJUUUMMMPPPSSS___OOOVVVEEERRR___TTTHHHEEE___&lt;/span&gt;&lt;/b&gt;____________________________________________________________________________&lt;br /&gt;
Deinterleaver Output-&amp;gt;&lt;br /&gt;
&lt;b style="color: #38761d;"&gt;THE_QUIC&lt;span style="color: #cc0000;"&gt;*******&lt;/span&gt;_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_THE_QUIC&lt;span style="color: #cc0000;"&gt;*******&lt;/span&gt;_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_THE_QUIC&lt;span style="color: #cc0000;"&gt;******&lt;/span&gt;N_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_&lt;/b&gt;____________________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
As we can see from the above simulation that, eventhough the channel introduces 20 symbols of consecutive burst error (which is beyond the correction capability of the RS decoder), the interleaver/deinterleaver operation has effectively distributed the errors and reduced the maximum burst length to 7 symbols (which is easier to correct by (255,235) Reed Solomon code.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #990000;"&gt;&lt;b&gt;Recommended Books:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" height="200px" id="Player_cf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e" width="560px"&gt; &lt;param name="movie" value="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;amp;MarketPlace=US&amp;amp;ID=V20070822%2FUS%2Fgaussi-20%2F8010%2Fcf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e&amp;amp;Operation=GetDisplayTemplate" /&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;MarketPlace=US&amp;ID=V20070822%2FUS%2Fgaussi-20%2F8010%2Fcf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e&amp;Operation=GetDisplayTemplate" id="Player_cf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e" quality="high" bgcolor="#ffffff" name="Player_cf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e" allowscriptaccess="always"  type="application/x-shockwave-flash" align="middle" height="200px" width="560px"&gt;&lt;/embed&gt;&lt;/object&gt; &lt;noscript&gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;a href="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;MarketPlace=US&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;ID=V20070822%2FUS%2Fgaussi-20%2F8010%2Fcf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;Operation=NoScript"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Amazon.com Widgets&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/a&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&lt;/noscript&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-742089904944464943?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KGGhq5AnSwE:7ZR0Ak5UJUY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KGGhq5AnSwE:7ZR0Ak5UJUY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KGGhq5AnSwE:7ZR0Ak5UJUY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=KGGhq5AnSwE:7ZR0Ak5UJUY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=KGGhq5AnSwE:7ZR0Ak5UJUY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/KGGhq5AnSwE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/742089904944464943/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=742089904944464943" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/742089904944464943?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/742089904944464943?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/KGGhq5AnSwE/block-interleaver-design-for-rs-codes.html" title="Block Interleaver Design for RS codes" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_4Q2hMGW5AXs/TMkil2xjEgI/AAAAAAAAEck/PSwMh_4Aon0/s72-c/1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2010/10/block-interleaver-design-for-rs-codes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYCQH8zeyp7ImA9Wx9REk4.&quot;"><id>tag:blogger.com,1999:blog-2252788420755374228.post-1984674199284942530</id><published>2010-10-25T11:36:00.004+01:00</published><updated>2010-12-13T10:29:21.183Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-13T10:29:21.183Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Interleaver" /><category scheme="http://www.blogger.com/atom/ns#" term="Channel Modelling" /><title>Interleavers and deinterleavers</title><content type="html">Interleavers and Deinterleavers are designed and used in the context of characteristics of the errors that might occur when the message bits are transmitted through a noisy channel. To understand the functions of an interleaver/deinterleaver, understanding of error characteristics is essential. Two types are errors concern communication system design engineer. They are burst error and random error&lt;br /&gt;
&lt;input name="IL_RELATED_TAGS" type="hidden" value="1" /&gt;&lt;br /&gt;
&lt;div style="color: #990000;"&gt;&lt;b&gt;Random Errors:&lt;/b&gt;&lt;/div&gt;Error locations are independent of each other. Error on one location will not affect the errors on other locations. Channels that introduce these types of errors are called channels without memory (since the channel has no knowledge of error locations since the error on location does not affect the error on another location).&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #990000;"&gt;&lt;b&gt;Burst &lt;/b&gt;&lt;b&gt;Errors:&lt;/b&gt;&lt;/div&gt;Errors are depended on each other. For example, in channels with deep fading characteristics, errors often occur in bursts (affecting consecutive bits). That is, error in one location has a contagious effect on other bits. In general, these errors are considered to be dependent and such channels are considered to be channels with memory.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #990000;"&gt;&lt;b&gt;Interleaver/Deinterleaver :&lt;/b&gt;&lt;/div&gt;One of the most popular ways to correct burst errors is to take a code that works well on random errors and interleave the bursts to "spread out" the errors so that they appear random to the decoder. There are two types of interleavers commonly in use today, block interleavers and convolutional interleavers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The block interleaver is loaded row by row with L codewords, each of length n bits. These L codewords are then transmitted column by column until the interleaver is emptied. Then the interleaver is loaded again and the cycle repeats. At the receiver, the codewords are deinterleaved before they are decoded. A burst of length L bits or less will cause no more than 1 bit error in any one codeword. The random error decoder is much more likely to correct this single error than the entire burst.The parameter L is called the interleaver degree, or interleaver depth. The interleaver depth is chosen based on worst case channel conditions. It must be large enough so that the interleaved code can handle the longest error bursts expected on the channel. The main drawback of block interleavers is the delay introduced with each row-by-row fill of the interleaver. &lt;br /&gt;
&lt;br /&gt;
Convolutional interleavers eliminate the problem except for the delay associated with the initial fill. Convolutional interleavers also reduce memory requirements over block interleavers by about one-half [1]. The big disadvantage of either type of interleaver is the interleaver delay introduced by this initial fill. The delay is a function of the interleaver depth and the data rate and for some channels it can be several seconds long. This long delay may be unacceptable for some applications. On voice circuits (as in GSM), for example, interleaver delays confuse the unfamiliar listener by introducing long pauses between speaker transitions. Even short delays of less than one second are sufficient to disrupt normal conversation. Another disadvantage of interleavers is that a smart jammer can choose the appropriate time to jam to cause maximum damage. This problem is overcome by randomizing the order in which the interleaver is emptied.&lt;br /&gt;
&lt;br /&gt;
In practice, interleaving is one of the best burst-error correcting techniques. In theory, it is the worst way to handle burst errors. Why? From a strict probabilistic sense, we are converting "good" errors into "bad" errors. Burst errors have structure and that structure can be exploited. Interleavers "randomize" the errors and destroy the structure. Theory differs from reality,however. Interleaving may be the only technique available to handle burst errors successfully.&lt;br /&gt;
&lt;br /&gt;
For example, Viterbi [2] shows that, for a channel impaired by a pulse jammer, exploiting the burst structure is not enough. Interleaving is still required. This does not mean that we should be careless about our choice of code and take up the slack with long interleavers. Codes designed to correct burst errors can achieve the same performance with much shorter interleavers. Until the coding theorists discover a better way, interleaving will be an essential error control coding technique for bursty channels.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #990000;"&gt;&lt;b&gt;References :&lt;/b&gt;&lt;/div&gt;[1]&lt;a href="http://www.amazon.com/Digital-Communications-Fundamentals-Applications-2nd/dp/0130847887?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;B. Sklar, Digital Communications Fundamentals and Applications, Englewood Cliffs, New Jersey: Prentice Hall, 1988.&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0130847887" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
[2]&lt;a href="http://www.amazon.com/CDMA-Principles-Spread-Spectrum-Communication/dp/0201633744?ie=UTF8&amp;amp;tag=gaussi-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;A. J. Viterbi, "Spread Spectrum Communications – Myths and Realities," IEEE Communications Magazine, vol. 17, No. 5, pp. 11-18, May 1979. &lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=gaussi-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0201633744" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #990000;"&gt;&lt;b&gt;Recommended Books:&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" height="200px" id="Player_cf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e" width="560px"&gt; &lt;param name="movie" value="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;amp;MarketPlace=US&amp;amp;ID=V20070822%2FUS%2Fgaussi-20%2F8010%2Fcf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e&amp;amp;Operation=GetDisplayTemplate" /&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;MarketPlace=US&amp;ID=V20070822%2FUS%2Fgaussi-20%2F8010%2Fcf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e&amp;Operation=GetDisplayTemplate" id="Player_cf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e" quality="high" bgcolor="#ffffff" name="Player_cf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e" allowscriptaccess="always"  type="application/x-shockwave-flash" align="middle" height="200px" width="560px"&gt;&lt;/embed&gt;&lt;/object&gt; &lt;noscript&gt;&amp;amp;amp;amp;amp;amp;amp;amp;lt;a href="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;amp;amp;amp;amp;amp;amp;amp;amp;MarketPlace=US&amp;amp;amp;amp;amp;amp;amp;amp;amp;ID=V20070822%2FUS%2Fgaussi-20%2F8010%2Fcf61aa9c-a1e8-4a27-a83a-d4e533ccaf7e&amp;amp;amp;amp;amp;amp;amp;amp;amp;Operation=NoScript"&amp;amp;amp;amp;amp;amp;amp;amp;gt;Amazon.com Widgets&amp;amp;amp;amp;amp;amp;amp;amp;lt;/a&amp;amp;amp;amp;amp;amp;amp;amp;gt;&lt;/noscript&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252788420755374228-1984674199284942530?l=gaussianwaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=aBkgxOat8CU:qAPMpUd-Hzk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=aBkgxOat8CU:qAPMpUd-Hzk:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=aBkgxOat8CU:qAPMpUd-Hzk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Gaussianwaves?a=aBkgxOat8CU:qAPMpUd-Hzk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Gaussianwaves?i=aBkgxOat8CU:qAPMpUd-Hzk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Gaussianwaves/~4/aBkgxOat8CU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gaussianwaves.blogspot.com/feeds/1984674199284942530/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2252788420755374228&amp;postID=1984674199284942530" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/1984674199284942530?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2252788420755374228/posts/default/1984674199284942530?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gaussianwaves/~3/aBkgxOat8CU/interleavers-and-deinterleavers.html" title="Interleavers and deinterleavers" /><author><name>mathuranathan</name><uri>http://www.blogger.com/profile/14472055926898539663</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://gaussianwaves.blogspot.com/2010/10/interleavers-and-deinterleavers.html</feedburner:origLink></entry></feed>

