<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>DSP log</title>
	
	<link>http://www.dsplog.com</link>
	<description>Signal Processing for Communication</description>
	<lastBuildDate>Tue, 08 May 2012 00:32:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/dsplogdotcom" /><feedburner:info uri="dsplogdotcom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>dsplogdotcom</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Thermal noise of RC low pass filter</title>
		<link>http://feedproxy.google.com/~r/dsplogdotcom/~3/u5sDyXhuZzA/</link>
		<comments>http://www.dsplog.com/2012/05/06/thermal-noise-rc-low-pass-filter/#comments</comments>
		<pubDate>Sun, 06 May 2012 03:48:58 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Filter]]></category>
		<category><![CDATA[noise]]></category>
		<category><![CDATA[RC]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=1258</guid>
		<description>&amp;#160; This post discuss about the thermal noise in RC low pass filter. Using the noise equivalent model using resistor with a voltage source, which gets passed through a no noise RC low pass filter. The noise power at the output is computed by integrating the output voltage spectral density over all frequencies. Consider a [...]
Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2007/12/02/digital-implementation-of-rc-low-pass-filter/' rel='bookmark' title='Digital implementation of RC low pass filter'&gt;Digital implementation of RC low pass filter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2012/04/13/noise-figure-resistor/' rel='bookmark' title='Noise Figure of resistor network'&gt;Noise Figure of resistor network&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2012/03/25/thermal-noise-awgn/' rel='bookmark' title='Thermal Noise and AWGN'&gt;Thermal Noise and AWGN&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
			<content:encoded><![CDATA[<p></p><p>&nbsp;</p>
<p>This post discuss about the thermal noise in RC low pass filter. Using the noise equivalent model using resistor with a voltage source, which gets passed through a no noise RC low pass filter. The noise power at the output is computed by integrating the output voltage spectral density over all frequencies.</p>
<p><span id="more-1258"></span></p>
<p>Consider a simple RC low pass filter with resistor <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R" alt="" align="absmiddle" border="0" /> and capacitance <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?C" alt="" align="absmiddle" border="0" /> as shown in the figure below.</p>
<p><img class="alignnone size-full wp-image-1266" title="thermal_noise_RC_low_pass_filter" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/05/thermal_noise_RC_low_pass_filter.png" alt="" width="418" height="213" /></p>
<p><strong>Figure : Noise equivalent model of RC low pass filter </strong>(Reference : Figure 9.3-6 in <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FCommunication-Systems-Bruce-Carlson%2Fdp%2F0070111278&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Communication Systems – An introduction to Signals and noise in Electrical Communication by A. Bruce Carlson, Paul Crilly, Janet Rutledge</a>)</p>
<p>As discussed in the post on <a title="Thermal noise and AWGN" href="http://www.dsplog.com/2012/03/25/thermal-noise-awgn/" target="_blank">thermal noise and AWGN</a>, the resistor <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R" alt="" align="absmiddle" border="0" /> is generating a noise having power <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_0=4kTR" alt="" align="absmiddle" border="0" /> having power spectral density</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G_x(f)=\frac{N_0}{2}=2kTR\ \ \  V^2/Hz" alt="" align="absmiddle" border="0" />.</p>
<p>The noise voltage gets applied to a noise less RC low pass filter having transfer function,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?|H(f)|^2=\frac{1}{1+(f/B__{3dB})^2}" alt="" align="absmiddle" border="0" />, where</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?B_{\small{3dB}}=\frac{1}{2\pi RC}" alt="" align="absmiddle" border="0" /> is the -3dB bandwidth of the filter.</p>
<p>The power spectral density of the output signal is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G_y(f)=G_x(f)|H(f)|^2" alt="" align="absmiddle" border="0" />.</p>
<p>Integrating the output power spectral density over all frequencies from <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-\infty\mbox{ to }\infty" alt="" align="absmiddle" border="0" />  will give the <strong>noise voltage at the output</strong>, i.e.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}E\[y^2\]&amp;=&amp;\int_{-\infty}^{+\infty}%20G_y(f)\\&amp;=&amp;\frac{N_0}{2}\int_{-\infty}^{+\infty}|H(f)|^2df\\&amp;=&amp;N_0\underbrace{\int_{0}^{+\infty}|H(f)|^2df}_{B_N}\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p>Computing <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?B_N" alt="" align="absmiddle" border="0" /> by plugging in the expression for <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?|H(f)|^2" alt="" align="absmiddle" border="0" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}B_N&amp;=&amp;{\int_{0}^{+\infty}|H(f)|^2df}\\ &amp;=&amp;\int_{0}^{+\infty}\frac{1}{\[1+(f/B_{\small{3dB}})^2\]}df\\&amp;=&amp;{\frac{\pi}{2}B_{\small{3dB}}}\\&amp;=&amp;\frac{1}{4RC}\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p>(<strong>Note</strong>: The neat trick behind integration described below)</p>
<p>Plugging in <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_0=4kTR" alt="" align="absmiddle" border="0" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?B_N=\frac{1}{4RC}" alt="" align="absmiddle" border="0" />, the noise power at the output is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}E\[y^2\]&amp;=&amp;N_0B_N\\&amp;=&amp;4kTR\frac{1}{4RC}\\&amp;=&amp;\Large{\frac{kT}{C}}\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p>Summarizing, <strong>the mean square voltage at the output of the RC low pass filter is,</strong></p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{E\[y^2\]=\frac{kT}{C}}\ \ \ V^2/Hz" alt="" align="absmiddle" border="0" />.</p>
<p>Plugging in capacitance values from 1pF to 1nF, the root mean square voltage is shown below.</p>
<table border="0" frame="SOLID" rules="NONE" cellspacing="0" align="CENTER">
<colgroup>
<col width="128" />
<col width="107" />
<col width="86" /></colgroup>
<tbody>
<tr>
<td align="LEFT" width="128" height="17">k (Boltzmann constant)</td>
<td align="CENTER" width="107">1.38E-023</td>
<td align="CENTER" width="86">Joules/Kelvin</td>
</tr>
<tr>
<td align="LEFT" height="17">T (temperature)</td>
<td align="CENTER">300</td>
<td align="CENTER">Kelvin</td>
</tr>
<tr>
<td align="LEFT" height="17"></td>
<td align="LEFT"></td>
<td align="LEFT"></td>
</tr>
<tr>
<td style="border: 1px solid #000000;" align="CENTER" height="17"><strong>Capacitance, farad</strong></td>
<td style="border: 1px solid #000000;" align="CENTER"><strong>RMS voltage, V</strong></td>
<td align="LEFT"></td>
</tr>
<tr>
<td style="border: 1px solid #000000;" align="CENTER" height="17">1.00E-012</td>
<td style="border: 1px solid #000000;" align="CENTER">6.434E-005</td>
<td align="LEFT"></td>
</tr>
<tr>
<td style="border: 1px solid #000000;" align="CENTER" height="17">1.00E-011</td>
<td style="border: 1px solid #000000;" align="CENTER">2.035E-005</td>
<td align="LEFT"></td>
</tr>
<tr>
<td style="border: 1px solid #000000;" align="CENTER" height="17">1.00E-010</td>
<td style="border: 1px solid #000000;" align="CENTER">6.434E-006</td>
<td align="LEFT"></td>
</tr>
<tr>
<td style="border: 1px solid #000000;" align="CENTER" height="17">1.00E-009</td>
<td style="border: 1px solid #000000;" align="CENTER">2.035E-006</td>
<td align="LEFT"></td>
</tr>
</tbody>
</table>
<p><strong>Observations: </strong></p>
<p>a) As expected from the equation, when the capacitance is increased, the noise voltage reduces (as the filter bandwidth is getting narrower).</p>
<p>b) The noise power at the output is independent of resistor <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R" alt="" align="absmiddle" border="0" />. Increasing the resistance will increase the noise power <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_0=4kTR" alt="" align="absmiddle" border="0" />, but decreases the filter bandwidth <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?B_{\small{3dB}}=\frac{1}{2\pi RC}" alt="" align="absmiddle" border="0" />. Similarly decreasing the resistor will reduce the noise power, but increases the filter bandwidth. These two effects cancel each other leaving the noise power dependent only on the temperature <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?T" alt="" align="absmiddle" border="0" /> and capacitance <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?C" alt="" align="absmiddle" border="0" />.</p>
<h2>References:</h2>
<p>a) <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FCommunication-Systems-Bruce-Carlson%2Fdp%2F0070111278&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Communication Systems – An introduction to Signals and noise in Electrical Communication by A. Bruce Carlson, Paul Crilly, Janet Rutledge</a></p>
<p>b) <a title="List of trigonometric identities from wikipedia" href="http://en.wikipedia.org/wiki/List_of_trigonometric_identities" target="_blank">List of Trigonometric Identities from wikipedia</a></p>
<p>c) <a title="Differentiation rules from wiki" href="http://en.wikipedia.org/wiki/Differentiation_rules" target="_blank">Differentiation rules from wikipedia</a></p>
<p>d) <a title="Johnson-Nyquist noise in wiki" href="http://en.wikipedia.org/wiki/Johnson%E2%80%93Nyquist_noise" target="_blank">Johnson-Nyquist Noise from wikipedia</a></p>
<p><strong>Note :</strong></p>
<p>Liked the neat trick using  substitution for solving the integration over all frequencies in a first order RC low pass filter. Did some googling to find that out&#8230;and the steps are as follows.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\int_{0}^{\infty}\frac{1}{\[1+(x/a)^2\]}dx" alt="" align="absmiddle" border="0" /></p>
<p>Let <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x=a\tan \theta" alt="" align="absmiddle" border="0" />, then  <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?dx=a\sec^2 \theta d\theta" alt="" align="absmiddle" border="0" /> and the integration limits are</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x=0\ \rightarrow\  \theta=0" alt="" align="absmiddle" border="0" />, <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x=\infty\ \rightarrow\  \theta=\frac{\pi}{2}" alt="" align="absmiddle" border="0" />.</p>
<p>Also, note that (thanks to the <a title="List of trigonometric identities from wikipedia" href="http://en.wikipedia.org/wiki/List_of_trigonometric_identities" target="_blank">List of Trigonometric Identities from wikipedia</a>, <a title="Differentiation rules from wiki" href="http://en.wikipedia.org/wiki/Differentiation_rules" target="_blank">Differentiation rules from wikipedia</a>)</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?1+\tan^2\theta=\frac{1}{\cos^2\theta} = \sec^2\theta" alt="" align="absmiddle" border="0" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}\frac{d}{d\theta}\tan%20\theta&amp;=&amp;\frac{d}{d\theta}\frac{\sin%20\theta}{\cos%20\theta}\\&amp;=&amp;\frac{\(\frac{d}{d\theta}\sin\theta\)\cos\theta-\(\frac{d}{d\theta}\cos\theta\)\sin\theta}{\cos^2\theta}\\&amp;=&amp;\frac{\cos^2\theta+\sin^2\theta}{\cos^2\theta}=1+\tan^2\theta\\&amp;=&amp;\frac{1}{\cos^2\theta}=\sec^2\theta\end{array}" alt="" align="absmiddle" border="0" /></p>
<p>Plugging all the above,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}\int_{0}^{\infty}\frac{1}{\[1+(x/a)^2\]}dx&amp;=&amp;a\int_{0}^{\frac{\pi}{2}}\frac{1}{\[1+\tan^2\theta\]}\sec^2\theta d\theta\\\\&amp;=&amp;a\int_{0}^{\frac{\pi}{2}}d\theta\\\\&amp;=&amp;\frac{\pi}{2}a\end{array}" alt="" align="absmiddle" border="0" />. Neat!</p>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2007/12/02/digital-implementation-of-rc-low-pass-filter/' rel='bookmark' title='Digital implementation of RC low pass filter'>Digital implementation of RC low pass filter</a></li>
<li><a href='http://www.dsplog.com/2012/04/13/noise-figure-resistor/' rel='bookmark' title='Noise Figure of resistor network'>Noise Figure of resistor network</a></li>
<li><a href='http://www.dsplog.com/2012/03/25/thermal-noise-awgn/' rel='bookmark' title='Thermal Noise and AWGN'>Thermal Noise and AWGN</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/wJeSDNPnGEROuR7x4hM5gLl7Q4I/0/da"><img src="http://feedads.g.doubleclick.net/~a/wJeSDNPnGEROuR7x4hM5gLl7Q4I/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/wJeSDNPnGEROuR7x4hM5gLl7Q4I/1/da"><img src="http://feedads.g.doubleclick.net/~a/wJeSDNPnGEROuR7x4hM5gLl7Q4I/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=u5sDyXhuZzA:mnrd3P0cw1c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=u5sDyXhuZzA:mnrd3P0cw1c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=u5sDyXhuZzA:mnrd3P0cw1c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=u5sDyXhuZzA:mnrd3P0cw1c:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=u5sDyXhuZzA:mnrd3P0cw1c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=u5sDyXhuZzA:mnrd3P0cw1c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=u5sDyXhuZzA:mnrd3P0cw1c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=u5sDyXhuZzA:mnrd3P0cw1c:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dsplogdotcom/~4/u5sDyXhuZzA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2012/05/06/thermal-noise-rc-low-pass-filter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.dsplog.com/2012/05/06/thermal-noise-rc-low-pass-filter/</feedburner:origLink></item>
		<item>
		<title>Noise Figure of cascaded stages</title>
		<link>http://feedproxy.google.com/~r/dsplogdotcom/~3/JTdAZeC3cpc/</link>
		<comments>http://www.dsplog.com/2012/04/21/noise-figure-cascaded-stages/#comments</comments>
		<pubDate>Sat, 21 Apr 2012 02:38:09 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Receiver]]></category>
		<category><![CDATA[AWGN]]></category>
		<category><![CDATA[noise]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=1243</guid>
		<description>Following the discussion on thermal noise and it&amp;#8217;s modeling and noise figure computation for a simple resistor network, in this article let us discuss the Noise Figure of cascaded stages. Definition of Noise Figure From Section 2.3.2 of RF Microelectronics, Behzad Razavi, the noise figure is defined as , where  is the input signal to noise ratio and  is [...]
Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2012/04/13/noise-figure-resistor/' rel='bookmark' title='Noise Figure of resistor network'&gt;Noise Figure of resistor network&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2007/07/01/example-of-cascaded-integrator-comb-filter-in-matlab/' rel='bookmark' title='Example of Cascaded Integrator Comb filter in Matlab'&gt;Example of Cascaded Integrator Comb filter in Matlab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2012/05/06/thermal-noise-rc-low-pass-filter/' rel='bookmark' title='Thermal noise of RC low pass filter'&gt;Thermal noise of RC low pass filter&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
			<content:encoded><![CDATA[<p></p><p>Following the discussion on<a title="Thermal noise and AWGN" href="http://www.dsplog.com/2012/03/25/thermal-noise-awgn/" target="_blank"> thermal noise and it&#8217;s modeling</a> and <a title="Noise Figure of resistor network" href="http://www.dsplog.com/2012/04/13/noise-figure-resistor/" target="_blank">noise figure computation for a simple resistor network</a>, in this article let us discuss the Noise Figure of cascaded stages.</p>
<p><span id="more-1243"></span></p>
<h2>Definition of Noise Figure</h2>
<p>From Section 2.3.2 of <a href="http://www.amazon.com/RF-Microelectronics-Behzad-Razavi/dp/0138875715/?_encoding=UTF8&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325" target="_blank">RF Microelectronics, Behzad Razavi</a><img src="http://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" alt="" width="1" height="1" border="0" />, the <strong>noise figure</strong> is defined as</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_F = \frac{SNR_{in}}{SNR_{out}}" alt="" align="absmiddle" border="0" />, where</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?SNR_{in}=\frac{S_{in}}{N_{in}}" alt="" align="absmiddle" border="0" /> is the input signal to noise ratio and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?SNR_{out}=\frac{S_{out}}{N_{out}}" alt="" align="absmiddle" border="0" /> is the output signal to noise ratio.</p>
<p>Consider that the system has a gain <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G" alt="" align="absmiddle" border="0" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_a" alt="" align="absmiddle" border="0" /> is the noise added by the system.</p>
<p>With that,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?S_{out}=GS_{in}" alt="" align="absmiddle" border="0" /></p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{out}=N_a+ GN_{in}" alt="" align="absmiddle" border="0" /></p>
<p>The Noise Figure is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}N_F&amp;=&amp;\frac{S_{in}/N_{in}}{S_{out}/N_{out}}\\\\&amp;=&amp;\frac{S_{in}/N_{in}}{GS_{in}/\(N_a+GN_{in}\)}\\\\\\&amp;=&amp;\frac{N_a+GN_{in}}{GN_{in}}\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p>From the previous post on thermal noise, we know that noise power over bandwidth <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?B" alt="" align="absmiddle" border="0" /> at temperature <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?T" alt="" align="absmiddle" border="0" /> Kelvin is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{in} = kTB" alt="" align="absmiddle" border="0" />.</p>
<p>With that the noise figure equation can be modified as,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{N_F = \frac{N_a+GkTB}{GkTB}}" alt="" align="absmiddle" border="0" />.</p>
<p><strong>Two key equations to remember: </strong></p>
<p>a) Noise added by the noise sources in system is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{N_a = kTBG(N_F-1)}" alt="" align="absmiddle" border="0" /></p>
<p>b) Noise at the output of the system is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{N_{out} = kTBGN_F}" alt="" align="absmiddle" border="0" /></p>
<p>&nbsp;</p>
<h2><strong>Example</strong></h2>
<p>For example, consider a device of bandwidth <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?B=20MHz" alt="" align="absmiddle" border="0" /> and having a gain <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G=60dB" alt="" align="absmiddle" border="0" /> with noise figure of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?NF_{dB}=5dB" alt="" align="absmiddle" border="0" />. What is the noise power seen at the output of the device?</p>
<p><strong>Solution: </strong>Assuming temperature of 300K, the noise seen at the input of the device</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}N_{in}&amp;=&amp;10\log_{10}\(kTB\)\\&amp;=&amp;10\log_{10}\(1.38*10^{-23}*300*20*10^6\)\\&amp;=&amp;-100.82dBm\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{out}=N_a+GN_{in}=\(N_{in}G\)N_F" alt="" align="absmiddle" border="0" />.</p>
<p>Expressing in deciBels, the noise power seen at the output of the device is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{out}=60+5+-100.82 = -35.82dBm" alt="" align="absmiddle" border="0" />.</p>
<h2>Noise Figure of cascade of two stages</h2>
<p>Consider a system with cascade of two gain stages having gains of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G_1" alt="" align="absmiddle" border="0" />, <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G_2" alt="" align="absmiddle" border="0" /> and with noise figure of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{F1}" alt="" align="absmiddle" border="0" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{F2}" alt="" align="absmiddle" border="0" /> respectively.</p>
<p><img class="alignnone size-full wp-image-1247" title="cascaded_noise_sources_noise_figure" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/04/cascaded_noise_sources_noise_figure.png" alt="" width="575" height="245" /></p>
<p><strong>Figure : Cascaded gain stages with noise power output</strong></p>
<p><strong>The noise power at the output of the first stage is the sum of</strong></p>
<p>a) Noise power at the input terminal of first gain stage <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{in,1} = kTB" alt="" align="absmiddle" border="0" /> which is amplified by gain <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G_1" alt="" align="absmiddle" border="0" />.</p>
<p>b) Noise power generated by the first gain stage <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{a,1} = kTBG_1(N_{F1}-1)" alt="" align="absmiddle" border="0" /></p>
<p>Summing them up, the noise seen at the output of first gain stage is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}N_{out,1}&amp;=&amp;kTBG_1+kTBG_1(N_{F1}-1)\\&amp;=&amp;kTBG_1N_{F1}\end{array}" alt="" align="absmiddle" border="0" /></p>
<p><strong>* Note : </strong>The sum of powers is possible because it is assumed that the input noise and the noise added by the system are uncorrelated i.e.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}E\{(x+y)^2\}&amp;=&amp;E\{x^2\}+E\{y^2\}+2E\{xy\}\\&amp;=&amp;E\{x^2\}+E\{y^2\}\end{array}" alt=" alt=" align="absmiddle" border="0" />, where</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?E\{xy\}=0" alt=" alt=" align="absmiddle" border="0" /> when <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x" alt=" alt=" align="absmiddle" border="0" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y" alt=" alt=" align="absmiddle" border="0" /> are uncorrelated.</p>
<div></div>
<div><strong>Similarly the noise power seen at the output of the second stage is the sum of</strong></div>
<div>
<p>a) Noise power at the input terminal of second gain stage <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{out,1} = kTBG_1N_{F1}" alt="" align="absmiddle" border="0" /> which is amplified by gain <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G_2" alt="" align="absmiddle" border="0" />.</p>
<p>b) Noise power generated by the second gain stage <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{a,2} = kTBG_2(N_{F2}-1)" alt="" align="absmiddle" border="0" /></p>
<p>Adding them up, the noise seen at the output of second gain stage is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}N_{out,2}&amp;=&amp;kTBG_1G_2N_{F1}+kTBG_2(N_{F2}-1)\\&amp;=&amp;kTB\overbrace{G_1G_2}^{\mbox{gain}}\underbrace{\(N_{F1}+\frac{N_{F2}-1}{G_1}\)}_{\mbox{noise figure}}\end{array}" alt="" align="absmiddle" border="0" />.</p>
<h2>Equivalent Noise Figure of 2 gain stages</h2>
<p>Summarizing, the equivalent noise figure of the two cascaded stage is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{N_{F12} = \(N_{F1}+\frac{N_{F2}-1}{G_1}\)}" alt="" align="absmiddle" border="0" /></p>
<p>and the equivalent gain is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{G_{12} = G_1G_2}" alt="" align="absmiddle" border="0" /></p>
<p><strong>Note :</strong> All the expressions are in linear terms</p>
<h2>Equivalent Noise Figure of n gain stages</h2>
<p>Extending this to cascade of  <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?n" alt="" align="absmiddle" border="0" />stages, the equivalent noise figure is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{N_{F12\ldots%20n}%20=%20N_{F1}+\frac{N_{F2}-1}{G_1}%20+%20\frac{N_{F3}-1}{G_1G_2}%20+%20\ldots%20+%20\frac{N_{Fn}-1}{G_1G_2\ldots%20G_{n-1}}}" alt="" align="absmiddle" border="0" />.</p>
<p>&nbsp;</p>
<h2>References</h2>
<p>a) <a title="IEEExplore link for Noise Figure of fadio receivers, H. T. Friis" href="http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;arnumber=1695024&amp;isnumber=35709">Friis, H.T.; , &#8220;Noise Figures of Radio Receivers,&#8221;</a> Proceedings of the IRE , vol.32, no.7, pp. 419- 422, July 1944</p>
</div>
<div>b) <a title="Agilent App Note 57-1 : Fundamentals of RF and Microwave noise figure measurements" href="http://cp.literature.agilent.com/litweb/pdf/5952-8255E.pdf">Fundamentals of RF and Microwave Noise Figure Measurements, Agilent App Note 57-1</a></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2012/04/13/noise-figure-resistor/' rel='bookmark' title='Noise Figure of resistor network'>Noise Figure of resistor network</a></li>
<li><a href='http://www.dsplog.com/2007/07/01/example-of-cascaded-integrator-comb-filter-in-matlab/' rel='bookmark' title='Example of Cascaded Integrator Comb filter in Matlab'>Example of Cascaded Integrator Comb filter in Matlab</a></li>
<li><a href='http://www.dsplog.com/2012/05/06/thermal-noise-rc-low-pass-filter/' rel='bookmark' title='Thermal noise of RC low pass filter'>Thermal noise of RC low pass filter</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/UJDmd55Zf8Q3GmS_CkCPmKsoELc/0/da"><img src="http://feedads.g.doubleclick.net/~a/UJDmd55Zf8Q3GmS_CkCPmKsoELc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/UJDmd55Zf8Q3GmS_CkCPmKsoELc/1/da"><img src="http://feedads.g.doubleclick.net/~a/UJDmd55Zf8Q3GmS_CkCPmKsoELc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=JTdAZeC3cpc:XLcEGozAtaY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=JTdAZeC3cpc:XLcEGozAtaY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=JTdAZeC3cpc:XLcEGozAtaY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=JTdAZeC3cpc:XLcEGozAtaY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=JTdAZeC3cpc:XLcEGozAtaY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=JTdAZeC3cpc:XLcEGozAtaY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=JTdAZeC3cpc:XLcEGozAtaY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=JTdAZeC3cpc:XLcEGozAtaY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dsplogdotcom/~4/JTdAZeC3cpc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2012/04/21/noise-figure-cascaded-stages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.dsplog.com/2012/04/21/noise-figure-cascaded-stages/</feedburner:origLink></item>
		<item>
		<title>Noise Figure of resistor network</title>
		<link>http://feedproxy.google.com/~r/dsplogdotcom/~3/_gE8mpdarWw/</link>
		<comments>http://www.dsplog.com/2012/04/13/noise-figure-resistor/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 22:17:20 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Receiver]]></category>
		<category><![CDATA[AWGN]]></category>
		<category><![CDATA[noise]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=1211</guid>
		<description>The post on thermal noise described the noise produced by resistor  ohms over bandwidth  at temperature Kelvin. In this post, let us define the noise voltage at the input and output of a resistor network and further use it to define the Noise Figure of such a network. From Section 2.3.2 of RF Microelectronics, Behzad Razavi, the noise figure is defined as [...]
Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2012/04/21/noise-figure-cascaded-stages/' rel='bookmark' title='Noise Figure of cascaded stages'&gt;Noise Figure of cascaded stages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2012/05/06/thermal-noise-rc-low-pass-filter/' rel='bookmark' title='Thermal noise of RC low pass filter'&gt;Thermal noise of RC low pass filter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2012/03/25/thermal-noise-awgn/' rel='bookmark' title='Thermal Noise and AWGN'&gt;Thermal Noise and AWGN&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
			<content:encoded><![CDATA[<p></p><p>The post on <a title="Thermal Noise and AWGN" href="http://www.dsplog.com/2012/03/25/thermal-noise-awgn/" target="_blank">thermal noise</a> described the noise produced by resistor <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R" alt="" align="absmiddle" border="0" /> ohms over bandwidth <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?B" alt="" align="absmiddle" border="0" /> at temperature <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?T" alt="" align="absmiddle" border="0" />Kelvin. In this post, let us define the noise voltage at the input and output of a resistor network and further use it to define the <strong>Noise Figure</strong> of such a network.</p>
<p><span id="more-1211"></span></p>
<p>From Section 2.3.2 of <a href="http://www.amazon.com/RF-Microelectronics-Behzad-Razavi/dp/0138875715/?_encoding=UTF8&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325" target="_blank">RF Microelectronics, Behzad Razavi</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" alt="" width="1" height="1" border="0" />, the <strong>noise figure</strong> is defined as</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?NF = \frac{SNR_{in}}{SNR_{out}}" alt="" align="absmiddle" border="0" />, where</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?SNR_{in}" alt="" align="absmiddle" border="0" /> is the input signal to noise ratio and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?SNR_{out}" alt="" align="absmiddle" border="0" /> is the output signal to noise ratio.</p>
<p><strong>Note : </strong>Some textbooks refer to this term as Noise Factor.</p>
<p>&nbsp;</p>
<h2>Noise Figure of a resistor network</h2>
<p>Consider a simple resistor circuit with <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?V_{in}" alt="" align="absmiddle" border="0" /> as the input voltage, <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R_s" alt="" align="absmiddle" border="0" /> source resistance and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R_p" alt="" align="absmiddle" border="0" /> as the parallel resistance (shown below) :</p>
<p><img class="alignnone size-full wp-image-1220" title="resistor_network" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/04/resistor_network.png" alt="" width="376" height="203" /></p>
<p><strong>Figure : Resistor network (Reference : Figure 2.30(a) of  <a href="http://www.amazon.com/RF-Microelectronics-Behzad-Razavi/dp/0138875715/?_encoding=UTF8&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325" target="_blank">RF Microelectronics, Behzad Razavi</a><img src="http://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" alt="" width="1" height="1" border="0" />)</strong></p>
<p>The noise voltage due to the source resistance <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R_s" alt="" align="absmiddle" border="0" /> is</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?V^2_{n,in} =4kTR_s" alt="" align="absmiddle" border="0" />.</p>
<p>The Signal to Noise Ratio at the input is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}SNR_{in} &amp;= &amp; \frac{V^2_{s,in}}{V^2_{n,in}}\\ &amp; = &amp; \frac{V^2_{s,in}}{4kTR_s}\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p>The signal voltage at the output is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?V_{s,out} =V_{s,in}\frac{R_p}{(R_s+R_p)}" alt="" align="absmiddle" border="0" /></p>
<p>The noise voltage at the output is,</p>
<p><img class="alignnone size-full wp-image-1221" title="thermal_noise_parallel_resistor" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/04/thermal_noise_parallel_resistor.png" alt="" width="245" height="211" /></p>
<p><strong>Figure : Equivalent resistor noise model for two parallel resistor (Reference : Figure 2.30(b) of  <a href="http://www.amazon.com/RF-Microelectronics-Behzad-Razavi/dp/0138875715/?_encoding=UTF8&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325" target="_blank">RF Microelectronics, Behzad Razavi</a>)</strong></p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?V^2_{n,out} =4kT\frac{R_sR_p}{(R_s+R_p)}" alt="" align="absmiddle" border="0" />.</p>
<p>The Signal to Noise Ratio at the output is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}SNR_{out}%20&amp;=%20&amp;%20\frac{V^2_{s,out}}{V^2_{n,out}}\\%20&amp;%20=%20&amp;%20V_{s,in}^2\frac{R_p^2}{(R_s+R_p)^2}\frac{(R_s+R_p)}{R_sR_p}\frac{1}{4kT}\\&amp;=&amp;V_{s,in}^2\frac{R_p}{R_s\(R_s+R_p\)}\frac{1}{4kT}\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p>&nbsp;</p>
<p>Calculating,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}\frac{SNR_{in}}{SNR_{out}}&amp;=&amp;\frac{V_{s,in}^2}{4kTR_s}\frac{R_s\(R_s+R_p\)}{R_p}\frac{4kT}{V_{s,in}^2}\\&amp;=&amp;\frac{R_p+R_s}{R_p}\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p><strong>The Noise Figure is,</strong></p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{NF=1+\frac{R_s}{R_p}}" alt="" align="absmiddle" border="0" /></p>
<p><strong>Observations</strong></p>
<p>a) Per the <a title="wiki entry on Maximum Power Transfer theorem" href="http://en.wikipedia.org/wiki/Maximum_power_transfer_theorem" target="_blank">Maximum Power Transfer theorem</a> the source and load resistance should be equal i.e <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R_s=R_p" alt="" align="absmiddle" border="0" />. However that condition does not coincide with the minimum noise figure. The source and load resistance and equal results in <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?NF=2" alt="" align="absmiddle" border="0" /> (3dB in decibels)</p>
<p>b) Noise Figure is minimized by maximizing resistance <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R_p" alt="" align="absmiddle" border="0" /> OR minimizing source resistance <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R_s" alt="" align="absmiddle" border="0" />.</p>
<h2>Reference</h2>
<p><strong><a href="http://www.amazon.com/RF-Microelectronics-Behzad-Razavi/dp/0138875715/?_encoding=UTF8&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325" target="_blank">RF Microelectronics, Behzad Razavi</a><img src="http://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" alt="" width="1" height="1" border="0" /></strong></p>
<div></div>
<div></div>
<div></div>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2012/04/21/noise-figure-cascaded-stages/' rel='bookmark' title='Noise Figure of cascaded stages'>Noise Figure of cascaded stages</a></li>
<li><a href='http://www.dsplog.com/2012/05/06/thermal-noise-rc-low-pass-filter/' rel='bookmark' title='Thermal noise of RC low pass filter'>Thermal noise of RC low pass filter</a></li>
<li><a href='http://www.dsplog.com/2012/03/25/thermal-noise-awgn/' rel='bookmark' title='Thermal Noise and AWGN'>Thermal Noise and AWGN</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/8Sn3DriUA_QDRhAJtvHXRSba0oo/0/da"><img src="http://feedads.g.doubleclick.net/~a/8Sn3DriUA_QDRhAJtvHXRSba0oo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8Sn3DriUA_QDRhAJtvHXRSba0oo/1/da"><img src="http://feedads.g.doubleclick.net/~a/8Sn3DriUA_QDRhAJtvHXRSba0oo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=_gE8mpdarWw:i2qzX48ux1E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=_gE8mpdarWw:i2qzX48ux1E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=_gE8mpdarWw:i2qzX48ux1E:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=_gE8mpdarWw:i2qzX48ux1E:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=_gE8mpdarWw:i2qzX48ux1E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=_gE8mpdarWw:i2qzX48ux1E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=_gE8mpdarWw:i2qzX48ux1E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=_gE8mpdarWw:i2qzX48ux1E:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dsplogdotcom/~4/_gE8mpdarWw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2012/04/13/noise-figure-resistor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.dsplog.com/2012/04/13/noise-figure-resistor/</feedburner:origLink></item>
		<item>
		<title>Solved!</title>
		<link>http://feedproxy.google.com/~r/dsplogdotcom/~3/3jmpHIvfRVM/</link>
		<comments>http://www.dsplog.com/2012/04/04/solved-rubiks-cube/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 01:39:35 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=1194</guid>
		<description>SOLVED the Rubik&amp;#8217;s cube !!!   After 6 months, 2 cube&amp;#8217;s and countless twists and turns, extremely glad to reach here. Will enjoy the beauty of the solved cube for couple of days before breaking it and going over the whole journey again&amp;#8230;. (Thanks dear Kunju for introducing me to the cube) Disclosure : After solving [...]
Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2007/05/12/polyphase-filters-for-interpolation/' rel='bookmark' title='Polyphase filters for interpolation'&gt;Polyphase filters for interpolation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2008/08/03/feedback-summary-dsplog/' rel='bookmark' title='Summary &amp;#8211; feedback on [dspLog], July 2008'&gt;Summary &amp;#8211; feedback on [dspLog], July 2008&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
			<content:encoded><![CDATA[<p></p><h2 style="text-align: left;"><strong><span style="color: #000000;">SOLVED</span> the Rubik&#8217;s cube !!!  </strong></h2>
<p>After 6 months, 2 cube&#8217;s and countless twists and turns, extremely glad to reach here.</p>

<a href='http://www.dsplog.com/2012/04/04/solved-rubiks-cube/rubiks_pic1/' title='rubiks_pic1'><img width="150" height="150" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/04/rubiks_pic1-150x150.jpg" class="attachment-thumbnail" alt="rubiks_pic1" title="rubiks_pic1" /></a>
<a href='http://www.dsplog.com/2012/04/04/solved-rubiks-cube/rubiks_pic2/' title='rubiks_pic2'><img width="150" height="150" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/04/rubiks_pic2-150x150.jpg" class="attachment-thumbnail" alt="rubiks_pic2" title="rubiks_pic2" /></a>
<a href='http://www.dsplog.com/2012/04/04/solved-rubiks-cube/rubiks_pic3/' title='rubiks_pic3'><img width="150" height="150" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/04/rubiks_pic3-150x150.jpg" class="attachment-thumbnail" alt="rubiks_pic3" title="rubiks_pic3" /></a>
<a href='http://www.dsplog.com/2012/04/04/solved-rubiks-cube/rubiks_pic4/' title='rubiks_pic4'><img width="150" height="150" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/04/rubiks_pic4-150x150.jpg" class="attachment-thumbnail" alt="rubiks_pic4" title="rubiks_pic4" /></a>
<a href='http://www.dsplog.com/2012/04/04/solved-rubiks-cube/rubiks_pic5/' title='rubiks_pic5'><img width="150" height="150" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/04/rubiks_pic5-150x150.jpg" class="attachment-thumbnail" alt="rubiks_pic5" title="rubiks_pic5" /></a>

<p>Will enjoy the beauty of the solved cube for couple of days before breaking it and going over the whole journey again&#8230;.</p>
<p>(Thanks dear Kunju for introducing me to the cube)</p>
<p><strong>Disclosure :</strong></p>
<p>After solving the first two layers, going got really tough. Couple of pointers from <a title="Rubik's cube original website" href="http://www.rubiks.com/" target="_blank">Rubik&#8217;s original website</a> helped me proceed.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2007/05/12/polyphase-filters-for-interpolation/' rel='bookmark' title='Polyphase filters for interpolation'>Polyphase filters for interpolation</a></li>
<li><a href='http://www.dsplog.com/2008/08/03/feedback-summary-dsplog/' rel='bookmark' title='Summary &#8211; feedback on [dspLog], July 2008'>Summary &#8211; feedback on [dspLog], July 2008</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/MLP2-AZCDD1cB5lNlGKk6oGCRLs/0/da"><img src="http://feedads.g.doubleclick.net/~a/MLP2-AZCDD1cB5lNlGKk6oGCRLs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MLP2-AZCDD1cB5lNlGKk6oGCRLs/1/da"><img src="http://feedads.g.doubleclick.net/~a/MLP2-AZCDD1cB5lNlGKk6oGCRLs/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=3jmpHIvfRVM:vbCUUf3xny0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=3jmpHIvfRVM:vbCUUf3xny0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=3jmpHIvfRVM:vbCUUf3xny0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=3jmpHIvfRVM:vbCUUf3xny0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=3jmpHIvfRVM:vbCUUf3xny0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=3jmpHIvfRVM:vbCUUf3xny0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=3jmpHIvfRVM:vbCUUf3xny0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=3jmpHIvfRVM:vbCUUf3xny0:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dsplogdotcom/~4/3jmpHIvfRVM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2012/04/04/solved-rubiks-cube/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.dsplog.com/2012/04/04/solved-rubiks-cube/</feedburner:origLink></item>
		<item>
		<title>Thermal Noise and AWGN</title>
		<link>http://feedproxy.google.com/~r/dsplogdotcom/~3/nl3dV8n70Ng/</link>
		<comments>http://www.dsplog.com/2012/03/25/thermal-noise-awgn/#comments</comments>
		<pubDate>Sun, 25 Mar 2012 02:13:16 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Channel]]></category>
		<category><![CDATA[Receiver]]></category>
		<category><![CDATA[AWGN]]></category>
		<category><![CDATA[noise]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=1154</guid>
		<description>A friend called me up couple of days back with the question &amp;#8211; How white is AWGN? I gave him an answer over phone, which he was not too happy about. That got me thinking bit more on the topic and the result is this post &amp;#8211; brief write up on thermal noise and it&amp;#8217;s [...]
Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2012/05/06/thermal-noise-rc-low-pass-filter/' rel='bookmark' title='Thermal noise of RC low pass filter'&gt;Thermal noise of RC low pass filter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2012/04/13/noise-figure-resistor/' rel='bookmark' title='Noise Figure of resistor network'&gt;Noise Figure of resistor network&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2012/04/21/noise-figure-cascaded-stages/' rel='bookmark' title='Noise Figure of cascaded stages'&gt;Noise Figure of cascaded stages&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
			<content:encoded><![CDATA[<p></p><p>A friend called me up couple of days back with the question &#8211; <em>How white is AWGN?</em> I gave him an answer over phone, which he was not too happy about. That got me thinking bit more on the topic and the result is this post &#8211; brief write up on thermal noise and it&#8217;s modelling as Additive White Gaussian Noise aka AWGN.</p>
<p><span id="more-1154"></span></p>
<h2>Thermal Noise</h2>
<p>Quoting from Chapter 9.3 of <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FCommunication-Systems-Bruce-Carlson%2Fdp%2F0070111278&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Communication Systems – An introduction to Signals and noise in Electrical Communication by A. Bruce Carlson, Paul Crilly, Janet Rutledge</a></p>
<p>&#8220;<em>Thermal Noise is the noise produced by the random motion of charged particles (usually electrons) in conducting media.&#8221;</em></p>
<p>With a resistor <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R" alt="" align="absmiddle" border="0" /> ohms at temperature <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?T" alt="" align="absmiddle" border="0" /> Kelvins, the noise voltage <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?v(t)" alt="" align="absmiddle" border="0" /> due to random electron process is a Gaussian distributed (thanks to <a title="wiki entry on Central Limit Theorem" href="http://en.wikipedia.org/wiki/Central_limit_theorem" target="_blank">Central Limit Theorem</a>) variable with zero mean, and variance of</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\sigma^2_v=\frac{2 \( \pi kT \)^2}{3h}R" alt="" align="absmiddle" border="0" />, where</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?k" alt="" align="absmiddle" border="0" /> is the Boltzmann constant <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?1.38*10^{-23}" alt="" align="absmiddle" border="0" /> Joules/Kelvin,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?h" alt="" align="absmiddle" border="0" /> is the Planck constant <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?6.62*10^{-34}" alt="" align="absmiddle" border="0" /> Joules second.</p>
<p>The spectral density of the thermal noise is shown as,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G_f=\frac{2Rh|f|}{\(e^{\frac{h|f|}{kT}}-1\)}\mbox{      }V^2/Hz" alt="" align="absmiddle" border="0" />.</p>
<p>Assuming  <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{h|f|}{kT}\ll%201" alt="" align="absmiddle" border="0" /> and using the Taylor series approximation, the equation simplifies to :</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}G_f&amp;=&amp;\frac{2Rh|f|}{\(e^{\frac{h|f|}{kT}}-1\)}\\\\\\&amp;=&amp;\frac{2RkT}{1+\frac{h|f|}{2kT}}\\&amp;=&amp;2RkT\(1-\frac{h|f|}{2kT}\),%20\mbox{%20%20%20for%20}\frac{h|f|}{kT}\ll%201\\\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p><strong>Note : </strong></p>
<p><em>a) Mr. Clay S Turner in his write up <a title=" &quot;Johnson-Nyquist Noise&quot;, Turner C. S., Jan 2007" href="http://www.claysturner.com/dsp/Johnson-Nyquist%20Noise.pdf" target="_blank">&#8220;Johnson-Nyquist Noise&#8221;, Turner C. S., Jan 2007</a> has derived the above expression &#8211; I did not understand the derivation &#8211; one of my many TO-DO&#8217;s. <img src='http://images.dsplog.com/db-install/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </em></p>
<p><em>b) The fundamental paper&#8217;s discussing this topic is (thanks to <a title="wiki entry on Johnson-Nyquist noise" href="http://en.wikipedia.org/wiki/Johnson%E2%80%93Nyquist_noise" target="_blank">wiki entry on Johnson-Nyquist noise</a>)</em></p>
<p><em> <a href="http://link.aps.org/abstract/PR/v32/p110" rel="nofollow">&#8220;Thermal Agitation of Electric Charge in Conductors&#8221;</a>, (1928) H. Nyquist,</em></p>
<p><em> <a href="http://link.aps.org/abstract/PR/v32/p97" rel="nofollow">&#8220;Thermal Agitation of Electricity in Conductors&#8221;</a>, (1928) J. Johnson,</em></p>
<p><em>Have not gone through both. </em></p>
<p><em>c) The <a title="wiki entry on Taylor series" href="http://en.wikipedia.org/wiki/Taylor_series" target="_blank">Taylor Series</a> results used for the approximation</em></p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?e^x%20=\sum_{n=0}^\infty%20\frac{x^n}{n!}=1+x+\frac{x^2}{2}+\frac{x^3}{3!}+...\mbox{    for all } x" alt="" align="absmiddle" border="0" /></p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{1}{1-x}=\sum_{n=0}^\infty%20x^n\mbox{%20%20%20%20for %20}%20|x|%20\le%201" alt="" align="absmiddle" border="0" /></p>
<p>&nbsp;</p>
<p>From the plot of the spectral density of thermal noise over frequency, can see that the noise is flat frequency spectrum till around 100GHz or so and starts to fall off at around 1TeraHz.</p>
<p><img class="alignnone  wp-image-1162" title="spectral_density_thermal_noise" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/03/spectral_density_thermal_noise.png" alt="" width="512" height="384" /></p>
<p style="text-align: center;"><strong> Figure : Spectral density of thermal noise</strong></p>
<p>Given the above plot, for most of the practical systems which we are dealing with today (i.e. with carrier frequency less than 10GHz or so), can assume that the noise spectral density is flat, i.e.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{G_f=2RkT,\mbox{       }V^2/Hz}" alt="" align="absmiddle" border="0" />.</p>
<p>Thus for a bandwidth <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?B" alt="" align="absmiddle" border="0" />, the root mean square noise voltage is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?v_{rms}=\sqrt{2RkT2B} = \sqrt{4RkTB}" alt="" align="absmiddle" border="0" /></p>
<p>&nbsp;</p>
<p>The mean square voltage is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{v^2_{rms}=4RkTB}" alt="" align="absmiddle" border="0" /></p>
<p><strong>Note :</strong></p>
<p>The factor <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?2B" alt="" align="absmiddle" border="0" /> is because the noise is real with a symmetric frequency spectrum. Multiplication by 2 suffice to consider both the positive and negative frequencies.</p>
<p><strong>Matlab/Octave script to get the above plot</strong></p>
<pre>clear all; close all;
k = 1.38e-23; % Boltzmann constant
h = 6.62e-34; % Planck's constant
T_kelvin = 300; % temperature in Kelvin
f_hz 	 = logspace(0,14,10000);
R_ohm    = 50;
Gf 	   = 2*R_ohm*h*f_hz./(exp((h*f_hz)/(k*T_kelvin)) - 1);
Gf_approx1 = 2*R_ohm*k*T_kelvin*(1-h*f_hz/(2*k*T_kelvin));

semilogx(f_hz,Gf,'bs-');
hold on; grid on;
semilogx(f_hz,Gf_approx1,'r-');
axis([1 10^14 10^-21 0.5*10^-18]);
legend('exact', 'approx');
xlabel('frequency, Hz');
ylabel('voltage spectral density, V^2/Hz');
title('Spectral density of thermal noise');</pre>
<p><strong>Plugging in some numbers :</strong></p>
<p>For <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R=50" alt="" align="absmiddle" border="0" /> ohms,</p>
<p>Temperature <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?T=300K" alt="" align="absmiddle" border="0" /> (26.85 deg Celsius),</p>
<p>Bandwidth <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?B=1Hz" alt="" align="absmiddle" border="0" />,</p>
<p>will result in rms noise voltage of</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?v_{rms}=\sqrt{4*50*1.38*10^{-23}*300*1}\ \approx" alt="" align="absmiddle" border="0" />1 nano Volts</p>
<p>(Thanks to <a title="wiki entry on Johnson Noise" href="http://en.wikipedia.org/wiki/Johnson%E2%80%93Nyquist_noise" target="_blank">wiki entry on Johnson Nyquist Noise for this</a>)</p>
<h2>Thevenin Equivalent Model</h2>
<p>Thevenin equivalent model of the thermal resistance noise is shown below, where the it is modeled as a voltage source in series with a noiseless resistor.</p>
<p><img class="alignnone size-full wp-image-1168" title="thermal_noise_thevenin_equivalent_model_with_matched_load" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/03/thermal_noise_thevenin_equivalent_model_with_matched_load.png" alt="" width="342" height="197" /></p>
<p style="text-align: center;"><strong>Figure : Thevenin equivalent model with matched load</strong> (Figure 9.3-3 in <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FCommunication-Systems-Bruce-Carlson%2Fdp%2F0070111278&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Communication Systems – An introduction to Signals and noise in Electrical Communication by A. Bruce Carlson, Paul Crilly, Janet Rutledge</a>)</p>
<p>Assuming that the load resistance is <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R" alt="" align="absmiddle" border="0" /> (per maximum power transfer theorem), the rms voltage seen across the load resistance is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?v_{rms}=\frac{\sqrt{2RkT}}{2} " alt="" align="absmiddle" border="0" /></p>
<p>The power is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}P_n&amp;=&amp;\frac{2RkT}{4R}\\&amp;=&amp;\frac{KT}{2}\mbox{,%20}%20watts/Hz\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p><strong>Note :</strong></p>
<p>a) The noise power is independent of the resistance <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R" alt="" align="absmiddle" border="0" />.</p>
<p>b) Above is the single sided noise power</p>
<p>&nbsp;</p>
<h2>Noise Power in dBm</h2>
<p>Typically the noise power is expressed in dBm (0dBm = 1 milli Watts). The noise power in dBm for 1Hz at room temperature</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?P_{dBm}=10\log_{10}\(\frac{kT}{2}\frac{2}{1e-3}\)=-173.83\ dBm/Hz" alt="" align="absmiddle" border="0" /></p>
<p>In general, for a bandwidth <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?B" alt="" align="absmiddle" border="0" />, the noise power is</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{P_{dBm}=-173.83+10\log_{10}\(B\)\ dBm}" alt="" align="absmiddle" border="0" />.</p>
<table border="1" frame="box" rules="NONE" cellspacing="1">
<colgroup>
<col width="114" />
<col width="125" />
<col width="173" /></colgroup>
<tbody>
<tr>
<td style="border: 1px solid #000000;" align="CENTER" width="114" height="32"><strong>Bandwidth, B Hz</strong></td>
<td style="border: 1px solid #000000;" align="CENTER" width="125"><strong>Thermal noise power, dBm</strong></td>
<td style="border: 1px solid #000000;" align="CENTER" width="250"><strong>Remark</strong></td>
</tr>
<tr>
<td style="border: 1px solid #000000;" align="RIGHT" height="17">1</td>
<td style="border: 1px solid #000000;" align="CENTER">-173.83</td>
<td style="border: 1px solid #000000;" align="LEFT">for 1Hz bandwidth</td>
</tr>
<tr>
<td style="border: 1px solid #000000;" align="RIGHT" height="17">1,000,000</td>
<td style="border: 1px solid #000000;" align="CENTER">-113.83</td>
<td style="border: 1px solid #000000;" align="LEFT">For Bluetooth channel</td>
</tr>
<tr>
<td style="border: 1px solid #000000;" align="RIGHT" height="17">20,000,000</td>
<td style="border: 1px solid #000000;" align="CENTER">-100.82</td>
<td style="border: 1px solid #000000;" align="LEFT">for WLAN 20MHz channel</td>
</tr>
<tr>
<td style="border: 1px solid #000000;" align="RIGHT" height="17">40,000,000</td>
<td style="border: 1px solid #000000;" align="CENTER">-97.81</td>
<td style="border: 1px solid #000000;" align="LEFT">for WLAN 40MHz channel</td>
</tr>
<tr>
<td style="border: 1px solid #000000;" align="RIGHT" height="17">80,000,000</td>
<td style="border: 1px solid #000000;" align="CENTER">-94.80</td>
<td style="border: 1px solid #000000;" align="LEFT">for WLAN 80MHz channel</td>
</tr>
</tbody>
</table>
<h2>Modeling white noise</h2>
<p>Typically, we can write spectral density of white noise as</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G_f = \frac{N_0}{2}" alt="" align="absmiddle" border="0" />.</p>
<p>Further, <a title="wiki entry on Weiner-Khinchin theorem" href="http://en.wikipedia.org/wiki/Wiener%E2%80%93Khinchin_theorem" target="_blank">from Weiner &#8211; Khinchin theorem</a>, it is known that power spectral density and autocorrelation are Fourier transform pairs, i.e. the autocorrelation is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R\(\tau\) = \frac{N_0}{2}\delta(\tau)" alt="" align="absmiddle" border="0" />.</p>
<p>&nbsp;</p>
<p><img class="size-full wp-image-1181 aligncenter" title="white_noise_psd_autocorrelation" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/03/white_noise_psd_autocorrelation.png" alt="" width="422" height="160" /></p>
<p><strong>Figure : Power spectral density and autocorrelation of white noise</strong></p>
<p>Note: The term 1/2 is to indicate that power is symmetric across both positive and negative frequencies.</p>
<p>In the simulation models used in the blog, the <a title="randn() in Mathworks" href="http://www.mathworks.in/help/techdoc/ref/randn.html" target="_blank">randn() function provided by Mathworks</a> is used to generate White Gaussian Noise. Using a small Matlab code snippet, can see that over many realizations the simulated power spectral density tends to be white (i.e. constant across frequency).</p>
<pre>clear all;
n_fft = 2048; n_vec = 1000;
nt  = randn(n_vec,n_fft);
ntf = 1/sqrt(n_fft)*fft(nt,[],2);
ntf_pwr     = ntf.*conj(ntf);
ntf_pwr_avg = mean(ntf_pwr);
plot([-n_fft/2:n_fft/2-1]/n_fft,10*log10(fftshift(ntf_pwr_avg)));
axis([-0.5 0.5 -5 5]); grid on;
ylabel('power spectral density, dB/Hz');
xlabel('normalized frequency');
title('power spectral density of white noise');</pre>
<p><img class="alignnone  wp-image-1171" title="simulated_psd_white_noise" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/03/simulated_psd_white_noise.png" alt="" width="512" height="384" /><br />
<strong>Figure : Simulated spectrum of white noise</strong></p>
<p>Further, can see an impulse for the simulated auto-correlation of the noise vector generated from randn().</p>
<pre>clear all;
n_len = 10^4;
nt = randn(1,n_len);
n_ac = 1/n_len*conv(fliplr(nt),nt);
plot([-n_len+1:n_len-1],n_ac);
xlabel('delay, tau');
ylabel('autocorrelation');
title('autocorrelation of white noise');</pre>
<p><img class="alignnone  wp-image-1172" title="simulated_autocorrelation_white_noise" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/03/simulated_autocorrelation_white_noise.png" alt="" width="512" height="384" /></p>
<p><strong>Figure : Simulated autocorrelation of white noise</strong></p>
<p>&nbsp;</p>
<h2>References</h2>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FCommunication-Systems-Bruce-Carlson%2Fdp%2F0070111278&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Communication Systems – An introduction to Signals and noise in Electrical Communication by A. Bruce Carlson, Paul Crilly, Janet Rutledge</a></p>
<p><em><a title=" &quot;Johnson-Nyquist Noise&quot;, Turner C. S., Jan 2007" href="http://www.claysturner.com/dsp/Johnson-Nyquist%20Noise.pdf" target="_blank">Johnson-Nyquist Noise&#8221;, Turner C. S., Jan 2007</a></em></p>
<p><a title="wiki entry on Weiner-Khinchin theorem" href="http://en.wikipedia.org/wiki/Wiener%E2%80%93Khinchin_theorem" target="_blank">Wiki entry on Weiner &#8211; Khinchin theorem</a></p>
<p><a title="wiki entry on Johnson Noise" href="http://en.wikipedia.org/wiki/Johnson%E2%80%93Nyquist_noise" target="_blank">Wiki entry on Johnson Noise </a></p>
<p><a title="randn() in Mathworks" href="http://www.mathworks.in/help/techdoc/ref/randn.html" target="_blank">randn() function by Mathworks</a></p>
<p>&nbsp;</p>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2012/05/06/thermal-noise-rc-low-pass-filter/' rel='bookmark' title='Thermal noise of RC low pass filter'>Thermal noise of RC low pass filter</a></li>
<li><a href='http://www.dsplog.com/2012/04/13/noise-figure-resistor/' rel='bookmark' title='Noise Figure of resistor network'>Noise Figure of resistor network</a></li>
<li><a href='http://www.dsplog.com/2012/04/21/noise-figure-cascaded-stages/' rel='bookmark' title='Noise Figure of cascaded stages'>Noise Figure of cascaded stages</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/mj1azRDZEg9f9jvnbzKPcPWXL8M/0/da"><img src="http://feedads.g.doubleclick.net/~a/mj1azRDZEg9f9jvnbzKPcPWXL8M/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mj1azRDZEg9f9jvnbzKPcPWXL8M/1/da"><img src="http://feedads.g.doubleclick.net/~a/mj1azRDZEg9f9jvnbzKPcPWXL8M/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=nl3dV8n70Ng:mEr1aRViiVs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=nl3dV8n70Ng:mEr1aRViiVs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=nl3dV8n70Ng:mEr1aRViiVs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=nl3dV8n70Ng:mEr1aRViiVs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=nl3dV8n70Ng:mEr1aRViiVs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=nl3dV8n70Ng:mEr1aRViiVs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=nl3dV8n70Ng:mEr1aRViiVs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=nl3dV8n70Ng:mEr1aRViiVs:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dsplogdotcom/~4/nl3dV8n70Ng" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2012/03/25/thermal-noise-awgn/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.dsplog.com/2012/03/25/thermal-noise-awgn/</feedburner:origLink></item>
		<item>
		<title>Hamming (7,4) code with soft and hard decoding</title>
		<link>http://feedproxy.google.com/~r/dsplogdotcom/~3/f9MiqqMHBNQ/</link>
		<comments>http://www.dsplog.com/2012/03/15/hamming-code-soft-hard-decode/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 01:37:12 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Error Rate]]></category>
		<category><![CDATA[AWGN]]></category>
		<category><![CDATA[BPSK]]></category>
		<category><![CDATA[Hamming]]></category>
		<category><![CDATA[soft]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=1140</guid>
		<description>An earlier post we discussed hard decision decoding for a Hamming (7,4) code and simulated the the bit error rate. In this post, let us focus on the soft decision decoding for the Hamming (7,4) code, and quantify the bounds in the performance gain. Hamming (7,4) codes With a  Hamming code, we have 4 information bits [...]
Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2009/09/29/hamming-74-code-with-hard-decision-decoding/' rel='bookmark' title='Hamming (7,4) code with hard decision decoding'&gt;Hamming (7,4) code with hard decision decoding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2009/01/14/soft-viterbi/' rel='bookmark' title='Soft Input Viterbi decoder'&gt;Soft Input Viterbi decoder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2009/07/27/viterbi-with-finite-survivor-state-memory/' rel='bookmark' title='Viterbi with finite survivor state memory'&gt;Viterbi with finite survivor state memory&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
			<content:encoded><![CDATA[<p></p><p>An earlier post we discussed <a title="Hamming (7,4) code with hard decision decoding" href="http://www.dsplog.com/2009/09/29/hamming-74-code-with-hard-decision-decoding/" target="_blank">hard decision decoding for a Hamming (7,4) code</a> and simulated the the bit error rate. In this post, let us focus on the soft decision decoding for the Hamming (7,4) code, and quantify the bounds in the performance gain.</p>
<p><span id="more-1140"></span></p>
<h2>Hamming (7,4) codes</h2>
<p>With a <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?(7,4)" alt="" align="absmiddle" border="0" /> Hamming code, we have 4 information bits and we need to add 3 parity bits to form the 7 coded bits.</p>
<p>The coding operation can be denoted in matrix algebra as follows:</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?c = mG" alt="" align="absmiddle" border="0" /></p>
<p>where,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?m" alt="" align="absmiddle" border="0" /> is the message sequence of dimension <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[1\mbox{ x }k]" alt="" align="absmiddle" border="0" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G" alt="" align="absmiddle" border="0" /> is the coding matrix of dimension <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[k\mbox{ x }n]" alt="" align="absmiddle" border="0" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?c" alt="" align="absmiddle" border="0" /> is the coded sequence of dimension <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[1\mbox{ x }n]" alt="" align="absmiddle" border="0" />.</p>
<p>Using the example provided in chapter eight (example 8.1-1) of <a href="http://www.amazon.chttp://www.dsplog.com/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communications-John-Proakis%2Fdp%2F0072321113&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Digital Communications by John Proakis</a> , let the coding matrix <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G" alt="" align="absmiddle" border="0" /> be,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G = \left[\begin{array}{cccc}1 &amp; 0 &amp; 0 &amp; 0 &amp; 1 &amp; 0 &amp; 1\\ \\                                    0 &amp; 1 &amp; 0 &amp; 0 &amp; 1 &amp; 1 &amp; 1 \\  \\                                 0 &amp; 0 &amp; 1 &amp; 0 &amp; 1 &amp; 1 &amp; 0 \\ \\                                  0 &amp; 0 &amp; 0 &amp; 1 &amp; 0 &amp; 1 &amp; 1 \end{array}\right]" alt="" align="absmiddle" border="0" />.</p>
<p>This matrix can be thought of as,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G=\left[ I_k|P\right]" alt="" align="absmiddle" border="0" /> ,</p>
<p>where,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?I_k" alt="" align="absmiddle" border="0" /> is a <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[k\mbox{ x }k]" alt="" align="absmiddle" border="0" /> identity matrix and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?P" alt="" align="absmiddle" border="0" /> is a <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[k\mbox{ x }(n-k)]" alt="" align="absmiddle" border="0" /> the parity check matrix.</p>
<p>Since <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?I_k" alt="" align="absmiddle" border="0" /> an identity matrix, the first <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?k" alt="" width="16" height="13" align="absmiddle" border="0" /> coded bits are identical to source message bits and the remaining <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?(n-k)" alt="" align="absmiddle" border="0" /> bits form the parity check matrix.</p>
<p>This type of code matrix <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G" alt="" align="absmiddle" border="0" /> where the raw message bits are send as is is called <strong>systematic code</strong>.</p>
<p>Assuming that the message sequence is <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?m%20=%20\left[\begin{array}m_0%20&amp;%20m_1%20&amp;%20m_2%20&amp;%20m_3%20&amp;\end{array}\right]" alt="" align="absmiddle" border="0" />, then the coded output sequence is :</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?c = \left[\begin{array}m_0 &amp; m_1 &amp; m_2 &amp; m_3 &amp; p_0 &amp; p_1 &amp; p_2\end{array}\right]" alt="" align="absmiddle" border="0" />, where</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?p_0 = m_0 \oplus m_1 \oplus m_2 " alt="" align="absmiddle" border="0" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?p_1 = m_1 \oplus m_2 \oplus m_3 " alt="" align="absmiddle" border="0" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?p_2 = m_0 \oplus m_1 \oplus m_3 " alt="" align="absmiddle" border="0" />.</p>
<p>The operator <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\oplus" alt="" align="absmiddle" border="0" /> denotes exclusive-OR (XOR) operator.</p>
<p><strong> The matrix of valid coded sequence <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?C" alt="" align="absmiddle" border="0" /> of dimension <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[2^k\mbox{ x }n]" alt="" align="absmiddle" border="0" /></strong></p>
<table border="0" frame="void" rules="none" cellspacing="0">
<colgroup>
<col width="49" />
<col width="40" />
<col width="43" />
<col width="40" />
<col width="38" />
<col width="28" />
<col width="33" />
<col width="35" /></colgroup>
<tbody>
<tr>
<td align="center" width="49" height="17"><strong>Sl No</strong></td>
<td align="center" width="40"><strong>m0</strong></td>
<td align="center" width="43"><strong>m1</strong></td>
<td align="center" width="40"><strong>m2</strong></td>
<td align="center" width="38"><strong>m3</strong></td>
<td align="center" width="28"><strong>p0</strong></td>
<td align="center" width="33"><strong>p1</strong></td>
<td align="center" width="35"><strong>p2</strong></td>
</tr>
<tr>
<td align="center" height="17"><strong>0</strong></td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center" height="17"><strong>1</strong></td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center" height="17"><strong>2</strong></td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center" height="17"><strong>3</strong></td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center" height="17"><strong>4</strong></td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center" height="17"><strong>5</strong></td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center" height="17"><strong>6</strong></td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center" height="17"><strong>7</strong></td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center" height="17"><strong>8</strong></td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center" height="17"><strong>9</strong></td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center" height="17"><strong>10</strong></td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center" height="17"><strong>11</strong></td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center" height="17"><strong>12</strong></td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center" height="17"><strong>13</strong></td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1</td>
</tr>
<tr>
<td align="center" height="17"><strong>14</strong></td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center" height="17"><strong>15</strong></td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
</tr>
</tbody>
</table>
<p><strong>Table: Coded output sequence for all possible input sequence</strong></p>
<h3>Minimum distance</h3>
<p><a title="wiki entry on Hamming distance" href="http://en.wikipedia.org/wiki/Hamming_distance">Hamming distance</a> computes the number of differing positions when comparing two code words. For the coded output sequence listed in the table above, we can see that the minimum separation between a pair of code words <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?d_{min}" alt="" align="absmiddle" border="0" /> is 3.</p>
<p>If an error of weight <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?d_{min}" alt="" align="absmiddle" border="0" /> occurs, it is possible to transform one code word to another valid code word and the error cannot be detected. So, the number of errors which can be detected is <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?d_{min}-1" alt="" align="absmiddle" border="0" />.</p>
<p>To determine the error correction capability, let us visualize that we can have <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?2^k" alt="" align="absmiddle" border="0" /> valid code words from possible <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?2^n" alt="" align="absmiddle" border="0" /> values. If each code word is visualized as a sphere of radius <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?t" alt="" align="absmiddle" border="0" />, then the largest value of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?t" alt="" align="absmiddle" border="0" /> which does not result in overlap between the sphere is,<br />
<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?t = \lfloor \frac{1}{2}(d_{min}-1) \rfloor" alt="" align="absmiddle" border="0" /></p>
<p>where,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\lfloor x \rfloor" alt="" align="absmiddle" border="0" /> is the the largest integer in <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x" alt="" align="absmiddle" border="0" />.</p>
<p>Any code word that lies with in the sphere is decoded into the valid code word at the center of the sphere.</p>
<p><strong>So the error correction capability of code with <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?d_{min}" alt="" align="absmiddle" border="0" /> distance is <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?t = \lfloor \frac{1}{2}(d_{min}-1) \rfloor" alt="" align="absmiddle" border="0" />.</strong></p>
<p>In our example, as <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?d_{min}=3" alt="" align="absmiddle" border="0" />, we can correct up-to <strong>1 error</strong>.</p>
<h2>Soft decision decoding</h2>
<p>Let the received code word be,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?r_j=c_j + w_j" alt="" align="absmiddle" border="0" />, where</p>
<p>and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?c_j" alt="" align="absmiddle" border="0" /> is the transmit code word,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?w_j" alt="" align="absmiddle" border="0" /> is the additive white Gaussian noise with mean <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\mu=0" alt="" align="absmiddle" border="0" /> and variance <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\sigma^2" alt="" align="absmiddle" border="0" /> and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?j\ =\ \{1,\ 2, \dots, n\}" alt="" align="absmiddle" border="0" /> form the elements of the code word.</p>
<p>Given that there are <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?M=2^k" alt="" align="absmiddle" border="0" /> known code words, the goal is to find correlation of received vector <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\{r_j\}" alt="" align="absmiddle" border="0" /> with each of the valid code words.</p>
<p>The correlation vector is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?corr_{val} = r(2C^T-1)" alt="" align="absmiddle" border="0" /></p>
<p>where,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?r" alt="" align="absmiddle" border="0" /> is the received coded sequence of dimension <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[1\mbox{ x }n]" alt="" align="absmiddle" border="0" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?C" alt="" align="absmiddle" border="0" /> is the matrix of valid code words sequence of dimension <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[2^k\mbox{ x }n]" alt="" align="absmiddle" border="0" /> and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?corr_{val}" alt="" align="absmiddle" border="0" /> is the vector of correlation value for each valid code word and is of dimension</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[1\mbox{ x }2^k]" alt="" align="absmiddle" border="0" />.</p>
<p>From the <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?M=2^k" alt="" align="absmiddle" border="0" /> correlation values, <strong>the index of the location where <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?corr_{val}" alt="" align="absmiddle" border="0" /> is maximized corresponds to the maximum likelihood transmit code word.</strong></p>
<p>Note:</p>
<p>The term <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?2C^T-1" alt="" align="absmiddle" border="0" /> is to given weights for the code words i.e.0 is given a weight -1, 1 is given a weight 1.</p>
<h2>Hard decision decoding</h2>
<p>To <a title="Hamming (7,4) code with hard decision decoding" href="http://www.dsplog.com/2009/09/29/hamming-74-code-with-hard-decision-decoding/" target="_blank">recap the discussion from the previous post</a>, the hard decision decoding is done using parity check matrix <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?H" alt="" align="absmiddle" border="0" />.</p>
<p>Let the system model be,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y=mG + e" alt="" align="absmiddle" border="0" />, where</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y" alt="" align="absmiddle" border="0" /> is the received code word of dimension <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[1\mbox{ x } n]" alt="" align="absmiddle" border="0" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?m" alt="" align="absmiddle" border="0" /> is the raw message bits of dimension <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[1\mbox{ x } k]" alt="" align="absmiddle" border="0" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G" alt="" align="absmiddle" border="0" /> is the raw message bits <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[k\mbox{ x } n]" alt="" align="absmiddle" border="0" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?e" alt="" align="absmiddle" border="0" /> is the error locations of dimension <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[1\mbox{ x } n]" alt="" align="absmiddle" border="0" />.</p>
<p>Multiplying the received code word with the parity check matrix,<br />
<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}yH^T &amp; = &amp; (mG+e)H^T\\ &amp; = &amp; mGH^T + eH^T \\ &amp; = &amp; eH^T \end{array}" alt="" align="absmiddle" border="0" />.</p>
<p>The term <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?eH^T" alt="" align="absmiddle" border="0" /> is called the syndrome of the error pattern and is of dimension <strong><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[1\mbox{ x } (n-k)]" alt="" align="absmiddle" border="0" />.  </strong>As the term <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?mGH^T= \left[\begin{array}0 &amp; 0 &amp; 0 \end{array}\right]" alt="" align="absmiddle" border="0" />, the syndrome is affected only by the error sequence.</p>
<p>Assuming that the error hits only one bit,</p>
<p>a) There are can be <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?n" alt="" align="absmiddle" border="0" /> possible error locations.</p>
<p>b) If the syndrome is 0, then it means that there is no errors.</p>
<p>c) The value of syndrome takes one among the valid 7 non-zero values. <strong>From the value of syndrome we can figure out which bit in the coded sequence is in error and correct it</strong>.</p>
<p><strong>Note :</strong></p>
<p>a) If we have more than one error location, then also the syndrome will fall into one of the 8 valid syndrome sequence and hence cannot be corrected.</p>
<p>b) The chosen Hamming (7,4) coding matrix <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G" alt="" align="absmiddle" border="0" />, the dual code <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?H" alt="" align="absmiddle" border="0" />is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?H=\left[\begin{array}1&amp; 1 &amp;1 &amp;0 &amp;1 &amp;0 &amp;0 \\ 0&amp; 1&amp; 1&amp; 1&amp; 0 &amp;1 &amp;0 \\ 1&amp; 1&amp; 0&amp; 1&amp; 0&amp; 0&amp; 1 \end{array}\right]" alt="" align="absmiddle" border="0" />.</p>
<p>It can be seen that modulo-2 multiplication of the coding matrix <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?G" alt="" align="absmiddle" border="0" /> with the transpose of the dual code matrix <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?H" alt="" align="absmiddle" border="0" /> is all zeros i.e</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?GH^T = \left[\begin{array} 0 &amp; 0 &amp; 0 \\ 0 &amp; 0 &amp; 0  \\ 0 &amp; 0 &amp; 0 \\ 0 &amp; 0 &amp; 0\end{array}\right]" alt="" align="absmiddle" border="0" />.</p>
<h2>Asymptotic Coding gains</h2>
<p>From Chapter 12.2.1 and Chapter 12.2.1 of <a title="Digital Communication: Third Edition, by John R. Barry, Edward A. Lee, David G. Messerschmitt" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communication-John-R-Barry%2Fdp%2F0792375483&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325" target="_blank">Digital Communication: Third Edition, by John R. Barry, Edward A. Lee, David G. Messerschmitt</a>, the asymptotic coding gain with soft decision decoding and hard decision decoding is given as,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?coding\ gain, _{soft}  = Rd_{min}= \frac{4}{7}3= 2.34dB" alt="" align="absmiddle" border="0" /></p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?coding\ gain, _{hard}  = R(t+1)= \frac{4}{7}2= 0.58dB" alt="" align="absmiddle" border="0" />.</p>
<p>where,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R" alt="" align="absmiddle" border="0" /> is the coding rate,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?d_{min}" alt="" align="absmiddle" border="0" /> is the minimum distance between the code words and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?t" alt="" align="absmiddle" border="0" /> is the maximum number of errors which can be corrected.</p>
<h2>Simulation Model</h2>
<p>The Matlab/Octave script performs the following</p>
<p>(a) Generate random binary sequence of 0&#8242;s and 1&#8242;s.</p>
<p>(b) Group them into four bits, add three parity bits and convert them to 7 coded bits using Hamming (7,4) systematic code</p>
<p>(c) Add White Gaussian Noise</p>
<p>(d) Perform hard decision decoding &#8211; compute the error syndrome for groups of 7 bits, correct the single bit errors</p>
<p>(e) Perform soft decision decoding</p>
<p>(f) Count the number of errors for both hard decision and soft decision decoding</p>
<p>(g) Repeat for multiple values of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{E_b}{N_0}" alt="" align="absmiddle" border="0" /> and plot the simulation results.</p>
<p>Click here to <a title="Matlab/Octave script for BER with hard/soft Hamming (7,4) code" href="http://images.dsplog.com/db-install/wp-content/uploads/2012/03/script_bpsk_ber_awgn_hamming_7_4_code_soft_hard_decoding.m" target="_blank">download Matlab/Octave script for computing BER for BPSK in Hamming (7,4) code with soft and hard decision decoding</a>.</p>
<p><img class="alignnone size-full wp-image-1142" title="ber_plot_hamming_7_4_code_soft_and_hard_decode_in_awgn" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/03/ber_plot_hamming_7_4_code_soft_and_hard_decode_in_awgn.png" alt="" width="448" height="336" /></p>
<p><strong>Figure : BER plot for Hamming (7,4) code with soft and hard decision decoding</strong></p>
<p>&nbsp;</p>
<h2>Observations</h2>
<p>a) At bit error rate close to <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?10^{-5}" alt="" align="absmiddle" border="0" />, can see that the coding gains corresponding to hard and soft decision decoding is tending towards the asymptotic coding gain numbers.</p>
<h2>References</h2>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communications-John-Proakis%2Fdp%2F0072321113&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Digital Communications by John Proakis</a><img src="https://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" alt="" width="1" height="1" border="0" /></p>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communication-John-R-Barry%2Fdp%2F0792375483&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Digital Communication: Third Edition, by John R. Barry, Edward A. Lee, David G. Messerschmitt</a></p>
<div></div>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2009/09/29/hamming-74-code-with-hard-decision-decoding/' rel='bookmark' title='Hamming (7,4) code with hard decision decoding'>Hamming (7,4) code with hard decision decoding</a></li>
<li><a href='http://www.dsplog.com/2009/01/14/soft-viterbi/' rel='bookmark' title='Soft Input Viterbi decoder'>Soft Input Viterbi decoder</a></li>
<li><a href='http://www.dsplog.com/2009/07/27/viterbi-with-finite-survivor-state-memory/' rel='bookmark' title='Viterbi with finite survivor state memory'>Viterbi with finite survivor state memory</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/g0JZtQ0f7vzzvuCxlXzq0gH07jk/0/da"><img src="http://feedads.g.doubleclick.net/~a/g0JZtQ0f7vzzvuCxlXzq0gH07jk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/g0JZtQ0f7vzzvuCxlXzq0gH07jk/1/da"><img src="http://feedads.g.doubleclick.net/~a/g0JZtQ0f7vzzvuCxlXzq0gH07jk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=f9MiqqMHBNQ:V8OvlSoc-ao:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=f9MiqqMHBNQ:V8OvlSoc-ao:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=f9MiqqMHBNQ:V8OvlSoc-ao:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=f9MiqqMHBNQ:V8OvlSoc-ao:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=f9MiqqMHBNQ:V8OvlSoc-ao:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=f9MiqqMHBNQ:V8OvlSoc-ao:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=f9MiqqMHBNQ:V8OvlSoc-ao:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=f9MiqqMHBNQ:V8OvlSoc-ao:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dsplogdotcom/~4/f9MiqqMHBNQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2012/03/15/hamming-code-soft-hard-decode/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.dsplog.com/2012/03/15/hamming-code-soft-hard-decode/</feedburner:origLink></item>
		<item>
		<title>ADC SNR with clock jitter and quantization noise</title>
		<link>http://feedproxy.google.com/~r/dsplogdotcom/~3/OHJhUnc4I8g/</link>
		<comments>http://www.dsplog.com/2012/02/22/adc-snr-clock-jitter-quantization-noise/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 01:14:07 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[DSP]]></category>
		<category><![CDATA[ADC]]></category>
		<category><![CDATA[jitter]]></category>
		<category><![CDATA[noise]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=1111</guid>
		<description>My friend and colleague Mr. Vineet Srivastava pointed me to a nice article on  clock jitter - Clock Jitter Effects on Sampling : A tutorial &amp;#8211; by Carlos Azeredo-Leme, IEEE Circuits and Systems Magazine, Third Quarter 2011. In this post, let us discuss the total Signal to Noise Ratio at the output of an analog to [...]
Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2007/03/19/signal-to-quantization-noise-in-quantized-sinusoidal/' rel='bookmark' title='Signal to quantization noise in quantized sinusoidal'&gt;Signal to quantization noise in quantized sinusoidal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2012/04/13/noise-figure-resistor/' rel='bookmark' title='Noise Figure of resistor network'&gt;Noise Figure of resistor network&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.dsplog.com/2009/05/17/gate-objective-questions-solved/' rel='bookmark' title='Solved objective questions (GATE)'&gt;Solved objective questions (GATE)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
			<content:encoded><![CDATA[<p></p><p>My friend and colleague <a title="LinkedIn profile of Mr. Vineet Srivastava" href="http://in.linkedin.com/pub/vineet-srivastava/9/407/74b" target="_blank">Mr. Vineet Srivastava</a> pointed me to a nice article on  clock jitter - <a title="Clock Jitter Effects on Sampling : A tutorial" href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5995856" target="_blank">Clock Jitter Effects on Sampling : A tutorial &#8211; by Carlos Azeredo-Leme, IEEE Circuits and Systems Magazine, Third Quarter 2011</a>. In this post, let us discuss the total Signal to Noise Ratio at the output of an analog to digital converter (ADC) accounting for errors due to sampling clock jitter and quantization noise.</p>
<p><span id="more-1111"></span></p>
<h2>Clock jitter</h2>
<p>The error in the sampling clock results in an error in the sampled voltage as show in the figure below. Can see that the jitter in the clock <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?dt" alt="" align="absmiddle" border="0" /> results in an error voltage <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?dv" alt="" align="absmiddle" border="0" />.</p>
<p><img title="sampling_clock_error" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/02/sampling_clock_error.png" alt="" width="382" height="242" /></p>
<p><strong>Figure : Voltage error caused by jitter</strong></p>
<p>For a  signal <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x(t)" alt="" align="absmiddle" border="0" />,</p>
<p>the ratio of  the voltage error <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?dv" alt="" align="absmiddle" border="0" /> and the time delta <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?dt" alt="" align="absmiddle" border="0" /> is the slope i.e.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{dv}{dt} = x^'(t)" alt="" align="absmiddle" border="0" />.</p>
<p>Re-ordering, and replacing <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?dv" alt="" align="absmiddle" border="0" /> with the error voltage <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?e_{jitter}(t)" alt="" align="absmiddle" border="0" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?e_{jitter}(t) = x^'(t)dt " alt="" align="absmiddle" border="0" /></p>
<p>Taking the mean square error,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}E\[e_{jitter}(t)^2\] &amp; = &amp; E\[x^'(t)^2dt^2\] \\ &amp; = &amp; E\[x^'(t)^2\]E\[dt^2\]\\ &amp; = &amp; E\[x^'(t)^2\]\Delta t^2_{rms}\\\end{array}" alt="" align="absmiddle" border="0" /></p>
<p>where</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Delta t^2_{rms} " alt="" align="absmiddle" border="0" /> is the variance of the clock jitter.</p>
<p>The signal to noise ratio at the output of ADC due to jitter alone is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}SNR_{jitter}%20&amp;%20=%20&amp;%20\frac{E\[x(t)^2\]}{E\[e_{jitter}(t)^2\]}\\%20&amp;%20=%20&amp;%20\frac{E\[x^2(t)\]}{\Delta t^2_{rms}E\[x^'(t)^2\]}%20\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p>&nbsp;</p>
<p>Assuming that the signal is sinusoidal, i.e.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x(t)=V_m \sin(2\pi f_m t)" alt="" align="absmiddle" border="0" />.</p>
<p>The first derivative is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x^'(t)=V_m 2\pi f_m \cos(2\pi f_m t)" alt="" align="absmiddle" border="0" /></p>
<p>The signal power is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?E \[x(t)^2\]=\frac{V_m^2}{2}" alt="" align="absmiddle" border="0" /></p>
<p>The error power is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?E \[e_{jitter}(t)^2\]=\Delta t^2_{rms}\frac{(V_m\2\pi f_m)^2}{2}" alt="" align="absmiddle" border="0" /></p>
<p>&nbsp;</p>
<p>The signal to noise ratio is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}SNR_{jitter}%20&amp;%20=%20&amp;%20\frac{E\[x(t)^2\]}{E\[e(t)^2\]}\\&amp;=&amp;\frac{\frac{V_m^2}{2}}{\Delta t^2 _{rms}\frac{(V_m\2\pi%20f_m)^2}{2}}\\ &amp; = &amp; \frac{1}{\(\Delta t_{rms}2\pi f_m\)^2}\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p>Expressing in decibels,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}SNRdB_{jitter}&amp; = &amp; -20\log_{10}\(\Delta t_{rms}2\pi f_m\)\end{array}" alt="" align="absmiddle" border="0" /></p>
<p>&nbsp;</p>
<h2>Quantization Noise</h2>
<p>An input signal with swing from <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?0" alt="" align="absmiddle" border="0" /> of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?V_m" alt="" align="absmiddle" border="0" /> volts will get discretized by an <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N" alt="" align="absmiddle" border="0" /> bit ADC to <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?2^N" alt="" align="absmiddle" border="0" /> levels.</p>
<p><img class="size-full wp-image-1126 alignleft" title="quantization_step_size" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/02/quantization_step_size.png" alt="" width="602" height="378" /></p>
<p><strong>Figure : Input and output from an N bit ADC (with N=3)</strong></p>
<p>The maximum error is <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Delta = \frac{V_m}{2^N}" alt="" align="absmiddle" border="0" />.</p>
<p>For a linearly varying input as show above, the error voltage is having a uniform distribution</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{llll}p_{err}(x)%20&amp;%20=%20&amp;%20\frac{1}{\Delta}%20%20&amp;,\%20%20for\%20%200%20&lt;%20%20x%20%20&lt;%20%20\Delta\\%20%20&amp;%20=%20&amp;%200%20&amp;,\%20%20otherwise\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p>The error voltage is a periodic repetition of the sawtooth waveform,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}e_{quant}(t)&amp;=&amp;t,&amp;\ for\  0&lt;t&lt;\Delta \end{array}" alt="" align="absmiddle" border="0" /></p>
<p>The power of the error signal is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}E\[e_{quant}^2(x)\]&amp;=&amp;\int_0^{\Delta}e^2(x)p(x)d(x)\\&amp;=&amp;\frac{1}{\Delta}\int_0^{\Delta}e^2(x)dx\\&amp;=&amp;\frac{\Delta^2}{3}\\&amp;=&amp;\frac{1}{3}\(\frac{V^2_m}{2^{2N}}\)\end{array}" alt="" align="absmiddle" border="0" />.</p>
<p>For an input sinusoidal signal <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x(t)=V_m \sin(2\pi f_m t)" alt="" align="absmiddle" border="0" />,the signal power is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?E \[x(t)^2\]=\frac{V_m^2}{2}" alt="" align="absmiddle" border="0" />.</p>
<p>The signal to quantization noise ratio is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array}{lll}SNR_{quant}%20&amp;%20=%20&amp;%20\frac{E\[x(t)^2\]}{E\[e_{quant}(x)^2\]}\\&amp;=&amp;\frac{\frac{V_m^2}{2}}{\frac{1}{3}\frac{V^2_m}{2^{2N}}}\\%20&amp;%20=%20&amp;\frac{3}{2}2^{2N}\end{array}" alt="" align="absmiddle" border="0" /></p>
<p>Expressing in decibels,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\Large{\begin{array}{lll}SNRdB_{quant}&amp;&amp;=&amp;6.02N+1.76\end{array}}" alt="" align="absmiddle" border="0" />.</p>
<p>&nbsp;</p>
<h2>Total Signal to Noise Ratio</h2>
<p>The overall signal to noise ratio for an ADC with both quantization noise and jitter is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?SNRdB_{total}=-10\log10\(10^{\frac{-SNRdB_{quant}}{10}}+10^{\frac{-SNRdB_{jitter}}{10}\)" alt="" align="absmiddle" border="0" /></p>
<p>&nbsp;</p>
<p>The simple Matlab script computes the total SNR for 10bit ADC with varying input frequency for different rms jitter specifications.</p>
<pre>clear all; close all;
fs_MHz 	= 2000;  % sampling clock
fm_MHz 	= [0.1:1:1000]; % signal frequency
t_rms_ps= [5 10 20 50 100]; % rms jitter
tn 	= [0:1/fs_MHz:10];
nBit	= 10; % number of bits of the ADC
snr_dB  = zeros(length(t_rms_ps),length(fm_MHz));
for (jj = 1:length(t_rms_ps))
	tn_jitter	= tn + t_rms_ps(jj)*1e-6*randn(size(tn));
	for (ii = 1:length(fm_MHz))
		xt = (exp(j*2*pi*fm_MHz(ii)*tn));
		yt = (exp(j*2*pi*fm_MHz(ii)*tn_jitter));
		yt = floor(yt*2^(nBit))./2^(nBit);
		err = yt - xt;
		sig_pwr = xt*xt'/length(xt);
		err_pwr = err*err'/length(err);
		snr_dB(jj,ii) = 10*log10(sig_pwr/err_pwr);
	end
end
semilogx(fm_MHz,snr_dB.');
grid on;axis([0.1 1000 20 70]);
xlabel('freq MHz'); ylabel('SNR, dB');
legend('5ps','10ps','20ps','50ps','100ps');
title('SNR for 10bit ADC with different RMS jitter values');</pre>
<p>&nbsp;</p>
<p><img class="size-full wp-image-1130 aligncenter" title="snr_10bit_adc_with_different_rms_jitter_specifications" src="http://images.dsplog.com/db-install/wp-content/uploads/2012/02/snr_10bit_adc_with_different_rms_jitter_specifications.png" alt="" width="448" height="336" /></p>
<p><strong>Figure :</strong> Total SNR  for a 10bit ADC with different RMS jitter specifications (simulation of the Figure 3 in <a title="Clock Jitter Effects on Sampling : A tutorial" href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5995856" target="_blank">Clock Jitter Effects on Sampling : A tutorial</a>)</p>
<p><strong>Observations </strong></p>
<p>a) For lower frequency signals, quantization error dominates.</p>
<p>b) For higher frequency signals, the jitter error dominates.</p>
<p>&nbsp;</p>
<h2>References</h2>
<p><a title="Clock Jitter Effects on Sampling : A tutorial" href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5995856" target="_blank">Clock Jitter Effects on Sampling : A tutorial &#8211; by Carlos Azeredo-Leme, IEEE Circuits and Systems Magazine, Third Quarter 2011</a></p>
<p><a title="Aperture Uncertainty and ADC System Performance" href="http://www.analog.com/static/imported-files/application_notes/59756494064912342505447175991257024546937062255921511183854180687755AN501_a.pdf" target="_blank">Aperture Uncertainty and ADC System Performance by Brad Brannon and Allen Barlo, Analog Devices Application Note AN501</a></p>
<p><a title="Little Known Characteristics of Phase Noise" href="http://www.analog.com/static/imported-files/application_notes/589324855748812403694448557703434217045254275316215330254506699244016AN741_0.pdf" target="_blank">Little Known Characteristics of Phase Noise by Paul Smith, Analog Devices Application Note, AN-741</a></p>
<p><a title="Taking the Mystery out of the Infamous Formula,  &quot;SNR = 6.02N + 1.76dB," href="http://www.analog.com/static/imported-files/tutorials/MT-001.pdf" target="_blank">Taking the Mystery out of the Infamous Formula,  &#8221;SNR = 6.02N + 1.76dB,&#8221; and Why You Should Care  by Walt Keste, Analog Devices Tutorial MT-001</a></p>
<div></div>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2007/03/19/signal-to-quantization-noise-in-quantized-sinusoidal/' rel='bookmark' title='Signal to quantization noise in quantized sinusoidal'>Signal to quantization noise in quantized sinusoidal</a></li>
<li><a href='http://www.dsplog.com/2012/04/13/noise-figure-resistor/' rel='bookmark' title='Noise Figure of resistor network'>Noise Figure of resistor network</a></li>
<li><a href='http://www.dsplog.com/2009/05/17/gate-objective-questions-solved/' rel='bookmark' title='Solved objective questions (GATE)'>Solved objective questions (GATE)</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/o679hTxbslzoAsX4VudUKkLO45k/0/da"><img src="http://feedads.g.doubleclick.net/~a/o679hTxbslzoAsX4VudUKkLO45k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/o679hTxbslzoAsX4VudUKkLO45k/1/da"><img src="http://feedads.g.doubleclick.net/~a/o679hTxbslzoAsX4VudUKkLO45k/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=OHJhUnc4I8g:tTMdzx6NgJY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=OHJhUnc4I8g:tTMdzx6NgJY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=OHJhUnc4I8g:tTMdzx6NgJY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=OHJhUnc4I8g:tTMdzx6NgJY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=OHJhUnc4I8g:tTMdzx6NgJY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=OHJhUnc4I8g:tTMdzx6NgJY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dsplogdotcom?a=OHJhUnc4I8g:tTMdzx6NgJY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dsplogdotcom?i=OHJhUnc4I8g:tTMdzx6NgJY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dsplogdotcom/~4/OHJhUnc4I8g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2012/02/22/adc-snr-clock-jitter-quantization-noise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.dsplog.com/2012/02/22/adc-snr-clock-jitter-quantization-noise/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/87 queries in 0.105 seconds using disk: basic
Object Caching 2336/2441 objects using disk: basic
Content Delivery Network via Amazon Web Services: CloudFront: images.dsplog.com

Served from: www.dsplog.com @ 2012-05-18 14:39:08 -->

