<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>dspLog &#187; Miscellaneous</title>
	<atom:link href="http://www.dsplog.com/category/news/miscellaneous/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dsplog.com</link>
	<description>Signal Processing for Communication</description>
	<lastBuildDate>Tue, 20 Jul 2010 16:36:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Support Vibha&#8217;s Dream Mile event</title>
		<link>http://www.dsplog.com/2009/06/19/donate-vibha-dream-mile/</link>
		<comments>http://www.dsplog.com/2009/06/19/donate-vibha-dream-mile/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 00:58:35 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[vibha]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=605</guid>
		<description><![CDATA[My friend Mr. Balaji volunteers for Vibha, a non-profit  organization whose mission is to ensure that every underprivileged child attains his or her right to education, health and opportunity. 
Vibha, which was founded in 1991 has a volunteer network of 825 members spread across Atlanta, Austin, Bay Area, Boston, Chicago, Dallas, Houston, Jacksonville, Los Angeles, [...]


Related posts:<ol><li><a href='http://www.dsplog.com/2008/04/19/prof-randy-pausch-lecture-oprah-show/' rel='bookmark' title='Permanent Link: OT: Prof. Randy Pausch&#8217;s lecture in Oprah show'>OT: Prof. Randy Pausch&#8217;s lecture in Oprah show</a></li><li><a href='http://www.dsplog.com/2008/07/18/iccbn-2008-july-2008-iisc-bangalore/' rel='bookmark' title='Permanent Link: ICCBN 2008, July 17-20  2008, IISc, Bangalore'>ICCBN 2008, July 17-20  2008, IISc, Bangalore</a></li><li><a href='http://www.dsplog.com/2008/04/23/mcdes-2008-iisc-bangalore-may-2008/' rel='bookmark' title='Permanent Link: MCDES 2008 at Indian Institute of Science, Bangalore'>MCDES 2008 at Indian Institute of Science, Bangalore</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>My friend <a title="Balaji's profile in LinkedIn.com" href="http://www.linkedin.com/in/balajirajam">Mr. Balaji</a> volunteers for <a title="About Vibha" href="http://wiki.vibha.org/">Vibha</a>, a non-profit  organization whose mission is to ensure <strong><em>that every underprivileged child attains his or her right to education, health and opportunity. </em></strong></p>
<p>Vibha, which was founded in 1991 has a volunteer network of 825 members spread across Atlanta, Austin, Bay Area, Boston, Chicago, Dallas, Houston, Jacksonville, Los Angeles, Milwaukee, Twin Cities &#8211; Minnesota, New York, Philadelphia, Sacramento, Washington DC and several other cities across the US and India. Till date, we have supported about 190 projects in India and the US. You may read more about their projects <a href="http://projects.vibha.org/projects/">here.</a></p>
<p>To support Vibha&#8217;s cause, Mr Balaji has <strong><a title="donation page - life you can save" href="http://www.active.com/donate/thedreammile2009/lifeyoucansave">set up a donation page &#8211; The Dream Mile &#8230; A few miles for a million dreams</a></strong> . The Dream Mile 5k/10k Run/Walk is Vibha&#8217;s flagship event for increasing awareness and raising funds to help underprivileged children. Vibha has chosen  <a href="http://www.mynewredshoes.org/" target="_blank"><strong>My New Red Shoes</strong></a> as one of the beneficiaries of this event.</p>
<p>To find out more about <a href="http://www.mynewredshoes.org/" target="_blank"><strong>My New Red Shoes</strong></a>, please watch the video below.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/M-wCw-KT-zA&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/M-wCw-KT-zA&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>To find out more about<strong> Alamb, a project by Vibha </strong>in India, please watch the video below.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/M46Zm_XKE1k&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/M46Zm_XKE1k&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>If you like some of the work done by Vibha, please consider making a donation to the cause. As Mr. Balaji has mentioned:</p>
<p><span style="color: #000000;"><strong>$120</strong> can provide  <strong> education to a child</strong> for a whole year<br />
</span></p>
<p><span style="color: #000000;"><strong>$50</strong> can facilitate the <strong>rehabilitation of a mentally handicapped child</strong> for a year<br />
</span></p>
<p><span style="color: #000000;"><strong>$40</strong> can sponsor the <strong>non-formal education of a child</strong> for a whole year.</span></p>
<p><span style="color: #000000;"><strong>To donate for this cause, please visit the donation page <strong><a title="donation page - life you can save" href="http://www.active.com/donate/thedreammile2009/lifeyoucansave">The Dream Mile &#8230; A few miles for a million dreams</a></strong></strong></span></p>
<p>Thanks again for your support.</p>


<p>Related posts:<ol><li><a href='http://www.dsplog.com/2008/04/19/prof-randy-pausch-lecture-oprah-show/' rel='bookmark' title='Permanent Link: OT: Prof. Randy Pausch&#8217;s lecture in Oprah show'>OT: Prof. Randy Pausch&#8217;s lecture in Oprah show</a></li><li><a href='http://www.dsplog.com/2008/07/18/iccbn-2008-july-2008-iisc-bangalore/' rel='bookmark' title='Permanent Link: ICCBN 2008, July 17-20  2008, IISc, Bangalore'>ICCBN 2008, July 17-20  2008, IISc, Bangalore</a></li><li><a href='http://www.dsplog.com/2008/04/23/mcdes-2008-iisc-bangalore-may-2008/' rel='bookmark' title='Permanent Link: MCDES 2008 at Indian Institute of Science, Bangalore'>MCDES 2008 at Indian Institute of Science, Bangalore</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2009/06/19/donate-vibha-dream-mile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Books</title>
		<link>http://www.dsplog.com/2008/12/24/books/</link>
		<comments>http://www.dsplog.com/2008/12/24/books/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 01:08:22 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=284</guid>
		<description><![CDATA[
Happy holidays!  

Wishing every one merry Christmas and a great year 2009 and beyond.

I will list down some of the books which I have on my desk. They help me with the math and simulations


 


Digital Communication: Third Edition, by John R. Barry, Edward A. Lee, David G. Messerschmitt




 


Fundamentals of Wireless Communication, David [...]


Related posts:<ol><li><a href='http://www.dsplog.com/2008/10/01/download-free-e-book/' rel='bookmark' title='Permanent Link: Download free e-book on error probability in AWGN'>Download free e-book on error probability in AWGN</a></li><li><a href='http://www.dsplog.com/2009/08/25/ocw-communication-system-design/' rel='bookmark' title='Permanent Link: OCW: Communication System Design'>OCW: Communication System Design</a></li><li><a href='http://www.dsplog.com/2008/08/08/negative-frequency/' rel='bookmark' title='Permanent Link: Negative Frequency'>Negative Frequency</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p></p><div class="mceTemp">
<p>Happy holidays! <img src='http://www.dsplog.com/db-install/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<div class="mceTemp">
<p>Wishing every one merry Christmas and a great year 2009 and beyond.</p></div>
<div class="mceTemp">
<p>I will list down some of the books which I have on my desk. They help me with the math and simulations</p></div>
<div class="mceTemp">
<dl id="attachment_285" class="wp-caption alignnone" style="width: 95px;">
<dt class="wp-caption-dt"><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"><img class="size-full wp-image-285" title="Digital-Communication-Barry-Lee-Messerschmitt" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/12/digital-communication-barry-lee-messerschmitt.png" alt="Digital-Communication-Barry-Lee-Messerschmitt" width="85" height="125" /></a> </dt>
</dl>
</div>
<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>
<p><span id="more-284"></span></p>
<p><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"></a></p>
<div class="mceTemp">
<dl id="attachment_287" class="wp-caption alignnone" style="width: 105px;">
<dt class="wp-caption-dt"><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FFundamentals-Wireless-Communication-David-Tse%2Fdp%2F0521845270&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325"><img class="size-full wp-image-287" title="Fundamentals-of-Wireless-Communication-Tse-Viswanath" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/12/fundamentals-of-wireless-communication-tse-viswanath.png" alt="Fundamentals-of-Wireless-Communication-Tse-Viswanath" width="95" height="125" /></a> </dt>
</dl>
</div>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FFundamentals-Wireless-Communication-David-Tse%2Fdp%2F0521845270&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Fundamentals of Wireless Communication, David Tse, Pramod Viswanath</a></p>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FFundamentals-Wireless-Communication-David-Tse%2Fdp%2F0521845270&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325"></a></p>
<div class="mceTemp">
<dl id="attachment_288" class="wp-caption alignnone" style="width: 110px;">
<dt class="wp-caption-dt"><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"><img class="size-full wp-image-288" title="Digital-Communications-Proakis" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/12/digital-communications-proakis.png" alt="Digital-Communications-Proakis" width="100" height="125" /></a></dt>
</dl>
</div>
<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 style="border: medium none  ! important; margin: 0px ! important;" src="https://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" /></p>
<div class="mceTemp">
<dl id="attachment_289" class="wp-caption alignnone" style="width: 98px;">
<dt class="wp-caption-dt"><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communications-Fundamentals-Applications-Technologies%2Fdp%2F0130847887&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325"><img class="size-full wp-image-289" title="Digital-Communications-Sklar" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/12/digital-communications-sklar.png" alt="Digital-Communications-Sklar" width="88" height="125" /></a></dt>
</dl>
</div>
<p><a title="Digital Communications: Fundamentals and Applications (2nd Edition) - Bernard Sklar (Author)" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communications-Fundamentals-Applications-Technologies%2Fdp%2F0130847887&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325"></a><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communications-Fundamentals-Applications-Technologies%2Fdp%2F0130847887&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Digital Communications: Fundamentals and Applications by Bernard Sklar</a><img style="border: medium none  ! important; margin: 0px ! important;" src="https://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" /></p>
<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"><img class="alignnone size-full wp-image-290" title="Communication-Systems-Carlson-Crilly-Rutledge" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/12/communication-systems-carlson-crilly-rutledge.png" alt="Communication-Systems-Carlson-Crilly-Rutledge" width="98" height="125" /></a></p>
<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 &#8211; An introduction to Signals and noise in Electrical Communication by A. Bruce Carlson, Paul Crilly, Janet Rutledge</a></p>
<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"></a><img style="border: medium none  ! important; margin: 0px ! important;" src="https://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" /></p>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Signal-Processing-John-Proakis%2Fdp%2F0131873741&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325"><img class="alignnone size-full wp-image-291" title="Digital-Signal-Processing-Proakis-Manolakis" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/12/digital-signal-processing-proakis-manolakis.png" alt="Digital-Signal-Processing-Proakis-Manolakis" width="95" height="125" /></a></p>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Signal-Processing-John-Proakis%2Fdp%2F0131873741&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Digital Signal Processing by John G. Proakis, Dimitris K Manolakis</a></p>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Signal-Processing-John-Proakis%2Fdp%2F0131873741&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325"></a><img style="border: medium none  ! important; margin: 0px ! important;" src="https://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" /></p>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDiscrete-Time-Signal-Processing-2nd-Prentice-Hall%2Fdp%2F0137549202&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325"><img class="alignnone size-full wp-image-292" title="Discrete-Time-Signal-Processing-Oppenheim-Schafer-Buck" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/12/discrete-time-signal-processing-oppenheim-schafer-buck.png" alt="Discrete-Time-Signal-Processing-Oppenheim-Shafer-Buck" width="90" height="125" /></a></p>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDiscrete-Time-Signal-Processing-2nd-Prentice-Hall%2Fdp%2F0137549202&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Discrete-Time Signal Processing &#8211; by Alan V. Oppenheim, Ronald W. Schafer, John R. Buck</a></p>
<p>Note: Images, thanks to <a href="http://www.amazon.com">Amazon.com</a></p>
<p><img style="border: medium none  ! important; margin: 0px ! important;" src="https://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" /></p>


<p>Related posts:<ol><li><a href='http://www.dsplog.com/2008/10/01/download-free-e-book/' rel='bookmark' title='Permanent Link: Download free e-book on error probability in AWGN'>Download free e-book on error probability in AWGN</a></li><li><a href='http://www.dsplog.com/2009/08/25/ocw-communication-system-design/' rel='bookmark' title='Permanent Link: OCW: Communication System Design'>OCW: Communication System Design</a></li><li><a href='http://www.dsplog.com/2008/08/08/negative-frequency/' rel='bookmark' title='Permanent Link: Negative Frequency'>Negative Frequency</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2008/12/24/books/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Join dspLog at Google FriendConnect</title>
		<link>http://www.dsplog.com/2008/12/10/dsplog-google-friendconnect/</link>
		<comments>http://www.dsplog.com/2008/12/10/dsplog-google-friendconnect/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 01:41:50 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=272</guid>
		<description><![CDATA[We have installed Google FriendConnect on dspLog.com. With Google Friend Connect, you can:
(a) You can interact with other members who have similiar interests. You will come to know the list of other sites (apart from dspLog.com) where the members have joined. You can add a member as a friend and so on.
(b) You can invite [...]


Related posts:<ol><li><a href='http://www.dsplog.com/2009/01/13/whos-who-theme/' rel='bookmark' title='Permanent Link: Migration to Who&#8217;s Who theme'>Migration to Who&#8217;s Who theme</a></li><li><a href='http://www.dsplog.com/2009/06/19/donate-vibha-dream-mile/' rel='bookmark' title='Permanent Link: Support Vibha&#8217;s Dream Mile event'>Support Vibha&#8217;s Dream Mile event</a></li><li><a href='http://www.dsplog.com/2009/10/21/dsplog-turns-two-happy-birthday/' rel='bookmark' title='Permanent Link: dspLog turns two! Happy Birthday!'>dspLog turns two! Happy Birthday!</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>We have installed <strong>Google FriendConnect</strong> on <strong>dspLog.com</strong>. With <strong>Google Friend Connect</strong>, you can:</p>
<p>(a) You can interact with other members who have similiar interests. You will come to know the list of other sites (apart from <a href="www.dsplog.com">dspLog.com)</a> where the members have joined. You can add a member as a friend and so on.</p>
<p>(b) You can invite friends from orkut, Google Talk and other social networks and contact lists to join.</p>
<p>(c) You need not create a new account. You can sign in with your Google, Yahoo, AIM or OpenID account.</p>
<p>If you wish to join <a href="www.dsplog.com"><strong>dspLog community</strong></a> via FriendConnect, please click &#8216;<strong>Join this Site</strong>&#8216; button on the sidebar.</p>
<p><span id="more-272"></span></p>
<p>From <a title="Google support page on relationships in FriendConnect" href="http://www.google.com/support/friendconnect/bin/answer.py?answer=112075&amp;topic=16611">Google support page on FriendConnect</a></p>
<blockquote><p>You can become friends with any member of a Friend Connect site, regardless of what social networks they belong to and what account they used to sign up. Friends you make on a Friend Connect site will be friends of yours on any other sites you both belong to.</p></blockquote>
<p><a title="Google FriendConnect support page on privacy" href="http://www.google.com/support/friendconnect/bin/answer.py?answer=112076&amp;topic=16611"><strong>Regarding privay</strong></a></p>
<blockquote><p>Google Friend Connect never provides site owners with your private sign-in information. Google Friend Connect and the service you use to sign in &#8212; not site owners &#8212; validate your sign-in credentials.</p>
<p>Google stores and shares as little information as possible to be able to provide the best possible experience.</p></blockquote>
<p>If you wish to join <a href="www.dsplog.com"><strong>dspLog community</strong></a> via FriendConnect, please click &#8216;<strong>Join this Site</strong>&#8216; button on the sidebar.</p>
<p>For more details on Google FriendConnect, please <a title="Google FriendConnect support page" href="http://www.google.com/support/friendconnect/">click here to visit Google&#8217;s support page</a>.</p>


<p>Related posts:<ol><li><a href='http://www.dsplog.com/2009/01/13/whos-who-theme/' rel='bookmark' title='Permanent Link: Migration to Who&#8217;s Who theme'>Migration to Who&#8217;s Who theme</a></li><li><a href='http://www.dsplog.com/2009/06/19/donate-vibha-dream-mile/' rel='bookmark' title='Permanent Link: Support Vibha&#8217;s Dream Mile event'>Support Vibha&#8217;s Dream Mile event</a></li><li><a href='http://www.dsplog.com/2009/10/21/dsplog-turns-two-happy-birthday/' rel='bookmark' title='Permanent Link: dspLog turns two! Happy Birthday!'>dspLog turns two! Happy Birthday!</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2008/12/10/dsplog-google-friendconnect/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Linear to log conversion</title>
		<link>http://www.dsplog.com/2008/11/20/linear-to-log-conversion/</link>
		<comments>http://www.dsplog.com/2008/11/20/linear-to-log-conversion/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 01:40:55 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[log]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=263</guid>
		<description><![CDATA[In signal processing blocks like power estimation used in digital communication, it may be required to represent the estimate in log scale. This post explains a simple linear to log conversion scheme  proposed in  the DSP Guru column on DSP Trick: Quick-and-Dirty Logarithms. The scheme makes implementation of a linear to log conversion [...]


Related posts:<ol><li><a href='http://www.dsplog.com/2008/05/12/gray-code-to-binary-conversion-for-psk-pam/' rel='bookmark' title='Permanent Link: Gray code to Binary conversion for PSK and PAM'>Gray code to Binary conversion for PSK and PAM</a></li><li><a href='http://www.dsplog.com/2008/05/11/binary-to-gray-code-conversion-psk-pam/' rel='bookmark' title='Permanent Link: Binary to Gray code conversion for PSK and PAM'>Binary to Gray code conversion for PSK and PAM</a></li><li><a href='http://www.dsplog.com/2008/06/01/binary-to-gray-code-for-16qam/' rel='bookmark' title='Permanent Link: Binary to Gray code for 16QAM'>Binary to Gray code for 16QAM</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>In signal processing blocks like power estimation used in digital communication, it may be required to represent the estimate in log scale. This post explains a simple <strong>linear to log conversion</strong> scheme  proposed in  the DSP Guru column on <a title="Quick-and-Dirty Logarithms" href="http://www.dspguru.com/comp.dsp/tricks/alg/quicklog.htm" target="_blank">DSP Trick: Quick-and-Dirty Logarithms. </a>The scheme makes implementation of a <strong>linear to log conversion</strong> simple and small in a digital hardware like FPGA.</p>
<p><span id="more-263"></span></p>
<p>Consider an integer <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N" border="0" alt="" align="absmiddle" />. The floating point representation is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N=M2^E" border="0" alt="" align="absmiddle" /></p>
<p>where,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?E" border="0" alt="" align="absmiddle" /> is the exponent and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?M" border="0" alt="" align="absmiddle" />is the mantissa.</p>
<p>Assume that <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?M" border="0" alt="" align="absmiddle" /> is normalized, i.e  <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?1\le M &lt; 2" border="0" alt="" align="absmiddle" />.</p>
<p>Taking logarithm to the base 2,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\log_2N=\log_2M+E" border="0" alt="" align="absmiddle" />.</p>
<p>In digital hardware implementations, finding the exponent <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?E" border="0" alt="" align="absmiddle" /> is simple. Its just noting the index of the first bit which is 1 starting from MSB side.</p>
<p>For example consider an input number <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N=12" border="0" alt="" align="absmiddle" />.</p>
<p>Expressed in binary on 8 bit bus, <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_b=00001100" border="0" alt="" align="absmiddle" />.</p>
<p>The value of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?E" border="0" alt="" align="absmiddle" /> in this example is 3.</p>
<p>Now, the part which remains to be computed is the mantissa <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?M" border="0" alt="" align="absmiddle" />. In this example,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?M=\frac{12}{2^E} = 1.5" border="0" alt="" align="absmiddle" />.</p>
<p>Given that <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?M" border="0" alt="" align="absmiddle" /> lies in the range <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?1\le M &lt; 2" border="0" alt="" align="absmiddle" />. this can be computed using a Look Up Table.  The LUT can store <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\log_2" border="0" alt="" align="absmiddle" /> values of input between 1 to 2. The precision requirement determines the number of elements in the LUT. Let us assume that we want to have a precision of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{1}{2^k}=0.0625" border="0" alt="" align="absmiddle" />, where <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?k=4" border="0" alt="" align="absmiddle" />. The look up table values will be as follows:</p>
<table border="1" cellspacing="0" frame="below" rules="groups">
<colgroup>
<col width="86"></col>
<col width="105"></col>
<col width="110"></col>
</colgroup>
<tbody>
<tr>
<td width="86" height="18" align="left"><strong>k=4</strong></td>
<td width="105" align="left"></td>
<td width="110" align="left"></td>
</tr>
</tbody>
<tbody>
<tr>
<td height="36" align="center"><strong>index. j</strong></td>
<td align="center"><strong>Linear = 1+j/2^k</strong></td>
<td align="center"><strong>LUT = log_2(Linear)</strong></td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">1</td>
<td align="center">1.06250</td>
<td align="center">0.0874628</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">2</td>
<td align="center">1.12500</td>
<td align="center">0.1699250</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">3</td>
<td align="center">1.18750</td>
<td align="center">0.2479275</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">4</td>
<td align="center">1.25000</td>
<td align="center">0.3219281</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">5</td>
<td align="center">1.31250</td>
<td align="center">0.3923174</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">6</td>
<td align="center">1.37500</td>
<td align="center">0.4594316</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">7</td>
<td align="center">1.43750</td>
<td align="center">0.5235620</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">8</td>
<td align="center">1.50000</td>
<td align="center">0.5849625</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">9</td>
<td align="center">1.56250</td>
<td align="center">0.6438562</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">10</td>
<td align="center">1.62500</td>
<td align="center">0.7004397</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">11</td>
<td align="center">1.68750</td>
<td align="center">0.7548875</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">12</td>
<td align="center">1.75000</td>
<td align="center">0.8073549</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">13</td>
<td align="center">1.81250</td>
<td align="center">0.8579810</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">14</td>
<td align="center">1.87500</td>
<td align="center">0.9068906</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">15</td>
<td align="center">1.93750</td>
<td align="center">0.9541963</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">16</td>
<td align="center">2.00000</td>
<td align="center">1.0000000</td>
</tr>
</tbody>
</table>
<p><strong>Table: Look up table values for logarithm computation</strong></p>
<p>From the above look up table, we can see that mantissa of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?M=\frac{12}{2^E} = 1.5" border="0" alt="" align="absmiddle" /> corresponds to index of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?j=8" border="0" alt="" align="absmiddle" />. It is inituitive to note that the array index  <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?j" border="0" alt="" align="absmiddle" /> can be found out by the simple formula,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?j=\left(\frac{N}{2^E}-1\right)2^k" border="0" alt="" align="absmiddle" />. To handle cases where this number can <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?j" border="0" alt="" align="absmiddle" /> can be a fraction, the result is floored to the nearest integer, i.e.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?j=\lfloor\left(\frac{N}{2^E}-1\right)2^k\rfloor" border="0" alt="" align="absmiddle" /></p>
<p>So the value of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N" border="0" alt="" align="absmiddle" /> in <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\log_2" border="0" alt="" align="absmiddle" /> base is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{\log_2} = LUT(j) + E" border="0" alt="" align="absmiddle" />. <img src='http://www.dsplog.com/db-install/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Once we have the number in <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\log_2" border="0" alt="" align="absmiddle" /> base, conversion to any other base is simple.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\log_b(N) = \frac{\log_c(N)}{\log_c(b)}" border="0" alt="" align="absmiddle" />.</p>
<p>So the number <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N" border="0" alt="" align="absmiddle" />in <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\log_{10}" border="0" alt="" align="absmiddle" /> base is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N_{\log_{10}} = \frac{N_{\log_2}}{\log_2(10)}" border="0" alt="" align="absmiddle" />.</p>
<h2>Simulation Model</h2>
<p>Simple Matlab/Octave script for computing the logarithm via the LUT based approach is provided. Click here to download <a href="http://www.dsplog.com/db-install/wp-content/uploads/2008/11/script_linear_to_log_conversion.m">Matlab/Octave script for performing linear to log conversion using LUT based approach</a></p>
<p><img class="alignnone size-full wp-image-265" title="Plot showing  the linear to log conversion using LUT based approach" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/11/plot_log2_log10_conversion.png" alt="linear to log using LUT" width="448" height="336" /></p>
<p><strong>Figure: Linear to log conversion using LUT</strong></p>
<h2>Reference</h2>
<p><a title="Quick-and-Dirty Logarithms" href="http://www.dspguru.com/comp.dsp/tricks/alg/quicklog.htm" target="_blank">DSP Trick: Quick-and-Dirty Logarithms &#8211; Ray Andraka, June 2000</a></p>


<p>Related posts:<ol><li><a href='http://www.dsplog.com/2008/05/12/gray-code-to-binary-conversion-for-psk-pam/' rel='bookmark' title='Permanent Link: Gray code to Binary conversion for PSK and PAM'>Gray code to Binary conversion for PSK and PAM</a></li><li><a href='http://www.dsplog.com/2008/05/11/binary-to-gray-code-conversion-psk-pam/' rel='bookmark' title='Permanent Link: Binary to Gray code conversion for PSK and PAM'>Binary to Gray code conversion for PSK and PAM</a></li><li><a href='http://www.dsplog.com/2008/06/01/binary-to-gray-code-for-16qam/' rel='bookmark' title='Permanent Link: Binary to Gray code for 16QAM'>Binary to Gray code for 16QAM</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2008/11/20/linear-to-log-conversion/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Negative Frequency</title>
		<link>http://www.dsplog.com/2008/08/08/negative-frequency/</link>
		<comments>http://www.dsplog.com/2008/08/08/negative-frequency/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 01:05:08 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[frequency]]></category>
		<category><![CDATA[OFDM]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=210</guid>
		<description><![CDATA[Last week, I received an email from Mr. Kishore. He was wondering about the physical significance of negative frequency. Does negative frequency really exist?
Though I have seen conflicting views on the net (thread in complextoreal.com, thread in comp.dsp), my perspective is that negative frequency exist. The concept of negative frequency helps me a lot to [...]


Related posts:<ol><li><a href='http://www.dsplog.com/2007/06/17/interpreting-the-output-of-fft-operation-in-matlab/' rel='bookmark' title='Permanent Link: Interpreting the output of fft() operation in Matlab'>Interpreting the output of fft() operation in Matlab</a></li><li><a href='http://www.dsplog.com/2009/05/17/gate-objective-questions-solved/' rel='bookmark' title='Permanent Link: Solved objective questions (GATE)'>Solved objective questions (GATE)</a></li><li><a href='http://www.dsplog.com/2007/03/18/harmonic-distortion-in-digital-sinusoidal-generators/' rel='bookmark' title='Permanent Link: Harmonic distortion in digital sinusoidal generators'>Harmonic distortion in digital sinusoidal generators</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Last week, I received an email from Mr. Kishore. He was wondering about the physical significance of <strong>negative frequency</strong>. Does <strong>negative frequency</strong> really exist?</p>
<p>Though I have seen conflicting views on the net (<a title="thread in complextoreal.com on negative frequency" href="http://complex2real.proboards18.com/index.cgi?board=commq&amp;action=display&amp;thread=63">thread in complextoreal.com</a>, <a title="thread in comp.dsp on negative frequency" href="http://groups.google.com/group/comp.dsp/browse_thread/thread/ed84c50cb5245959/5b65bcb16a30f336?q=negative+frequency&amp;lnk=ol&amp;">thread in comp.dsp</a>), my perspective is that <strong>negative frequency exist</strong>. The concept of negative frequency helps me a lot to understand single sideband modulation (SSB), OFDM systems, I Q modulators etc (to name a few).</p>
<p><span id="more-210"></span></p>
<h2>Simple explanation for negative frequency</h2>
<p>The <a title="Negative frequency on Wiki" href="http://en.wikipedia.org/wiki/Negative_frequency">wiki entry on negative frequency</a> provides a simple explanation using <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(\omega t) " border="0" alt="" align="absmiddle" /> as an example.</p>
<p>We know that <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(\omega t) = cos(-\omega t)" border="0" alt="" align="absmiddle" />. This means the sign of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\omega " border="0" alt="" align="absmiddle" />cannot be un-ambiguously found out from observing <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(\omega t) " border="0" alt="" align="absmiddle" /> alone. This implies that it is reasonable to think that <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(\omega t) " border="0" alt="" align="absmiddle" /> has frequency components at both <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\omega " border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-\omega " border="0" alt="" align="absmiddle" />.</p>
<p>Similarly, this ambiguity exists for <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?sin(\omega t) " border="0" alt="" align="absmiddle" />too.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?sin(-\omega t) = -sin(\omega t) = sin(\omega t + \pi)" border="0" alt="" align="absmiddle" /></p>
<h2>Negative frequency using Taylor&#8217;s series expansion</h2>
<p>Thanks to the nice paper by Mr. Richard Lyons, <a href="http://www.dspguru.com/info/tutor/QuadSignals.pdf">Quadrature Signals: Complex but not Complicated, Richard Lyons</a>.</p>
<p>Let us first define the magic number <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?j=\sqrt{-1},\ j^2 = -1,\  j^3 = -j,\ j^4 = 1" border="0" alt="" align="absmiddle" /> and so on.</p>
<p>The Taylor series expansion of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?e^x" border="0" alt="" align="absmiddle" />, <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(x)" border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?sin(x)" border="0" alt="" align="absmiddle" /> are as follows.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \ldots" border="0" alt="" align="absmiddle" /></p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(x) = 1 - \frac{x^2}{2!} + \frac{x^4}{4!} -\frac{x^6}{6!} + \ldots" border="0" alt="" align="absmiddle" /></p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?sin(x) = x - \frac{x^3}{3!} + \frac{x^5}{5!} -\frac{x^7}{7!} + \ldots" border="0" alt="" align="absmiddle" /></p>
<p>Let us now define the Taylor series expansion of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?e^{jx}" border="0" alt="" align="absmiddle" />.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{eqnarray}e^{jx}&amp;=&amp;1 + jx + \frac{(jx)^2}{2!} + \frac{(jx)^3}{3!} + \frac{(jx)^4}{4!} + \frac{(jx)^5}{5!} + \frac{(j6)^6}{6!} + \frac{(jx)^7}{7!} +  \ldots\\ &amp; = &amp; 1 + jx - \frac{x^2}{2!} - j\frac{x^3}{3!} + \frac{x^4}{4!} + j\frac{x^5}{5!} - \frac{x^6}{6!} - j\frac{x^7}{7!} + \ldots\\ &amp; = &amp; \left(1 - \frac{x^2}{2!} + \frac{x^4}{4!} -\frac{x^6}{6!} + \ldots\right) + j\left(x - \frac{x^3}{3!} + \frac{x^5}{5!} -\frac{x^7}{7!} + \ldots   \right)\\ &amp; = &amp; cos(x) + jsin(x)\end{eqnarray}" border="0" alt="" align="absmiddle" />.</p>
<p>Similarly,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{eqnarray}e^{-jx}&amp;=&amp;1 - jx + \frac{(-jx)^2}{2!} + \frac{(-jx)^3}{3!} + \frac{(-jx)^4}{4!} + \frac{(-jx)^5}{5!} + \frac{(-j6)^6}{6!} + \frac{(-jx)^7}{7!} +  \ldots\\ &amp; = &amp; 1 - jx - \frac{x^2}{2!} + j\frac{x^3}{3!} + \frac{x^4}{4!} - j\frac{x^5}{5!} - \frac{x^6}{6!} + j\frac{x^7}{7!} + \ldots\\ &amp; = &amp; \left(1 - \frac{x^2}{2!} + \frac{x^4}{4!} -\frac{x^6}{6!} + \ldots\right) - j\left(x - \frac{x^3}{3!} + \frac{x^5}{5!} -\frac{x^7}{7!} + \ldots   \right)\\ &amp; = &amp; cos(x) - jsin(x)\end{eqnarray}" border="0" alt="" align="absmiddle" />.</p>
<p>Combining the above two equations, one may write</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(x) = \frac{1}{2}\left(e^{jx} + e^{-jx}\right)" border="0" alt="" align="absmiddle" /></p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?sin(x) = \frac{1}{2j}\left(e^{jx} - e^{-jx}\right)" border="0" alt="" align="absmiddle" />.</p>
<p>If we apply <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x=2\pi f_o t" border="0" alt="" align="absmiddle" />, then we get,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\large cos(2\pi f_ot) = \frac{1}{2}\left(e^{j2\pi f_ot} + e^{-j2\pi f_ot}\right)" border="0" alt="" align="absmiddle" /> and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\large sin(2\pi f_ot) = \frac{1}{2j}\left(e^{j2\pi f_ot} - e^{-j2\pi f_ot}\right)" border="0" alt="" align="absmiddle" />.</p>
<p>This forms the proof that a real sinusoidal having frequency <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?f_o" border="0" alt="" align="absmiddle" /> is comprised of a complex sinusoidal having a <strong>positive frequency</strong> at <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?+f_o" border="0" alt="" align="absmiddle" /> and a <strong>negative frequency</strong> at <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-f_o" border="0" alt="" align="absmiddle" />.</p>
<h2>Simple Matlab example for Negative frequency</h2>
<p>Click here to download <a title="Matlab/Octave code for plotting the spectrum of real and complex sinusoidal" href="http://www.dsplog.com/db-install/wp-content/uploads/2008/08/negative_frequency.m">Matlab/Octave code for plotting the spectrum of real and complex sinusoidal</a></p>
<p><img class="alignnone size-full wp-image-211" title="Negative Frequency Real Complex Sinusoidal" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/08/negative_frequency_real_complex_sinusoidal.png" alt="" width="448" height="336" /></p>
<p><strong>Figure: Spectrum plot showing positive and negative frequency</strong></p>
<p>As discussed above, the real sinusoidal has frequency components at +5MHz and -5MHz where as the complex sinusoidal has frequency component only at +5MHz.</p>
<h2>Negative frequency in OFDM</h2>
<p>Some of you might be familiar with the  <a href="http://standards.ieee.org/getieee802/download/802.11a-1999.pdf">IEEE 802.11a specification</a> where subcarriers from [-26 to -1 and [+1 to 26] are used. The subcarriers -26 to -1 corresponds to usage of negative frequency and lets try to understand it.</p>
<p>The equation for an OFDM transmission is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?%5Cbegin%7Beqnarray%7Ds%28t%29%20=%5Cfrac%7B1%7D%7B%5Csqrt%7BT%7D%7D%5Cunderbrace%7B%5Csum_%7B0%7D%5E%7BK-1%7Da_ke%5E%7B%5Cfrac%7Bj2%5Cpi%20kt%7D%7BT%7D%7D%7D%5C%20w%28t%29%20%5Cend%7Beqnarray%7D" border="0" alt="" align="absmiddle" />,</p>
<p>where</p>
<p>(a) <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?k=0,1,%5Cldots,K-1" border="0" alt="" align="absmiddle" /> correspond to the frequency of the sinusoidal and</p>
<p>(b) <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?w%28t%29=u%28t%29-u%28t-T%29" border="0" alt="" align="absmiddle" /> is a rectangular window over <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?%5B0%5C%20T%29" border="0" alt="" align="absmiddle" /></p>
<p>(c)  <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?T" border="0" alt="" align="absmiddle" /> is the symbol period.</p>
<p>(d) each information signal <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?a_k" border="0" alt="" align="absmiddle" /> is modulated on to a <strong>complex sinusoidal</strong> having frequency of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?%5Cfrac%7Bk%7D%7BT%7D" border="0" alt="" align="absmiddle" />.</p>
<p>(e) Sum of all such modulated sinusoidals are added and the resultant signal is sent out as <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?s(t)" border="0" alt="" align="absmiddle" />.</p>
<p>In the <a href="http://standards.ieee.org/getieee802/download/802.11a-1999.pdf">IEEE 802.11a specification</a>, symbol duration <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?T" border="0" alt="" align="absmiddle" /> is 3.2<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\mu s" border="0" alt="" align="absmiddle" />, sampling frequency <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?f_s" border="0" alt="" align="absmiddle" />is 20MHz and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?K=64" border="0" alt="" align="absmiddle" />.</p>
<p>The frequencies used for modulating the <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?a_k" border="0" alt="" align="absmiddle" />&#8217;s are  <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{0}{T}" border="0" alt="" align="absmiddle" />, <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{1}{T}" border="0" alt="" align="absmiddle" />, <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{2}{T}" border="0" alt="" align="absmiddle" />, <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{3}{T}" border="0" alt="" align="absmiddle" /> and so on till <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{K-1}{T}" border="0" alt="" align="absmiddle" />. Expressing in Hz, this corresponds to frequencies from 0Hz, 312.5kHz, 625kHz, 937.5kHz, 1.25MHz,&#8230;, 10MHz, 10.3125MHz,&#8230; till 19.6875MHz.</p>
<p>From our understanding of sampling theory, we know that with a sampling frequency of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?f_s" border="0" alt="" align="absmiddle" />, we can only see frequencies from <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-\frac{f_s}{2}" border="0" alt="" align="absmiddle" /> to <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?+\frac{f_s}{2}" border="0" alt="" align="absmiddle" /> .</p>
<p>Note: The frequency <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?+\frac{f_s}{2}" border="0" alt="" align="absmiddle" /> is called the <a title="Wiki entry on aliasing" href="http://en.wikipedia.org/wiki/Aliasing">Nyquist frequency.</a></p>
<p>So in our 802.11a example, what will happen to frequencies which are modulated on subcarriers lying from 10MHz till 19.6875MHz?</p>
<p><strong>Quick answer</strong>: They get folded! <img src='http://www.dsplog.com/db-install/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>The frequencies from <strong>10MHz till 19.6875MHz</strong> gets folded and seems as if they are lying from <strong>-10MHz to -312.5kHz</strong>.</p>
<p><img class="alignnone size-full wp-image-217" title="Spectrum folding OFDM IEEE802.11a" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/08/spectrum_folding_ofdm_ieee80211a.png" alt="" width="450" height="125" /></p>
<p><strong>Figure: Spectrum folding to negative frequency in IEEE802.11a specification</strong></p>
<p>Further, folding of the spectrum to the <strong>negative frequency region does not cause any problems</strong>. Reason: <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?a_k" border="0" alt="" align="absmiddle" />&#8217;s which where modulated on complex sinusoidals having frequencies from 0 till 10MHz <strong>did not have any negative frequenc</strong>y component.</p>
<p><strong>Note:</strong></p>
<address>In general, one can say if a sinusoidal is of frequency <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?f" border="0" alt="" align="absmiddle" /> is sampled with a frequency <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?f_s" border="0" alt="" align="absmiddle" /> and if <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?f&gt;\frac{f_s}{2}" border="0" alt="" align="absmiddle" />, the frequency <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?f" border="0" alt="" align="absmiddle" /> gets folded to a frequency <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?f-Nf_s" border="0" alt="" align="absmiddle" /> within <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\left[-\frac{f_s}{2},+\frac{f_s}{2}\right)" border="0" alt="" align="absmiddle" />, where <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N" border="0" alt="" align="absmiddle" /> is an integer.</address>
<p>The concept of folding is well explained in Chapter 1.4.1 of          <a title="Digital Signal Processing, John G. Proakis" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Signal-Processing-John-Proakis%2Fdp%2F0131873741&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">[DSP: PROAKIS]</a><img style="border: medium none  ! important; margin: 0px ! important;" src="http://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" />. A simple example of folding which we may see in our day to day life is with a ceiling fan. One may see that the blades of the fan are rotating at a slower speed in a direction opposite to the actual rotation of the fan blades. Needless to say that the sampling frequency of our eye&#8217;s are not good enough. <img src='http://www.dsplog.com/db-install/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Happy learning.</p>
<h2>Reference</h2>
<p><a title="Digital Signal Processing, John G. Proakis" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Signal-Processing-John-Proakis%2Fdp%2F0131873741&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">[DSP: PROAKIS]</a><img style="border: medium none  ! important; margin: 0px ! important;" src="http://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" />: <a title="Digital Signal Processing, John G. Proakis" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Signal-Processing-John-Proakis%2Fdp%2F0131873741&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Digital Signal Processing, John G. Proakis</a><img style="border: medium none  ! important; margin: 0px ! important;" src="http://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" /></p>
<p><a href="http://www.dspguru.com/info/tutor/QuadSignals.pdf">Quadrature Signals: Complex but not Complicated, Richard Lyons</a></p>


<p>Related posts:<ol><li><a href='http://www.dsplog.com/2007/06/17/interpreting-the-output-of-fft-operation-in-matlab/' rel='bookmark' title='Permanent Link: Interpreting the output of fft() operation in Matlab'>Interpreting the output of fft() operation in Matlab</a></li><li><a href='http://www.dsplog.com/2009/05/17/gate-objective-questions-solved/' rel='bookmark' title='Permanent Link: Solved objective questions (GATE)'>Solved objective questions (GATE)</a></li><li><a href='http://www.dsplog.com/2007/03/18/harmonic-distortion-in-digital-sinusoidal-generators/' rel='bookmark' title='Permanent Link: Harmonic distortion in digital sinusoidal generators'>Harmonic distortion in digital sinusoidal generators</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2008/08/08/negative-frequency/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Summary &#8211; feedback on [dspLog], July 2008</title>
		<link>http://www.dsplog.com/2008/08/03/feedback-summary-dsplog/</link>
		<comments>http://www.dsplog.com/2008/08/03/feedback-summary-dsplog/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 01:11:43 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[feedback]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=209</guid>
		<description><![CDATA[On July30th, 2008 I had sent a request for feedback to 93 subscribers who have opted to receive articles over email. As on 3rd August, I received the response from around 8 persons. Not bad, around 8.5% response. Thanks a lot for the feedback. I will summarize the response from the group and note down [...]


Related posts:<ol><li><a href='http://www.dsplog.com/2009/10/21/dsplog-turns-two-happy-birthday/' rel='bookmark' title='Permanent Link: dspLog turns two! Happy Birthday!'>dspLog turns two! Happy Birthday!</a></li><li><a href='http://www.dsplog.com/2008/07/18/iccbn-2008-july-2008-iisc-bangalore/' rel='bookmark' title='Permanent Link: ICCBN 2008, July 17-20  2008, IISc, Bangalore'>ICCBN 2008, July 17-20  2008, IISc, Bangalore</a></li><li><a href='http://www.dsplog.com/2008/12/10/dsplog-google-friendconnect/' rel='bookmark' title='Permanent Link: Join dspLog at Google FriendConnect'>Join dspLog at Google FriendConnect</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>On July30th, 2008 I had sent a <em>request for feedback</em> to 93 subscribers who have opted to <a title="Click here to receive articles in [dspLog] over email " href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1348583&amp;loc=en_US">receive articles over email</a>. As on 3rd August, I received the response from around 8 persons. Not bad, around 8.5% response. Thanks a lot for the feedback. I will summarize the response from the group and note down the action items on me.</p>
<h2>Best in <a title="[dspLog]" href="http://www.dsplog.com">[dspLog]</a></h2>
<p>The majority of the people (6) found the theoretical description to be the most useful and around 3 people found the Matlab/Octave code to be the most useful. A comment came from Mr. Eddie Maalouf who suggested that we should start encourage user participation where other engineers can help to solve technical problems etc.</p>
<p><span id="more-209"></span></p>
<h2>Worst in <a title="[dspLog]" href="http://www.dsplog.com">[dspLog]</a></h2>
<p>Two persons did not like the template and two persons felt that the theoretical description could have been made more simpler. There was also a comment that we are repeating the theoretical aspects and not going into solving problems.</p>
<h2>Suggested topics to be covered in <a title="[dspLog]" href="http://www.dsplog.com">[dspLog]</a></h2>
<p>Two persons suggested that more posts on receiver synchronization needs to be added. Two were of the opinion that more posts on OFDM and channel coding needs to be present. In general, most people commented that they wish to see more articles on the topics like MIMO, CDMA, IEEE 802.11a, 802.16, Bluetooth etc.</p>
<h2>Frequency of posting in <a title="[dspLog]" href="http://www.dsplog.com">[dspLog]</a></h2>
<p>Around 5 people were suggesting the once a week and around 2 responders were happy with once every two weeks.</p>
<h2>Other</h2>
<p><span>Need to have a community for sharing and discussing. </span></p>
<h2>Summary and Action Items</h2>
<p>1. Build a community enabling the members to express their ideas/queries and the group can share their feedback. Couple of ways of forming the community will be</p>
<ul>
<li>Build a forum in <a title="[dspLog]" href="http://www.dsplog.com">[dspLog] </a></li>
<li>Use some of the available social networking sites like FaceBook, Orkut etc</li>
</ul>
<p>I think through and update you. In the meanwhile, you can continue asking your questions <a title="Contact [dspLog]" href="http://www.dsplog.com/contact-us/">via comments and/or email</a>. If the queries are relevant, I will post both the question and my response as an individual post and solicit feedback from the group.</p>
<p>2. Write more posts on receiver synchronization.</p>
<p>3. Discuss building blocks in various specifications like IEEE 802.11a, 802.16, Bluetooth etc.</p>
<p>4. I will stick to the current template for at least the next 3-4 months (last changed in May).</p>
<p>5. I am happy that the group is fine with the 1 post per week cycle. However, I will try and increase to two posts per week.</p>
<p>Once again, thanks a lot for your feedback. If you have any more comments, kindly do let me know.</p>


<p>Related posts:<ol><li><a href='http://www.dsplog.com/2009/10/21/dsplog-turns-two-happy-birthday/' rel='bookmark' title='Permanent Link: dspLog turns two! Happy Birthday!'>dspLog turns two! Happy Birthday!</a></li><li><a href='http://www.dsplog.com/2008/07/18/iccbn-2008-july-2008-iisc-bangalore/' rel='bookmark' title='Permanent Link: ICCBN 2008, July 17-20  2008, IISc, Bangalore'>ICCBN 2008, July 17-20  2008, IISc, Bangalore</a></li><li><a href='http://www.dsplog.com/2008/12/10/dsplog-google-friendconnect/' rel='bookmark' title='Permanent Link: Join dspLog at Google FriendConnect'>Join dspLog at Google FriendConnect</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2008/08/03/feedback-summary-dsplog/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using Toeplitz matrices in MATLAB</title>
		<link>http://www.dsplog.com/2007/04/21/using-toeplitz-matrices-in-matlab/</link>
		<comments>http://www.dsplog.com/2007/04/21/using-toeplitz-matrices-in-matlab/#comments</comments>
		<pubDate>Sat, 21 Apr 2007 18:05:00 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[autocorrelation]]></category>
		<category><![CDATA[convolution]]></category>
		<category><![CDATA[crosscorrelation]]></category>
		<category><![CDATA[toeplitz]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/2007/04/21/using-toeplitz-matrices-in-matlab/</guid>
		<description><![CDATA[The definition of Toeplitz matrix from [1] is:
A  matrix is said to be Toeplitz if the elements  are determined completely by the difference .

Pictorially, if a line is drawn parallel to the main diagonal then all the elements on this line are equal.
A Toeplitz matrix is completely determined by the 1st row and [...]


Related posts:<ol><li><a href='http://www.dsplog.com/2007/05/12/polyphase-filters-for-interpolation/' rel='bookmark' title='Permanent Link: Polyphase filters for interpolation'>Polyphase filters for interpolation</a></li><li><a href='http://www.dsplog.com/2009/11/29/ber-bpsk-isi-channel-zero-forcing-equalization/' rel='bookmark' title='Permanent Link: BER for BPSK in ISI channel with Zero Forcing equalization'>BER for BPSK in ISI channel with Zero Forcing equalization</a></li><li><a href='http://www.dsplog.com/2007/07/01/example-of-cascaded-integrator-comb-filter-in-matlab/' rel='bookmark' title='Permanent Link: Example of Cascaded Integrator Comb filter in Matlab'>Example of Cascaded Integrator Comb filter in Matlab</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>The definition of Toeplitz matrix from [1] is:</p>
<p>A <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?N\mbox{x}N" border="0" alt="" align="absmiddle" /> matrix is said to be Toeplitz if the elements <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?A_{i,j}" border="0" alt="" align="absmiddle" /> are determined completely by the difference <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?i-j" border="0" alt="" align="absmiddle" />.</p>
<p><span id="more-13"></span></p>
<p>Pictorially, if a line is drawn parallel to the main diagonal then all the elements on this line are equal.</p>
<p>A Toeplitz matrix is completely determined by the 1st row and 1st column of the matrix i.e. by <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?2N-1" border="0" alt="" align="absmiddle" /> elements.</p>
<p>For example, the matrix</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?A = \left[ \begin{array}{ccc} a_{1,1} &amp; a_{1,2} &amp; a_{1,3} \\ \\ a_{2,1} &amp; a_{1,1} &amp; a_{1,2} \\ \\ a_{3,1} &amp; a_{2,1} &amp; a_{1,1}\end{array}\right]" border="0" alt="" align="absmiddle" /> is a Toeplitz matrix.</p>
<p>With this understanding, let us move on to some useful examples in Matlab where the Toeplitz matrix construction is used to implement some standard functions.</p>
<p><strong>Implementing convolution</strong></p>
<p>Convolution of two functions <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x" border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?h" border="0" alt="" align="absmiddle" /> is the sum of the product of one function with the time reversed copy of other function i.e.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x(t)\ast h(t) = \int x(\tau)h(t-\tau) d\tau" border="0" alt="" align="absmiddle" /> .</p>
<p>Typically, one can visualize implementing this using a for-loop OR use the conv() function in MATLAB. However, if you don&#8217;t want to use the conv() operator and do not want the for-loop, you can still implement convolution by as a matrix multiplication by constructing one of input as a Toeplitz matrix.</p>
<p><span style="color: #0000ff;">% implementing convolution<br />
x = [1:10]; % first sequence<br />
h = [1 1 -1 2 3 1 -1]; % second sequence</span></p>
<p><span style="color: #0000ff;">% Forming the toeplitz matrix from x<br />
% each column of the matrix stores the values of x as they slide in through the tapped</span><span style="color: #0000ff;"> delay line. </span></p>
<p><span style="color: #0000ff;">% the number of elements in the tapped delay line is equal to the number<br />
% of elements in h</span></p>
<p><span style="color: #0000ff;"><br />
xM = toeplitz([x(1) zeros(1,length(h)-1) ], [x zeros(1,length(h)-1) ]); </span></p>
<p><span style="color: #0000ff;">y1 = conv(x,h); % convolution output </span></p>
<p><span style="color: #0000ff;">y2 = h*xM; % convolution using toeplitz matrix </span></p>
<p><span style="color: #0000ff;">diff = (y2 &#8211; y1)</span></p>
<p><strong>Implementing moving average sum</strong></p>
<p>Moving average sum of stores the mean of the latest N samples i.e.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y(n) = \frac{1}{N}\sum_{k=0}^{N-1}x(n-k)" border="0" alt="" align="absmiddle" /> .</p>
<p>Infact, the N point moving average sum can be implemented as convolution of the input sequence with a matrix having N ones. Since, the operation involves convolution, the same can be implemented using a Toeplitz matrix structure for the input.</p>
<p><span style="color: #0000ff;">% implementing Moving Average sum of the latest N samples<br />
x = [1:10]; % input sequence<br />
N = 5; % number of samples to be accumulated<br />
% forming the toeplitz matrix from x<br />
% each column of the matriz stores the latest N samples<br />
xM = toeplitz([x(1) zeros(1,N-1) ], [x ]);<br />
y1 = (1/N)*sum(xM); </span></p>
<p><span style="color: #0000ff;">y2 = conv(x,ones(1,N))/N; % implementing MA as convolutions</span></p>
<p><span style="color: #0000ff;">diff = y1 &#8211; y2(1:length(x))</span></p>
<p><strong></strong></p>
<p><strong>Implementing auto correlation of the signal</strong></p>
<p>The auto-correlation of the signal <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x" border="0" alt="" align="absmiddle" /> is defined as</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R_{xx}(\tau) = x^{\ast}(-\tau) \ast x(\tau) = \int  x(t) x^\ast(t-\tau) dt" border="0" alt="" align="absmiddle" />.</p>
<p>Obviously as this involves convolution, the operation can be implemented as the product of two matrices, where one of them is a Toeplitz matrix.</p>
<p><span style="color: #0000ff;">x = cos(2*pi*1/32*[1:320]); % input sequence<br />
N = length(x) </span></p>
<p><span style="color: #0000ff;">% padded x with N-1 zeros on both sides<br />
xM = [ zeros(1,N-1) x zeros(1,N-1)];<br />
% modified x to form a toeplitx matrix. The first column of x stores<br />
% the elements of x followed by 2*N-2 zeros. The second column stores<br />
% zero followed by x followed by 2*N-1 zeros and so on&#8230;<br />
% the matrix stores x<br />
xDelay_M =[ toeplitz([x zeros(1,2*N-2)], [ x(1) zeros(1,2*N-2) ] ) ]; </span></p>
<p><span style="color: #0000ff;">y1 = xM*conj(xDelay_M);<br />
y2 = xcorr(x); </span></p>
<p><span style="color: #0000ff;">% mean square error<br />
diff = (y2-y1)*(y2-y1)&#8217;/length(y2-y1)</span></p>
<p>As can be observed, the output of the Toeplitx matrix implementation matches the xcorr() function provided in Matlab.</p>
<p><strong></strong></p>
<p><strong>Implementing cross correlation of the signal</strong></p>
<p>Once auto-correlation implementation is shown to be correct, it might be reasonably easy to extend it for the cross correlation case. The cross-correlation of two sequence <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x" border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y" border="0" alt="" align="absmiddle" />is</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?R_{xy}({\tau}) = x^{\ast}(-\tau) \ast y(\tau) = \int x(\tau) y^{\ast} (t-\tau) d\tau" border="0" alt="" align="absmiddle" />.</p>
<p>This can be implemented using the same steps performed for computing auto-correlation. However, to address the case where the size of the input sequence differ, the shorter sequence is padded with zeros.</p>
<p><span style="color: #0000ff;">x = 10*cos(2*pi*1/32*[1:320]) ;<br />
y = randn(1,310) + j*randn(1,310)<br />
nX = length(x);<br />
nY = length(y); </span></p>
<p><span style="color: #0000ff;">% when the length of x, y are different, padding the smaller matrix with<br />
% zeros<br />
m = max(nX,nY);<br />
x1 = zeros(1,m);<br />
y1 = zeros(1,m);<br />
x1(1:length(x)) = x;<br />
y1(1:length(y)) = y; </span></p>
<p><span style="color: #0000ff;">% padded x with m-1 zeros on both sides<br />
xM = [ zeros(1,m-1) x1 zeros(1,m-1)];<br />
% modified y1 to form a toeplitx matrix.<br />
yDelay_M =[ toeplitz([y1 zeros(1,2*m-2)],[ y1(1) zeros(1,2*m-2) ] ) ];<br />
op1 = xM*conj(yDelay_M); </span></p>
<p><span style="color: #0000ff;">op2 = xcorr(x,y);<br />
diff = (op1-op2)*(op1-op2)&#8217;/length(op1-op2);</span></p>
<p><strong></strong> It can be observed that the output of the xcorr() function in Matlab matches with the output from the Toeplitz implementation.</p>
<p><strong>Implementing auto-correlation of the signal delayed by D samples and the accumulated by N samples</strong></p>
<p>Typically, for identifying noisy sequence with a known periodic properties, it might be desirable to perform autocorrelation for a given delay D accumulated for given number of samples N. The operation is:</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y(k) = \sum_{n=0}^{N-1} x_{(k+n)}x^{\ast}_{(k+n+D)}" border="0" alt="" align="absmiddle" />.</p>
<p>The sequence x is converted into two Toeplitz matrices &#8211; one storing the current samples and the other storing the delayed samples. The output is computed by taking the column sum of dot product multiplication of the matrix storing the current samples with the conjugate of the delayed sample matrix.</p>
<p><span style="color: #0000ff;">ip = cos(2*pi*1/10*[1:10]); </span></p>
<p><span style="color: #0000ff;">x = [ ip ip ip ip ip zeros(1,40) ]  ; % input sequence<br />
D = 10; % delay<br />
N = 20; % accumulation </span></p>
<p><span style="color: #0000ff;">% forming the toeplitz matrix storing the delayed elements<br />
% The first D columns of the matrix is all zeros. From D+1 column onwards,<br />
% the elements on x starts sliding in. Each column is of length N<br />
xDelay_M = toeplitz([zeros(1,N) ], [zeros(1,D) x zeros(1,N-1)]); </span></p>
<p><span style="color: #0000ff;">% forming the toeplitz matrix storing the current elements<br />
% From 1st column onwards, the elements on x starts sliding in. Each column<br />
% is of length N. The last D columns are all zeros.<br />
xM = toeplitz([x(1) zeros(1,N-1) ], [x zeros(1,D + N-1)]); </span></p>
<p><span style="color: #0000ff;">% dot product of the current and the conjugate of the delayed sequence<br />
y1 = sum(conj(xDelay_M).*xM);<br />
plot(abs(y1)); </span></p>
<p>As expected it can be seen that, due to the D delayed periodicity of the input, the auto-correlation output rises and hits the plateau value at the (D+N)th sample. The autocorrelation output starts falling from the plateau value at the end of the periodic seqeunce, which in this example is the 50th sample.</p>
<p>References:</p>
<p>[1] <a href="http://www.amazon.com/Multirate-Systems-Filter-Prentice-Processing/dp/0136057187/ref=pd_sim_b_1/002-1628431-1489615">Multirate Systems And Filter Banks</a>, P. P. Vaidyanathan</p>
<p>Technorati tags: <a rel="tag" href="http://technorati.com/tags/Toeplitz%20matrix">Toeplitz matrix</a></p>


<p>Related posts:<ol><li><a href='http://www.dsplog.com/2007/05/12/polyphase-filters-for-interpolation/' rel='bookmark' title='Permanent Link: Polyphase filters for interpolation'>Polyphase filters for interpolation</a></li><li><a href='http://www.dsplog.com/2009/11/29/ber-bpsk-isi-channel-zero-forcing-equalization/' rel='bookmark' title='Permanent Link: BER for BPSK in ISI channel with Zero Forcing equalization'>BER for BPSK in ISI channel with Zero Forcing equalization</a></li><li><a href='http://www.dsplog.com/2007/07/01/example-of-cascaded-integrator-comb-filter-in-matlab/' rel='bookmark' title='Permanent Link: Example of Cascaded Integrator Comb filter in Matlab'>Example of Cascaded Integrator Comb filter in Matlab</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2007/04/21/using-toeplitz-matrices-in-matlab/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
