<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4637305716376807475</id><updated>2024-10-25T01:23:34.454-07:00</updated><category term="Ubuntu"/><category term="经典转载"/><category term="802.22"/><category term="Cognitive Radio"/><category term="DTV"/><category term="FCC"/><category term="GNU Radio Platform"/><category term="Latex"/><category term="Python programming"/><category term="Research Resource"/><category term="Software Definded Radio，经典转载"/><category term="Software Download"/><category term="Software Source"/><category term="White Space"/><category term="WinXP"/><category term="advice for phd life"/><category term="bbn_tap.cc:"/><category term="implementation"/><category term="linux"/><category term="news"/><category term="open course"/><category term="optical network"/><category term="python"/><category term="swap"/><category term="telecom"/><category term="testbed"/><category term="video"/><title type='text'>Brian&#39;s Tech Blog</title><subtitle type='html'>When life gets tough, you either get busy living or get busy dying. And I know which I would choose.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>314</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-2490458821838843771</id><published>2014-10-28T08:03:00.000-07:00</published><updated>2014-10-28T08:03:00.680-07:00</updated><title type='text'>PSoC bootloaders ZZ</title><content type='html'>eewiki.net/display/microcontroller/PSoC+Bootloaders#PSoCBootloaders-HowBootloadersWork&lt;br /&gt;
&lt;h2 id=&quot;PSoCBootloaders-CreatingPSoCBootloaders&quot; style=&quot;background-color: white; border-bottom-color: rgb(145, 150, 153); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, sans-serif; font-size: 1.6em; font-weight: normal; line-height: 1.5; margin: 2em 0px 0.5em; padding-bottom: 2px;&quot;&gt;
Creating PSoC Bootloaders&lt;/h2&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;&quot;&gt;
Cypress makes it very simple to create bootloader programs.&amp;nbsp; This section will walk through the process of creating a bootloader application in PSoC Creator 3.0 for PSoC 3, 4, and 5LP devices.&amp;nbsp; PSoC Creator 3.0 can be downloaded for free&amp;nbsp;&lt;a class=&quot;external-link&quot; href=&quot;http://www.cypress.com/psoccreator/&quot; rel=&quot;nofollow&quot; style=&quot;color: #326ca6; text-decoration: none;&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;ol style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 10px 0px 0px;&quot;&gt;
&lt;li&gt;Open PSoC Creator 3.0.&lt;/li&gt;
&lt;li&gt;Navigate to File -&amp;gt; New -&amp;gt; Project.&lt;/li&gt;
&lt;li&gt;Select Empty PSoC 3, 4, 5LP Design - whichever device family you are using.&lt;/li&gt;
&lt;li&gt;Type a descriptive name for your bootloader program in the &quot;Name&quot; field.&amp;nbsp; I usually indicate which device family I&#39;m using, which serial port I&#39;m using, and the fact that it&#39;s a bootloader.&amp;nbsp; i.e. PSoC4_UART_Bootloader&lt;/li&gt;
&lt;li&gt;Browse to whatever directory you wish to save the project in.&lt;/li&gt;
&lt;li&gt;Click the &#39;+ Advanced&#39; button.&lt;/li&gt;
&lt;li&gt;Select your specific device.&lt;/li&gt;
&lt;li&gt;Select &quot;Bootloader&quot; as the application type and click &#39;OK&#39;.&lt;/li&gt;
&lt;li&gt;PSoC Creator should bring up the schematic view.&amp;nbsp; If not, double click &quot;TopDesign.cysch&quot; from the Project Explorer window.&lt;/li&gt;
&lt;li&gt;From the Component Catalog, drag the desired communication port for your bootloader into your design.&amp;nbsp; For example, if you would like a UART-based bootloader, click and drag the UART component into your design.&lt;/li&gt;
&lt;li&gt;Double-click on your component after it has been added to the design to configure it.&amp;nbsp; Name it whatever you would like and setup your desired communication settings.&amp;nbsp; For a UART, you will need to verify the baud rate, number of data bits, parity type, number of stop bits, and flow control setting.&amp;nbsp; You will also need to change the RX and TX buffer sizes to 64 bytes if using UART.&amp;nbsp; If using I2C, you&#39;ll need to use an I2C Slave component.&amp;nbsp; You&#39;ll need to verify the slave address and data rate.&amp;nbsp; You can use any serial com you would like, or create your own custom serial com.&amp;nbsp; However, that is out of the scope of this page.&amp;nbsp; Apply any changes and click &#39;OK&#39;.&lt;/li&gt;
&lt;li&gt;From the Component Catalog, drag a Bootloader component into your design.&lt;/li&gt;
&lt;li&gt;Double-click on the Bootloader to configure it.&amp;nbsp; Name it whatever you&#39;d like.&amp;nbsp; Your com port should be available in the Communication Component drop-down.&amp;nbsp; The Wait Time defines how long the bootloader will wait for the start signal from the Host before passing control to the application program.&amp;nbsp; Multi-application bootloader is out of the scope of this page.&amp;nbsp; Every other option can be set however you wish.&amp;nbsp; I usually leave default settings.&amp;nbsp; Apply any changes and click &#39;OK&#39;.&lt;/li&gt;
&lt;li&gt;Open the .cydwr file for your project from the Project Explorer window.&amp;nbsp; Assign physical pins to your communication port.&amp;nbsp; Save and close the .cydwr file.&lt;/li&gt;
&lt;li&gt;Open the&amp;nbsp;&lt;em&gt;main.c&lt;/em&gt;&amp;nbsp;file from the Project Explorer window.&amp;nbsp; Nothing needs to be changed in&amp;nbsp;&lt;em&gt;main.c&lt;/em&gt;&amp;nbsp;for the bootloader to function properly.&amp;nbsp; You could light up an LED before starting the bootloader, if you wish, but for a simple bootloader program,&amp;nbsp;&lt;em&gt;main.c&lt;/em&gt;&amp;nbsp;can be left alone.&lt;/li&gt;
&lt;li&gt;Save and build the project.&amp;nbsp; This will create bootloader .hex and .elf files and in the Debug folder of your project directory.&amp;nbsp; These files are necessary for your Bootloadable application.&lt;br /&gt;&lt;ul style=&quot;list-style-type: disc; margin: 0px;&quot;&gt;
&lt;li&gt;For PSoC3 devices, they will be in your project directory under &amp;lt;&lt;em&gt;project name&lt;/em&gt;&amp;gt;.cydsn -&amp;gt; DP8051 -&amp;gt; DP8051_Keil_9xx -&amp;gt; Debug.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;For PSoC4 devices, they will be in your project directory under &amp;lt;&lt;em&gt;project name&lt;/em&gt;&amp;gt;.cydsn -&amp;gt; CortexM0 -&amp;gt; ARM_GCC_4xx -&amp;gt; Debug.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;For PSoC5 devices, they will be in your project directory under &amp;lt;&lt;em&gt;project name&lt;/em&gt;&amp;gt;.cydsn -&amp;gt; CortexM3 -&amp;gt; ARM_GCC_4xx -&amp;gt; Debug.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Program the bootloader to your device like you would normally program a PSoC device using Debug -&amp;gt; Program from within your bootloader project.&amp;nbsp; You can also use PSoC Programmer to program your device.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;&quot;&gt;
Congratulations!&amp;nbsp; If you completed all of these steps, you just created and flashed a bootloader to your PSoC device!&amp;nbsp; Give yourself a pat on the back...but not too hard.&amp;nbsp; We don&#39;t need anybody getting hurt.&amp;nbsp; We haven&#39;t even used our bootloader yet!&amp;nbsp; Now we need to create a Bootloadable application.&lt;/div&gt;
&lt;h2 id=&quot;PSoCBootloaders-CreatingPSoCBootloadableApplications&quot; style=&quot;background-color: white; border-bottom-color: rgb(145, 150, 153); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, sans-serif; font-size: 1.6em; font-weight: normal; line-height: 1.5; margin: 2em 0px 0.5em; padding-bottom: 2px;&quot;&gt;
Creating PSoC Bootloadable Applications&lt;/h2&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;&quot;&gt;
Cypress makes it very simple to create a bootloadable application from scratch.&amp;nbsp; This section will walk through the process of creating a bootloadable application in PSoC Creator 3.0 for PSoC 3, 4, and 5LP devices.&lt;/div&gt;
&lt;ol style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 10px 0px 0px;&quot;&gt;
&lt;li&gt;Open PSoC Creator 3.0.&lt;/li&gt;
&lt;li&gt;Navigate to File -&amp;gt; New -&amp;gt; Project.&lt;/li&gt;
&lt;li&gt;Select Empty PSoC 3, 4, 5LP Design - whichever device family your are using.&lt;/li&gt;
&lt;li&gt;Type a descriptive name for your bootloadable program in the &quot;Name&quot; field.&amp;nbsp; I usually type my application name preceded by which device family I&#39;m using, which serial port I&#39;m using, and the fact that it&#39;s bootloadable.&amp;nbsp; i.e. PSoC4_UART_Bootloadable_TempSensor.&lt;/li&gt;
&lt;li&gt;Browse to whatever directory you wish to save the project in.&lt;/li&gt;
&lt;li&gt;Click the &#39;+ Advanced&#39; button.&lt;/li&gt;
&lt;li&gt;Select your specific device.&lt;/li&gt;
&lt;li&gt;Select &quot;Bootloadable&quot; as the application type and click &#39;OK&#39;.&lt;/li&gt;
&lt;li&gt;PSoC Creator should bring up the schematic view.&amp;nbsp; If not, double click &quot;TopDesign.cysch&quot; from the Project Explorer window.&lt;/li&gt;
&lt;li&gt;Click and drag a Bootloadable component into your schematic from the Component Catalog.&amp;nbsp; Double-click the Bootloadable to configure it.&amp;nbsp; The General tab can be left alone.&amp;nbsp; Under the Dependencies tab, you will need to map the project to the bootloader .hex and .elf files you previously created.&lt;/li&gt;
&lt;li&gt;At this point you should develop your program exactly as you would any other PSoC application.&amp;nbsp; Add any components you need for your design and develop firmware in&amp;nbsp;&lt;em&gt;main.c&lt;/em&gt;&amp;nbsp;as you normally would.&lt;/li&gt;
&lt;li&gt;Save and build your bootloadable program.&amp;nbsp; Just like any normal PSoC project, building will create a program .hex file in the Debug folder of your project directory.&amp;nbsp; However, for a bootloadable project, a .cyadc file will also be generated.&amp;nbsp; This is the file needed by the&amp;nbsp;&lt;em&gt;&lt;strong&gt;Bootloader Host&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;application that actually uploads the device firmware using your bootloader.&lt;br /&gt;&lt;ul style=&quot;list-style-type: disc; margin: 0px;&quot;&gt;
&lt;li&gt;For PSoC3 devices, the .cyacd file will be in your project directory under &amp;lt;&lt;em&gt;project name&lt;/em&gt;&amp;gt;.cydsn -&amp;gt; DP8051 -&amp;gt; DP8051_Keil_9xx -&amp;gt; Debug.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;For PSoC4 devices, the .cyacd file will be in your project directory under &amp;lt;&lt;em&gt;project name&lt;/em&gt;&amp;gt;.cydsn -&amp;gt; CortexM0 -&amp;gt; ARM_GCC_4xx -&amp;gt; Debug.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;For PSoC5 devices, the .cyacd file will be in your project directory under &amp;lt;&lt;em&gt;project name&lt;/em&gt;&amp;gt;.cydsn -&amp;gt; CortexM3 -&amp;gt; ARM_GCC_4xx -&amp;gt; Debug.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;&quot;&gt;
Cheers! If you completed all of these steps, you just created a bootloadable application that can be uploaded to your device using the bootloader that you already programmed to memory.&amp;nbsp; Now we need to upload the bootloadable program using&amp;nbsp;&lt;em&gt;&lt;strong&gt;Bootloader&lt;/strong&gt;&lt;strong&gt;&amp;nbsp;Host&lt;/strong&gt;&lt;/em&gt;.&lt;/div&gt;
&lt;h2 id=&quot;PSoCBootloaders-UsingBootloaderHost&quot; style=&quot;background-color: white; border-bottom-color: rgb(145, 150, 153); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, sans-serif; font-size: 1.6em; font-weight: normal; line-height: 1.5; margin: 2em 0px 0.5em; padding-bottom: 2px;&quot;&gt;
Using&amp;nbsp;&lt;em&gt;&lt;strong&gt;Bootloader Host&lt;/strong&gt;&lt;/em&gt;&lt;/h2&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;Bootloader Host&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;is included by default in the PSoC Creator installation.&amp;nbsp; You can use this application to upload PSoC bootloadable programs to a PSoC device containing the mapped bootloader program.&amp;nbsp; This section will walk through the process of uploading a bootloadable application using&amp;nbsp;&lt;em&gt;&lt;strong&gt;Bootloader Host.&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;span class=&quot;confluence-anchor-link&quot; id=&quot;PSoCBootloaders-SerialBridge&quot;&gt;&lt;/span&gt;Bootloader Host&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;supports numerous serial communication protocols.&amp;nbsp; However, keep in mind, you will need to physically connect the target device to the PC somehow.&amp;nbsp; In many cases, the only connectivity options on a PC are USB or RS232.&amp;nbsp; You may need some sort of bridge device to actually connect your target to the PC.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-left: 30px; margin-top: 10px;&quot;&gt;
&lt;u&gt;USB / UART Bridges:&lt;/u&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 10px 0px 0px;&quot;&gt;
&lt;li style=&quot;background-image: none; list-style-type: none;&quot;&gt;&lt;ul style=&quot;list-style-type: disc; margin: 0px;&quot;&gt;
&lt;li&gt;&lt;a class=&quot;external-link&quot; href=&quot;http://www.digikey.com/product-detail/en/TTL-232R-3V3/768-1015-ND/1836393&quot; rel=&quot;nofollow&quot; style=&quot;color: #326ca6; text-decoration: none;&quot;&gt;TTL-232R-3V3&lt;/a&gt;:&amp;nbsp; This is a USB to 3.3V TTL bridge cable from FTDI.&amp;nbsp; If your bootloader uses UART, this can be used to connect the UART of your target to the USB port of a PC.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;external-link&quot; href=&quot;http://www.digikey.com/product-search/en?keywords=CYUSBS232&amp;amp;ColumnSort=1000011&amp;amp;quantity=1&quot; rel=&quot;nofollow&quot; style=&quot;color: #326ca6; text-decoration: none;&quot;&gt;CYUSBS232&lt;/a&gt;:&amp;nbsp; This kit contains a USB to RS232 bridge device that can be used to connect your target to the USB port of a PC if your bootloader uses UART.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-left: 30px; margin-top: 10px;&quot;&gt;
&lt;u&gt;USB / I2C Bridges:&lt;/u&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 10px 0px 0px;&quot;&gt;
&lt;li style=&quot;background-image: none; list-style-type: none;&quot;&gt;&lt;ul style=&quot;list-style-type: disc; margin: 0px;&quot;&gt;
&lt;li&gt;&lt;a class=&quot;external-link&quot; href=&quot;http://www.digikey.com/product-search/en?keywords=CY8CKIT-002&amp;amp;ColumnSort=1000011&amp;amp;quantity=1&quot; rel=&quot;nofollow&quot; style=&quot;color: #326ca6; text-decoration: none;&quot;&gt;CY8CKIT-002&lt;/a&gt;:&amp;nbsp; Miniprog3 can be used as a USB to I2C bridge if your bootloader uses I2C.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;external-link&quot; href=&quot;http://www.digikey.com/product-search/en?keywords=CY3240-I2USB&amp;amp;ColumnSort=1000011&amp;amp;quantity=1&quot; rel=&quot;nofollow&quot; style=&quot;color: #326ca6; text-decoration: none;&quot;&gt;CY3240-I2USB&lt;/a&gt;:&amp;nbsp; This kit contains a USB to I2C bridge device that can be used to connect your target to the USB port of a PC if your bootloader uses I2C.&lt;/li&gt;
&lt;li&gt;If using the&amp;nbsp;&lt;a class=&quot;external-link&quot; href=&quot;http://www.digikey.com/product-search/en?keywords=PSoC+Pioneer+Kit&amp;amp;ColumnSort=1000011&amp;amp;quantity=1&quot; rel=&quot;nofollow&quot; style=&quot;color: #326ca6; text-decoration: none;&quot;&gt;PSoC4 Pioneer Kit&lt;/a&gt;, the on-board PSoC5LP device can be used as a USB to I2C bridge device (no external bridge device needed for bootloading).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/2490458821838843771/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2014/10/psoc-bootloaders-zz.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/2490458821838843771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/2490458821838843771'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2014/10/psoc-bootloaders-zz.html' title='PSoC bootloaders ZZ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-3547518103573353301</id><published>2014-10-14T13:20:00.000-07:00</published><updated>2014-10-14T13:20:08.386-07:00</updated><title type='text'>Books for Embedded System Developers ZZ</title><content type='html'>&lt;a href=&quot;http://www.ganssle.com/bkreviews.htm&quot;&gt;http://www.ganssle.com/bkreviews.htm&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
Here&#39;s links to various reviews of books useful to embedded system developers. They cover subjects from firmware development to hardware. First, one shameless plug - I&#39;ve written a half dozen embedded books myself. More&amp;nbsp;&lt;a href=&quot;http://www.ganssle.com/book.htm&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;/div&gt;
&lt;table class=&quot;suggestion&quot; style=&quot;background-color: white; border-collapse: collapse; border: 5px solid blue; color: black; font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;i&gt;Suggestion: Subscribe to my free&amp;nbsp;&lt;a href=&quot;http://www.ganssle.com/tem-subunsub.html&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;newsletter&lt;/a&gt;&amp;nbsp;which often has reviews of books about embedded systems.&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#agileestimating&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Agile Estimating and Planning&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;, Mike Cohn - Valuable for anyone building software.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#Balancingagility&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Balancing Agility and Discipline&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;, Barry Boehm and Richard Turner - Agile or more disciplined?&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#Balancingagility&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#bebop&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Bebop to the Boolean Boogie&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Clive Maxfield - A fun and interesting digital design book.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#betterembedded&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;&lt;strong&gt;&lt;em&gt;Better Embedded System Software&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;, Phil Koopman - An essential introduction to all areas of building embedded systems.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;u&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#BLDPARRT&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Building Parallel, Embedded, and Real-Time Applications with Ad&lt;/a&gt;&lt;/strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;&lt;strong&gt;a&lt;/strong&gt;&lt;/a&gt;,&amp;nbsp;&lt;/em&gt;&lt;/u&gt;John McCormick, Frank SInghoff and Jerome Hugues - One of the best books on using Ada effectively in building embedded systems.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#CMMI&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;CMMI Sur&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#CMMI&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;&lt;em&gt;vival Guide&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt;, Suzanne Garcia and Richard Turner - One guide to CMMI.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#hart&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Computer Approximations&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;- The best book on approximations ever. Hart&#39;s classic book is a &quot;must have&quot;... if you can find it.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;u&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#debugging&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Debugging, David Agans&lt;/a&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/em&gt;- A well written, quick read packed with war stories. Every new grad should read this.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#digitalapollo&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Digital Apollo&lt;/a&gt;&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt;, David Mindell - An exploration of the relationship between human and computers.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#Axelson&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Embedded Ethernet and Internet Complete&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Jan Axelson - A good &quot;how to&quot; description of building internet-aware applications.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#EmbeddedLinuxPrimer&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;&lt;em&gt;Embedded Linux Primer&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt;, Christopher Hallinan - A Practical Real World Approach- A book about putting the OS into firmware.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#bldblk&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Embedded Systems Building Blocks&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Jean LaBrosse - If you believe in reuse, well, here&#39;s stuff to reuse! Also has his firmware standard.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#esdesign&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Embedded Systems Design&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;, Arnold Berger - A great intro to the embedded world, with a focus on tools. Also has good hints on selecting processors.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#embsyssec&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Embedded Systems Security&lt;/a&gt;&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt;, David and Mike Kleidermacher - Practical methods for safe and secure software systems development.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#esprimer&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;An Embedded Software Primer&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, David Simon - One of the best introductory books to embedded development around.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#sysrabb&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Embedded Systems Design using the Rabbit 3000 Microprocessor&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Kamal Hyder and Bob Perrin. - Required reading for users of the R3000, and a pretty darn good introduction to the entire realm of embedded systems development as well.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#xpex&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Extreme Programming Explained&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Kent Beck - XP is garnering waves of adherents. A very good intro to the ideas and practices.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#xprefac&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Extreme Programming Refactored&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Matt Stephens and Doug Rosenberg - An infuriating but enlightening expose of eXtreme Programming.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#fdd&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Feature-Driven Development, A Practical Guide to&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Stephen Palmer and John Felsing - A development methodology that is much more suited to most embedded efforts. Highly recommended.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;u&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#GEtransistormanual&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;The GE Transistor Manual&lt;/a&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/em&gt;. Everything about transistors, in the 1960s at least. A fascinating and fun book for EE history buffs.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#misra&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Guidelines for the Use of the C Language in Vehicle Based Software&lt;/a&gt;&lt;/em&gt;,&lt;/strong&gt;&amp;nbsp;by MISRA - This is a list of dos and don&#39;t dos for writing reliable C code. Not a book per se, but a hundred page list of rules.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#hamfrdum&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Ham Radio for Dummies&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, by Ward Silver - A great introduction for the newbies to the fascinating world of ham radio.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Hands-on XBEE Lab Manual&lt;/a&gt;&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt;, Jonathan Titus - Experiments that teach you XBEE wireless communications.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#highinteg&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;High Integrity Software&lt;/a&gt;&lt;/strong&gt;,&lt;/em&gt;&amp;nbsp;John Barnes - A fascinating description of the SPARK programming language.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#hsdesign&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;High Speed Digital Design&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Howard Johnson and Martin Graham - The best book around about high-speed issues.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#howcompdomath&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;How Computers Do Math&lt;/a&gt;,&amp;nbsp;&lt;/em&gt;&lt;/strong&gt;Clive &quot;Max&quot; Maxfield and Alvin Brown - All about the essential workings of computers.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#phoneonfire&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;If I Only Changed the Software, Why is the Phone on Fire&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;, Lisa Simone - A fast paced book, interweaving software and hardware.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#ipsp&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Introduction to the Personal Software Process&lt;/a&gt;&lt;/em&gt;,&lt;/strong&gt;&amp;nbsp;Watts Humphrey - All about the Personal Software Process.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#mathtool&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;MATH Toolkit for Real-Time Programming&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Jack Crenshaw - If you&#39;re building approximations, or trying to learn about fixed-point math, this is your bible.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#mucus&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;MicroC/OS-II, The Real Time Kernel&lt;/a&gt;&lt;/strong&gt;, Jean Labrosse -&amp;nbsp;&lt;/em&gt;The best book on real time operating systems.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#MSP430&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;MSP430 Microcontroller Basics&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;, John Davies&lt;/em&gt;&amp;nbsp;- A great book for novices, as well as experienced developers.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#ucos3&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;uC/OS-III, The Real-Time Kernel&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;,&amp;nbsp;&lt;em&gt;Jean Labrosse&lt;/em&gt;&amp;nbsp;- An entirely rewritten version of a classic.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#peerrev&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Peer Reviews in Software&lt;/a&gt;&lt;/strong&gt;,&amp;nbsp;&lt;/em&gt;Karl Wiegers - The most readable book on code inspections.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#plpware&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Peopleware&lt;/a&gt;&lt;/strong&gt;,&amp;nbsp;&lt;/em&gt;DeMarco and Lister - Perhaps one of the most important books written about being more productive in a software environment.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#psemgmt&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Principles of Software Engineering Management&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Tom Gilb - An interesting book that&#39;s essential to anyone planning to manage a software project.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#barr&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Programming Embedded Systems in C and C++&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Michael Barr - A very good intro book, with a focus on the 186 processor.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#Lamie&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Real-Time Embedded Multithreading Using ThreadX and MIPS&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Edward Lamie - A very organized book with lots of well written code that lends to an excellent presentation of the subject.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#rtime&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Real-Time UML Workshop for Embedded Systems&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Bruce Powel Douglass - A precise and engaging, humorous at times book, yet clearly focused on getting complex ideas across.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#serial&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Serial Port Complete&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Jan Axelson - A very complete reference to serial communications.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#softinsp&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Software Inspection&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Tom Gilb and Dorothy Graham - THE book on code inspections.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#softinsp&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Software Inspection&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;- An Industry Best Practice&lt;/em&gt;, IEEE Collection - A good series of papers on software inspections.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;a href=&quot;http://www.ganssle.com/books/books3.htm&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;&lt;strong&gt;&lt;em&gt;Statistics in a Nutshell&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;, Paul A Watters and Sarah Boslaugh - an ideal self study book, one of the best.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#tcplean&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;TCP/IP Lean&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Jeremy Bentham - An intro to TCP/IP.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#tdd&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Test Driven Development&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, by Kent Beck - Kent Beck&#39;s view of building the system by producing tests first - Flawed but interesting.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;u&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#tddc&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Test Driven Development for Embedded C&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;, James Grenning - hands down, the best book written on the subject.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/book.htm#ades&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;The Art of Designing Embedded Systems&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Jack Ganssle - How to go about building an embedded system, from process issues to tech ideas.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/book.htm#apes&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;The Art of Programming Embedded Systems&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Jack Ganssle - This book is now all but out of print.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#definguide&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;The Definitive Guide to the ARM Cortex-M3&lt;/a&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;,&lt;/em&gt;&amp;nbsp;Joseph Yiu. A good intro to the very popular Cortex-M3.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#digithnd&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;The Digital I/O Handbook&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, Jon Titus and Tom O&#39;Hanlan. A great introduction to a tough subject.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books1.htm#elstyle&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;The Elements of Style&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, William Strunk and E. B. White - If your comments are lousy, so&#39;s your code. Here&#39;s a short classic about writing decent comments and prose.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/book.htm#apes&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;The Embedded Systems Dictionary&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, by Jack Ganssle and Michael Barr - The only single-source of definitions of words used in our industry.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;a href=&quot;http://www.ganssle.com/books/books2.htm#ExistentialPleasures&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;&lt;em&gt;&lt;strong&gt;The Existential Pleasures of Engineering&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;, Samuel Florman - If you enjoy the philosophy of engineering, you will like this book.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;u&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#Cpointers&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Understanding and UsingC Pointers&lt;/a&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/em&gt;&lt;strong&gt;,&lt;/strong&gt;&amp;nbsp;Richard Reese - A surprisingly worthwhile new book on using C pointers&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#usb&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;USB Mass Storage&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, by Jan Axelson. The definitive guide to building memory systems using USB.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#Computerswerehuman&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;&lt;strong&gt;&lt;em&gt;When Computers Were Human&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;, David Alan Grier - Computers used to be flesh and blood.&lt;/div&gt;
&lt;div class=&quot;style1&quot; style=&quot;font-family: &#39;Times New Roman&#39;, Times, serif; font-size: 16px; line-height: 18px;&quot;&gt;
&lt;strong&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;http://www.ganssle.com/books/books3.htm#wsdevel&quot; style=&quot;color: #20505d; text-decoration: none;&quot;&gt;Writing in Software Development&lt;/a&gt;&lt;/em&gt;,&amp;nbsp;&lt;/u&gt;&lt;/strong&gt;by Al Stavely. How to create great docs with your code.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/3547518103573353301/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2014/10/books-for-embedded-system-developers-zz.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/3547518103573353301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/3547518103573353301'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2014/10/books-for-embedded-system-developers-zz.html' title='Books for Embedded System Developers ZZ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-2700431003087832602</id><published>2014-09-23T09:47:00.001-07:00</published><updated>2014-09-23T09:47:16.231-07:00</updated><title type='text'>What is a Pulse Width Modulation (PWM) Signal and What is it Used For?</title><content type='html'>&lt;a href=&quot;http://digital.ni.com/public.nsf/allkb/294E67623752656686256DB800508989&quot;&gt;http://digital.ni.com/public.nsf/allkb/294E67623752656686256DB800508989&lt;/a&gt;&lt;br /&gt;
&lt;strong style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/strong&gt;
&lt;strong style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;Hardware:&lt;/strong&gt;&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&amp;nbsp;Multifunction DAQ (MIO)&lt;/span&gt;&lt;br /&gt;
&lt;table style=&quot;background-color: white; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;linebuffer&quot; colspan=&quot;50&quot; style=&quot;padding: 0px;&quot; valign=&quot;bottom&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 100%px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;tablegbg&quot; style=&quot;background-color: #cccccc; font-size: 12px;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://digital.ni.com/images/global/us/invis.gif&quot; width=&quot;10&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot; /&gt;&lt;strong style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;Problem:&lt;/strong&gt;&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot; /&gt;&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;I have heard that I may be able to use Pulse Width Modulation for my application. What is a pulse width modulation (PWM) signal and what is it used for?&lt;/span&gt;&lt;br style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot; /&gt;&lt;br style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot; /&gt;&lt;strong style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;Solution:&lt;/strong&gt;&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot; /&gt;&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;A Pulse Width Modulation (PWM) Signal is a method for generating an analog signal using a digital source. A PWM signal consists of two main components that define its behavior: a duty cycle and a frequency. The duty cycle describes the amount of time the signal is in a high (on) state as a percentage of the total time of it takes to complete one cycle. The frequency determines how fast the PWM completes a cycle (i.e. 1000 Hz would be 1000 cycles per second), and therefore how fast it switches between high and low states. By cycling a digital signal off and on at a fast enough rate, and with a certain duty cycle, the output will appear to behave like a constant voltage analog signal when providing power to devices.&lt;/span&gt;&lt;o:p style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt; line-height: 13px;&quot;&gt;Example: To create a 3V signal given a digital source that can be either high (on) at 5V or low (off) at 0V, you can use PWM with a duty cycle of 60% which outputs 5V 60% of the time. If the digital signal is cycled fast enough, then the voltage seen at the output appears to be the average voltage. If the digital low is 0V (which is usually the case) then the average voltage can be calculated by taking the digital high voltage multiplied by the duty cycle, or 5V x 0.6 = 3V. Selecting a duty cycle of 80% would yield 4V, 20% would yield 1V, and so on.&lt;o:p style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt; line-height: 13px;&quot;&gt;PWM signals are used for a wide variety of control applications. Their main use is for controlling DC motors but it can also be used to control valves, pumps, hydraulics, and other mechanical parts. The frequency that the PWM signal needs to be set at will be dependent on the application and the response time of the system that is being powered. Below are a few applications and some typical minimum PWM frequencies required:&lt;o:p style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px; list-style-type: none; margin: 10px 0px; padding: 0px;&quot;&gt;
&lt;li style=&quot;background-image: url(http://digital.ni.com/images/global/us/bullet_nopad.gif); background-position: 3px -1px; background-repeat: no-repeat no-repeat; line-height: 1.2; margin-bottom: 6px; padding-left: 14px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt; line-height: 13px;&quot;&gt;Heating elements or systems with slow response times: 10-100 Hz or higher&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;background-image: url(http://digital.ni.com/images/global/us/bullet_nopad.gif); background-position: 3px -1px; background-repeat: no-repeat no-repeat; line-height: 1.2; margin-bottom: 6px; padding-left: 14px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt; line-height: 13px;&quot;&gt;DC electric motors: 5-10 kHz or higher&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;background-image: url(http://digital.ni.com/images/global/us/bullet_nopad.gif); background-position: 3px -1px; background-repeat: no-repeat no-repeat; line-height: 1.2; margin-bottom: 6px; padding-left: 14px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt; line-height: 13px;&quot;&gt;Power supplies or audio amplifiers: 20-200 kHz or higher&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt; line-height: 13px;&quot;&gt;&lt;u style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Note&lt;/u&gt;: Certain systems may need faster frequencies than what is listed here depending on the type of response desired.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt; line-height: 13px;&quot;&gt;&lt;br style=&quot;font-family: Arial, Helvetica, sans-serif;&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt; line-height: 13px;&quot;&gt;Below are some graphs demonstrating PWM signals with different duty cycles.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center;&quot;&gt;
&lt;img alt=&quot;&quot; height=&quot;286&quot; src=&quot;http://digital.ni.com/public.nsf/$CXIV/ATTACH-AEEE-9FMNCP/$FILE/PWM%20Graph%201%20Modified.png&quot; width=&quot;446&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center;&quot;&gt;
25% Duty Cycle&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center;&quot;&gt;
&lt;img alt=&quot;&quot; height=&quot;288&quot; src=&quot;http://digital.ni.com/public.nsf/$CXIV/ATTACH-AEEE-9FMNCZ/$FILE/PWM%20Graph%202%20Modified.png&quot; width=&quot;446&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center;&quot;&gt;
50% Duty Cycle&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center;&quot;&gt;
&lt;img alt=&quot;&quot; height=&quot;287&quot; src=&quot;http://digital.ni.com/public.nsf/$CXIV/ATTACH-AEEE-9FMND4/$FILE/PWM%20Graph%203%20Modified.png&quot; width=&quot;446&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center;&quot;&gt;
75% Duty Cycle&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;Attached is a LabVIEW program that displays the basics of pulse width modulation. This example does not use any hardware.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/2700431003087832602/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2014/09/what-is-pulse-width-modulation-pwm.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/2700431003087832602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/2700431003087832602'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2014/09/what-is-pulse-width-modulation-pwm.html' title='What is a Pulse Width Modulation (PWM) Signal and What is it Used For?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-8632599904000359803</id><published>2014-04-04T15:51:00.002-07:00</published><updated>2014-04-04T15:51:10.810-07:00</updated><title type='text'>zz Preprocessor Statements #ifdef, #else, #endif</title><content type='html'>&lt;h1&gt;
Preprocessor Statements #ifdef, #else, #endif&lt;/h1&gt;
These provide a rapid way to &quot;clip&quot; out and insert code.&lt;br /&gt;
Consider;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;     #define FIRST

     main()
     {
        int a, b, c;

#ifdef FIRST
       a=2; b=6; c=4;
#else
       printf(&quot;Enter a:&quot;);
       scanf(&quot;%d&quot;, &amp;amp;a);
     
       printf(&quot;Enter a:&quot;);
       scanf(&quot;%d&quot;, &amp;amp;a);

       printf(&quot;Enter a:&quot;);
       scanf(&quot;%d&quot;, &amp;amp;a);
#endif
       additonal code
&lt;/pre&gt;
Note that if FIRST is defined (which it is in the above) the values of a, b and c are hardcoded to values of 2, 6 and 4. This can save a lot of time when developing software as it avoids tediously typing everything in each and everytime you run your routine. When FIRST is defined, all that is passed to the compiler is the code between the #ifdef and the #else. The code between the #else and the #endif is not seen by the compiler. It is as if it were all a comment.&lt;br /&gt;
Once you have your routine working, and desire to insert the printf and scanfs, all that is required is to go back and delete the the #define FIRST. Now, the compiler does not see the;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;     a=2; b=6; c=4;
&lt;/pre&gt;
statement, but does see the printf and scanfs.&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;Quite often you will have code which doesn&#39;t work, but you really don&#39;t want to throw it away. I see many students doing this;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;/*
     unwanted code
*/
&lt;/pre&gt;
And this is acceptable. Of course a problem arises is you have a comment in the unwanted code.&lt;br /&gt;
Thus, it is better to do this&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#ifdef OLD
     unwanted code
#endif
&lt;/pre&gt;
Note that if there is no #define OLD, the unwanted code is not passed to the compiler.</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/8632599904000359803/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2014/04/zz-preprocessor-statements-ifdef-else.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/8632599904000359803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/8632599904000359803'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2014/04/zz-preprocessor-statements-ifdef-else.html' title='zz Preprocessor Statements #ifdef, #else, #endif'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-4900900847720894727</id><published>2013-10-07T08:53:00.002-07:00</published><updated>2013-10-07T08:53:39.145-07:00</updated><title type='text'>Delta-Sigma DAC</title><content type='html'>&lt;a href=&quot;http://www.maximintegrated.com/app-notes/index.mvp/id/1870&quot;&gt;http://www.maximintegrated.com/app-notes/index.mvp/id/1870&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Delta-sigma_modulation&quot;&gt;http://en.wikipedia.org/wiki/Delta-sigma_modulation&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/4900900847720894727/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2013/10/delta-sigma-dac.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/4900900847720894727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/4900900847720894727'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2013/10/delta-sigma-dac.html' title='Delta-Sigma DAC'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-7963027524073436192</id><published>2013-08-14T19:28:00.001-07:00</published><updated>2013-08-14T19:28:24.066-07:00</updated><title type='text'>Introduction to the volatile keyword ZZ</title><content type='html'>&lt;a href=&quot;http://www.embedded.com/electronics-blogs/beginner-s-corner/4023801/Introduction-to-the-Volatile-Keyword&quot;&gt;http://www.embedded.com/electronics-blogs/beginner-s-corner/4023801/Introduction-to-the-Volatile-Keyword&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/7963027524073436192/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2013/08/introduction-to-volatile-keyword-zz.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/7963027524073436192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/7963027524073436192'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2013/08/introduction-to-volatile-keyword-zz.html' title='Introduction to the volatile keyword ZZ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-2074843783274495278</id><published>2013-04-19T15:01:00.002-07:00</published><updated>2013-04-19T15:01:38.626-07:00</updated><title type='text'>Signal and Image Processing with Wavelets</title><content type='html'>&lt;a href=&quot;https://www.ceremade.dauphine.fr/~peyre/teaching/wavelets/&quot;&gt;https://www.ceremade.dauphine.fr/~peyre/teaching/wavelets/&lt;/a&gt;&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;The main reference for an indepth explanation of Wavelet processing is&lt;/span&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://www.amazon.com/gp/product/012466606X/102-4727033-4778504?n=283155&quot; style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot; target=&quot;_parent&quot;&gt;A Wavelet Tour of Signal Processing&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;Stéphane Mallat, Academic Press; 2 edition (September 15, 1999)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;Each one of these five lectures should take between 1h and 2h in order to test the various features of the scripts. One should copy/paste the provided code into a file named e.g.&lt;/span&gt;&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, mono; font-size: 16px;&quot;&gt;tp1.m&lt;/span&gt;&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;, and launch the script directly from Matlab comand line &amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, mono; font-size: 16px;&quot;&gt;tp1;&lt;/span&gt;&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;. Some of the scripts contain &quot;holes&quot; that you should try to fill on your own.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;I also provide the complete correction of these lectures as a set of&lt;/span&gt;&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.ceremade.dauphine.fr/~peyre/teaching/wavelets/matlab/&quot; style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;Matlab scripts&lt;/a&gt;&lt;span style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;, but you should try as much as possible to avoid using them.&lt;/span&gt;&lt;table align=&quot;center&quot; border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;5&quot; style=&quot;font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; margin-bottom: 0em; margin-top: 1em; width: 70%px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;right&quot;&gt;
&lt;a href=&quot;https://www.ceremade.dauphine.fr/~peyre/teaching/wavelets/tp0.html&quot;&gt;Lecture 0&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot; width=&quot;20&quot;&gt;&lt;div align=&quot;center&quot;&gt;
-&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot;&gt;Basic Matlab instructions.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot;&gt;&lt;div align=&quot;right&quot;&gt;
&lt;a href=&quot;https://www.ceremade.dauphine.fr/~peyre/teaching/wavelets/tp1.html&quot;&gt;Lecture 1&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot;&gt;&lt;div align=&quot;center&quot;&gt;
-&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot;&gt;Linear and non-linear wavelet approximation of signals.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;right&quot;&gt;
&lt;a href=&quot;https://www.ceremade.dauphine.fr/~peyre/teaching/wavelets/tp2.html&quot;&gt;Lecture 2&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot; width=&quot;20&quot;&gt;&lt;div align=&quot;center&quot;&gt;
-&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot;&gt;Linear and non-linear wavelet approximation of images.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;right&quot;&gt;
&lt;a href=&quot;https://www.ceremade.dauphine.fr/~peyre/teaching/wavelets/tp3.html&quot;&gt;Lecture 3&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot; width=&quot;20&quot;&gt;&lt;div align=&quot;center&quot;&gt;
-&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot;&gt;Denoising using filtering.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;right&quot;&gt;
&lt;a href=&quot;https://www.ceremade.dauphine.fr/~peyre/teaching/wavelets/tp4.html&quot;&gt;Lecture 4&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot; width=&quot;20&quot;&gt;&lt;div align=&quot;center&quot;&gt;
-&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot;&gt;Denoising using wavelet thresholding.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot; width=&quot;80&quot;&gt;&lt;div align=&quot;right&quot;&gt;
&lt;a href=&quot;https://www.ceremade.dauphine.fr/~peyre/teaching/wavelets/tp5.html&quot;&gt;Lecture 5&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot; width=&quot;20&quot;&gt;&lt;div align=&quot;center&quot;&gt;
-&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot;&gt;Wavelet compression of 1D signals.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot;&gt;&lt;div align=&quot;right&quot;&gt;
&lt;a href=&quot;https://www.ceremade.dauphine.fr/~peyre/teaching/wavelets/tp6.html&quot;&gt;Lecture 6&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot; width=&quot;20&quot;&gt;&lt;div align=&quot;center&quot;&gt;
-&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-width: 1px; margin: 0.25em;&quot;&gt;Image Compression.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/2074843783274495278/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2013/04/signal-and-image-processing-with.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/2074843783274495278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/2074843783274495278'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2013/04/signal-and-image-processing-with.html' title='Signal and Image Processing with Wavelets'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-4795277272478708905</id><published>2013-04-19T14:31:00.002-07:00</published><updated>2013-04-19T14:31:35.084-07:00</updated><title type='text'>Collect and plot data from an instrument in real time</title><content type='html'>&lt;br /&gt;
&lt;h1 style=&quot;background-color: white; color: #d55000; font-family: Futura, Arial, Helvetica, sans-serif; font-size: 18px; line-height: 21.600000381469727px; margin: 0px 0px 20px; padding: 0px 0px 5px;&quot;&gt;
&lt;br /&gt;&lt;/h1&gt;
&lt;div&gt;
Collect and plot data from an instrument in real time&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://www.mathworks.com/matlabcentral/fileexchange/25519-collect-and-plot-data-from-an-instrument-in-real-time&quot;&gt;http://www.mathworks.com/matlabcentral/fileexchange/25519-collect-and-plot-data-from-an-instrument-in-real-time&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Controlling Instruments and Serial Devices with MATLAB and Simulink [Webinar]&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://www.mathworks.com/company/events/webinars/wbnr30422.html&quot;&gt;https://www.mathworks.com/company/events/webinars/wbnr30422.html&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Serial Interface (RS-232 and RS-485) and MATLAB&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://www.mathworks.com/products/instrument/supported/serial.html&quot;&gt;http://www.mathworks.com/products/instrument/supported/serial.html&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/4795277272478708905/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2013/04/collect-and-plot-data-from-instrument.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/4795277272478708905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/4795277272478708905'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2013/04/collect-and-plot-data-from-instrument.html' title='Collect and plot data from an instrument in real time'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-7957323182120208079</id><published>2013-02-06T01:53:00.003-08:00</published><updated>2013-02-06T01:53:33.500-08:00</updated><title type='text'>Alamouti coding 2X1 and 2X2</title><content type='html'>&lt;a href=&quot;http://spacetimecodes.blogspot.com/p/alamouti-code.html&quot;&gt;http://spacetimecodes.blogspot.com/p/alamouti-code.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The codes:&lt;br /&gt;
&lt;a href=&quot;http://spacetimecodes.blogspot.com/p/alamouti-code-for-2-transmiters-and-1.html&quot;&gt;http://spacetimecodes.blogspot.com/p/alamouti-code-for-2-transmiters-and-1.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://spacetimecodes.blogspot.com/p/alamouti-code-2x2-matlab-code.html&quot;&gt;http://spacetimecodes.blogspot.com/p/alamouti-code-2x2-matlab-code.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/7957323182120208079/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2013/02/alamouti-coding-2x1-and-2x2.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/7957323182120208079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/7957323182120208079'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2013/02/alamouti-coding-2x1-and-2x2.html' title='Alamouti coding 2X1 and 2X2'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-5980831432680162625</id><published>2012-12-15T16:50:00.001-08:00</published><updated>2012-12-15T16:59:58.861-08:00</updated><title type='text'>DFTS-OFDM for uplink transmission in LTE (ZZ)</title><content type='html'>Today multi-carrier transmission and OFDM are means to allow for very high overall transmission bandwidth while still being robust to signal corruption due to radio-channel frequency selectivity. However, a drawback of OFDM modulation, as well as any kind of multi-carrier transmission, is the large variations in the instantaneous power of the transmitted signal. Such power variations imply a reduced power-amplifier efficiency and higher power-amplifier cost. This is especially critical for the uplink, due to the high importance of low mobile-terminal power consumption and cost. Several methods have been proposed on how to reduce the large power variations of an OFDM signal. However, most of these methods have limitations in terms of to what extent the power variations can be reduced. Furthermore, most of the methods also imply a significant computational complexity and/or a reduced link performance. Thus, there is an interest to consider also wider-band single-carrier transmission as an alternative to multi-carrier transmission, especially for the uplink, i.e. for mobile-terminal transmission. One of such single-carrier transmission scheme can be implemented using DFT-spread OFDM &lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
DFT-spread OFDM (DFTS-OFDM) is a transmission scheme that can combine the desired properties for uplink transmission i.e. :&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
• Small variations in the instantaneous power of the transmitted signal (‘single carrier’ property).&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
• Possibility for low-complexity high-quality equalization in the frequency domain.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
• Possibility for FDMA with flexible bandwidth assignment.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Due to these properties, DFTS-OFDM has been selected as the uplink transmission scheme for LTE, which is the long-term 3G evolution.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;DFTS-OFDM signal generation&quot; class=&quot;size-full wp-image-75&quot; originalw=&quot;549&quot; scale=&quot;1.5&quot; src=&quot;http://wirelesscafe.files.wordpress.com/2009/04/dts-fdma.jpg?w=549&quot; style=&quot;background-color: #393939; border: 0px; color: #b8babb; font-family: Helvetica, Arial, sans-serif; font-size: 12px; height: auto; line-height: 19.200000762939453px; margin: 0px; max-width: 100%; padding: 0px; text-align: center; vertical-align: baseline;&quot; title=&quot;DFTS-OFDM signal generation&quot; /&gt;&lt;br /&gt;
&lt;img alt=&quot;PAR distribution for OFDM and DFTS-OFDM, respectively. &quot; class=&quot;size-full wp-image-76&quot; originalw=&quot;549&quot; scale=&quot;1.5&quot; src-orig=&quot;http://wirelesscafe.files.wordpress.com/2009/04/par-for-ofdm-and-ds-fdma.jpg?w=549&quot; src=&quot;http://wirelesscafe.files.wordpress.com/2009/04/par-for-ofdm-and-ds-fdma.jpg?w=762&quot; style=&quot;background-color: #393939; border: 0px; color: #b8babb; font-family: Helvetica, Arial, sans-serif; font-size: 12px; height: auto; line-height: 19.200000762939453px; margin: 0px; max-width: 100%; padding: 0px; text-align: center; vertical-align: baseline;&quot; title=&quot;par-for-ofdm-and-ds-fdma&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
More detail can be accessed from here:&lt;br /&gt;
http://wirelesscafe.wordpress.com/2009/04/07/what-is-single-carrier-fdma-sc-fdma/&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/5980831432680162625/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/12/dfts-ofdm-for-uplink-transmission-in.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/5980831432680162625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/5980831432680162625'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/12/dfts-ofdm-for-uplink-transmission-in.html' title='DFTS-OFDM for uplink transmission in LTE (ZZ)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-3567192887172727864</id><published>2012-12-03T17:16:00.001-08:00</published><updated>2012-12-03T17:16:59.689-08:00</updated><title type='text'>How to calculate/plot confidence interval</title><content type='html'>http://people.richland.edu/james/lecture/m170/ch08-int.html</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/3567192887172727864/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/12/how-to-calculateplot-confidence-interval.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/3567192887172727864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/3567192887172727864'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/12/how-to-calculateplot-confidence-interval.html' title='How to calculate/plot confidence interval'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-6037787230983697693</id><published>2012-10-08T14:55:00.001-07:00</published><updated>2012-10-08T14:55:45.076-07:00</updated><title type='text'>Matlab &quot;Out of Memory&quot;</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;&quot;&gt;&lt;em style=&quot;color: black; font-style: normal; font-weight: bold;&quot;&gt;If you are using 32 bits Window XP, Vista and Window 7, the default memory loaded in Matlab is 2GB.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;&quot;&gt;&lt;em style=&quot;color: black; font-style: normal; font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;&quot;&gt;&lt;em style=&quot;color: black; font-style: normal; font-weight: bold;&quot;&gt;You can try to extend it by using the following:&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;&quot;&gt;&lt;em style=&quot;color: black; font-style: normal; font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;&quot;&gt;&lt;em style=&quot;color: black; font-style: normal; font-weight: bold;&quot;&gt;1) Run the command in administrator:&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;&quot;&gt;&lt;em style=&quot;color: black; font-style: normal; font-weight: bold;&quot;&gt;2) &amp;gt;&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;&quot;&gt;&lt;em style=&quot;color: black; font-style: normal; font-weight: bold;&quot;&gt;BCDEdit&lt;/em&gt;&amp;nbsp;/&lt;wbr&gt;&lt;/wbr&gt;set increaseuserva 3072&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;&quot;&gt;Restart the computer and matlab.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/6037787230983697693/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/10/matlab-out-of-memory.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/6037787230983697693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/6037787230983697693'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/10/matlab-out-of-memory.html' title='Matlab &quot;Out of Memory&quot;'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-3269922819439702784</id><published>2012-09-06T14:55:00.002-07:00</published><updated>2012-09-06T14:55:12.103-07:00</updated><title type='text'>MWD wireless telemetry system by Dr. Liu@UH</title><content type='html'>&lt;a href=&quot;http://www.epmag.com/EP-Magazine/archive/MWD-telemetry-low-cost-radios_5675&quot;&gt;http://www.epmag.com/EP-Magazine/archive/MWD-telemetry-low-cost-radios_5675&lt;/a&gt;
</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/3269922819439702784/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/09/mwd-wireless-telemetry-system-by-dr.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/3269922819439702784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/3269922819439702784'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/09/mwd-wireless-telemetry-system-by-dr.html' title='MWD wireless telemetry system by Dr. Liu@UH'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-6004899601320877123</id><published>2012-09-04T17:43:00.001-07:00</published><updated>2012-09-04T17:57:36.210-07:00</updated><title type='text'>Channel estimation in MIMO-OFDM</title><content type='html'>Wireless LAN Comes of Age:Understanding theIEEE 802.11n Amendment&lt;br /&gt;
by Thomas Paul and Tokunbo Ogunfunmi&lt;br /&gt;
&lt;br /&gt;
published in IEEE circuits and systems magazine&lt;br /&gt;
Tutorial for WLAN design (including 802.11n, 802.11ac)&lt;br /&gt;
&lt;br /&gt;
Check&amp;nbsp;Section III. 2.5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, some tutorial on least square estimation techniques, which is used to derive the results in channel estimation.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.stat.math.ethz.ch/~geer/bsa199_o.pdf&quot;&gt;http://www.stat.math.ethz.ch/~geer/bsa199_o.pdf&lt;/a&gt;
</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/6004899601320877123/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/09/channel-estimation-in-mimo-ofdm.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/6004899601320877123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/6004899601320877123'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/09/channel-estimation-in-mimo-ofdm.html' title='Channel estimation in MIMO-OFDM'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-1205017014623127141</id><published>2012-09-03T19:02:00.001-07:00</published><updated>2012-09-03T19:02:54.139-07:00</updated><title type='text'>Window Phone 7 programming</title><content type='html'>A very nice step-to-step tutorial for Window Phone 7 Development.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://channel9.msdn.com/Series/Windows-Phone-7-Development-for-Absolute-Beginners&quot;&gt;http://channel9.msdn.com/Series/Windows-Phone-7-Development-for-Absolute-Beginners&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://channel9.msdn.com/blogs/egibson/windows-phone-7-jump-start-session-1-of-12-introduction&quot;&gt;http://channel9.msdn.com/blogs/egibson/windows-phone-7-jump-start-session-1-of-12-introduction&lt;/a&gt;
</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/1205017014623127141/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/09/window-phone-7-programming.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/1205017014623127141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/1205017014623127141'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/09/window-phone-7-programming.html' title='Window Phone 7 programming'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-7897369488657861876</id><published>2012-08-17T01:52:00.002-07:00</published><updated>2012-08-17T01:52:40.547-07:00</updated><title type='text'>Write Your Own Module in GNU Radio ZZ</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #404040; font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(218, 218, 218); border-bottom-style: solid; border-bottom-width: 4px; color: #4088b8; font-size: 1.2em; letter-spacing: -1px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 2px; padding-left: 5px; padding-right: 2px; padding-top: 0px;&quot;&gt;
Burn Firmware and FPGA&lt;/h2&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #404040; font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; margin-left: 10px;&quot;&gt;
To connect USRP2 to an external clock, you need to change the firmware and FPGA code on the SD Card&lt;/div&gt;
&lt;ul style=&quot;font-size: 1em; margin-bottom: 0px; margin-left: 18px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;ol style=&quot;font-size: 1em; margin-bottom: 0px; margin-left: 18px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; type=&quot;1&quot;&gt;
&lt;li&gt;Insert the SD card into the card reader&lt;/li&gt;
&lt;li&gt;Use &quot;dmesg&quot; command to check which interface is in use. The following is an example output in my machine, where the SC card is installed in /dev/sdc&lt;/li&gt;
&lt;code style=&quot;background-attachment: initial; background-clip: initial; background-color: #f0f5fa; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; display: block; font: normal normal normal 0.85em/1.3em Verdana, &#39;courier new&#39;, monospace; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;$ dmesg&lt;br /&gt;sd 4:0:0:1: [sdc] 3878912 512-byte logical blocks: (1.98 GB/1.84 GiB)&lt;br /&gt;sd 4:0:0:1: [sdc] Assuming drive cache: write through&lt;br /&gt;sd 4:0:0:1: [sdc] Assuming drive cache: write through&lt;br /&gt;sdc: unknown partition table&lt;/code&gt;
&lt;li&gt;Run&lt;code style=&quot;background-attachment: initial; background-clip: initial; background-color: #f0f5fa; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; display: block; font: normal normal normal 0.85em/1.3em Verdana, &#39;courier new&#39;, monospace; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;$ cd gnuratio/usrp2/firmware/&lt;br /&gt;$ sudo ./u2_flash_tool --dev=/dev/XXXX -t s/w txrx.bin -w&lt;br /&gt;$ sudo ./u2_flash_tool --dev=/dev/XXXX -t fpga u2_rev3-20100603.bin -w&amp;nbsp;&lt;/code&gt;Be careful: /dev/XXXX has to be replaced with the device for the SD card reader.&lt;/li&gt;
&lt;li&gt;Insert the SD card to USRP2 and reboot USRP2. If your SD card is upgraded successfully, you should see all 6 LEDs flash, and LED &#39;D&#39; and &#39;F&#39; will remain on. If not, the card is not upgraded properly.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;NOTE:&amp;nbsp;&lt;/b&gt;Note that these firmware and FPGA codes work only when the external clock is in use. Otherwise, the USRPs behavior is unpredictable.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #404040; font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #404040; font-family: Verdana, Tahoma, Arial, sans-serif; line-height: 24px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(218, 218, 218); border-bottom-style: solid; border-bottom-width: 4px; color: #4088b8; letter-spacing: -1px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 2px; padding-left: 5px; padding-right: 2px; padding-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;http://nms.citi.sinica.edu.tw/n+/software.html&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #404040; font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #404040; font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(218, 218, 218); border-bottom-style: solid; border-bottom-width: 4px; color: #4088b8; font-size: 1.2em; letter-spacing: -1px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 2px; padding-left: 5px; padding-right: 2px; padding-top: 0px;&quot;&gt;
Write Your Own Module&lt;/h2&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #404040; font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; margin-left: 10px;&quot;&gt;
To create your own python module, you will need to write the python script (.py files), C library (.cc files), and the swig file (.i file). The simplest way to create a new module is to copy the existing module and modify it to what you want. We suggest modifying the &#39;mimo_ofdm_siso&#39; module because it provides the most basic functionality so that you can build your own functions on top of it. In the following, we use modifying &#39;mimo_ofdm_siso&#39; as the example to demonstrate how to create a new module, called &#39;mimo_ofdm_new&#39;.&lt;/div&gt;
&lt;ul style=&quot;font-size: 1em; margin-bottom: 0px; margin-left: 18px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;ol style=&quot;font-size: 1em; margin-bottom: 0px; margin-left: 18px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;li&gt;Create python files&lt;code style=&quot;background-attachment: initial; background-clip: initial; background-color: #f0f5fa; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; display: block; font: normal normal normal 0.85em/1.3em Verdana, &#39;courier new&#39;, monospace; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;$ cd gr-mimo/python/&lt;br /&gt;$ cp mimo_usrp2_ofdm_receiver_siso.py mimo_usrp2_ofdm_receiver_new.py&lt;br /&gt;$ ln -sf mimo_usrp2_ofdm_receiver_new.py mimo_usrp2_ofdm_receiver.py&amp;nbsp;&lt;/code&gt;Edit &#39;mimo_usrp2_ofdm_receiver_new.py&#39; and replace all strings &quot;_siso&quot; with &quot;_new&quot;. You might need to make other modifications if you want to create a module with a different number of input ports and output ports.&lt;div style=&quot;margin-bottom: 18px; margin-left: 10px;&quot;&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Create C library&lt;code style=&quot;background-attachment: initial; background-clip: initial; background-color: #f0f5fa; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; display: block; font: normal normal normal 0.85em/1.3em Verdana, &#39;courier new&#39;, monospace; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;$ cd ../lib/&lt;br /&gt;$ cp mimo_ofdm_siso.cc mimo_ofdm_new.cc&lt;br /&gt;$ cp mimo_ofdm_siso.h mimo_ofdm_new.h&lt;/code&gt;Edit &#39;mimo_ofdm_new.cc&#39; and &#39;mimo_ofdm_new.h&#39;, and replace all strings &quot;_siso&quot; and &quot;_SISO&quot; to &quot;_new&quot; and &quot;_NEW&quot;, respectively. Modify the makefile &#39;Makefile.am&#39;. Add &quot;mimo_ofdm_new.h&quot; under the tag &quot;modinclude_HEADERS =&quot;, and add &quot;mimo_ofdm_new.cc&quot; under the tag &quot;libgnuradio_mimo_la_SOURCES =&quot;.&lt;div style=&quot;margin-bottom: 18px; margin-left: 10px;&quot;&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Create .i file&lt;code style=&quot;background-attachment: initial; background-clip: initial; background-color: #f0f5fa; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; display: block; font: normal normal normal 0.85em/1.3em Verdana, &#39;courier new&#39;, monospace; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;$ cd ../swig/&lt;br /&gt;$ cp mimo_ofdm_siso.i mimo_ofdm_new.i&lt;/code&gt;Edit &#39;mimo_ofdm_new.i&#39;, and replace all strings &quot;_siso&quot; with &quot;_new&quot;.&lt;br /&gt;&lt;br /&gt;Add the following two lines in &#39;mimo.i&#39;.&lt;code style=&quot;background-attachment: initial; background-clip: initial; background-color: #f0f5fa; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; display: block; font: normal normal normal 0.85em/1.3em Verdana, &#39;courier new&#39;, monospace; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;#include &quot;mimo_ofdm_new.h&quot;&lt;br /&gt;%include &quot;mimo_ofdm_new.i&quot;&lt;/code&gt;Modify the makefile &#39;Makefile.am&#39;. Add &quot;mimo_ofdm_new.i&quot; under the tag &quot;mimo_swiginclude_headers =&quot;.&lt;div style=&quot;margin-bottom: 18px; margin-left: 10px;&quot;&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Re-build&lt;code style=&quot;background-attachment: initial; background-clip: initial; background-color: #f0f5fa; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; display: block; font: normal normal normal 0.85em/1.3em Verdana, &#39;courier new&#39;, monospace; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;$ cd ../&lt;br /&gt;$ make; sudo make install&lt;/code&gt;&lt;div style=&quot;margin-bottom: 18px; margin-left: 10px;&quot;&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Create the new transmitter code&lt;code style=&quot;background-attachment: initial; background-clip: initial; background-color: #f0f5fa; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; display: block; font: normal normal normal 0.85em/1.3em Verdana, &#39;courier new&#39;, monospace; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;$ cd gnuradio/usrp2/host/apps/&lt;br /&gt;$ cp mimo_siso_tx1.cc mimo_new.cc&lt;/code&gt;Add &quot;mimo_new.cc&quot; in &#39;Makefile.am&#39;, and reinstall&lt;code style=&quot;background-attachment: initial; background-clip: initial; background-color: #f0f5fa; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; display: block; font: normal normal normal 0.85em/1.3em Verdana, &#39;courier new&#39;, monospace; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;$ make; sudo make install&lt;/code&gt;&lt;div style=&quot;margin-bottom: 18px; margin-left: 10px;&quot;&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Run the example&lt;br /&gt;In the receiver,&lt;code style=&quot;background-attachment: initial; background-clip: initial; background-color: #f0f5fa; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; display: block; font: normal normal normal 0.85em/1.3em Verdana, &#39;courier new&#39;, monospace; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;$ cd gr-mimo/python&lt;br /&gt;$ sudo ./mimo_usrp2_rx.py -f 2.45G -d 64 -e eth0 --rx_ant_num 1 -v&lt;/code&gt;In the transmitter,&lt;code style=&quot;background-attachment: initial; background-clip: initial; background-color: #f0f5fa; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; display: block; font: normal normal normal 0.85em/1.3em Verdana, &#39;courier new&#39;, monospace; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left;&quot;&gt;$ cd source/&lt;br /&gt;$ sudo mimo_new -f 2.45G -i 64 -e eth1 -v&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ul&gt;
&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/7897369488657861876/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/08/write-your-own-module-in-gnu-radio-zz.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/7897369488657861876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/7897369488657861876'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/08/write-your-own-module-in-gnu-radio-zz.html' title='Write Your Own Module in GNU Radio ZZ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-4378546408306234533</id><published>2012-07-27T22:52:00.004-07:00</published><updated>2012-07-27T22:52:34.091-07:00</updated><title type='text'>SC-FDMA vs OFDMA</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/SC-FDMA&quot;&gt;http://en.wikipedia.org/wiki/SC-FDMA&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
SC-FDMA has drawn great attention as an attractive alternative to&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://en.wikipedia.org/wiki/OFDMA&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;OFDMA&quot;&gt;OFDMA&lt;/a&gt;, especially in the uplink communications where lower PAPR greatly benefits the mobile terminal in terms of transmit power efficiency and terminal costs. It has been adopted as the uplink multiple access scheme in&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://en.wikipedia.org/wiki/3GPP_Long_Term_Evolution&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;3GPP Long Term Evolution&quot;&gt;3GPP Long Term Evolution&lt;/a&gt;&amp;nbsp;(LTE), or Evolved UTRA.&lt;sup class=&quot;reference&quot; id=&quot;cite_ref-2&quot; style=&quot;font-style: normal; line-height: 1em;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/SC-FDMA#cite_note-2&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none; white-space: nowrap;&quot;&gt;&lt;span&gt;[&lt;/span&gt;3&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;sup class=&quot;reference&quot; id=&quot;cite_ref-3&quot; style=&quot;font-style: normal; line-height: 1em;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/SC-FDMA#cite_note-3&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none; white-space: nowrap;&quot;&gt;&lt;span&gt;[&lt;/span&gt;4&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;sup class=&quot;reference&quot; id=&quot;cite_ref-4&quot; style=&quot;font-style: normal; line-height: 1em;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/SC-FDMA#cite_note-4&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none; white-space: nowrap;&quot;&gt;&lt;span&gt;[&lt;/span&gt;5&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
The performance of SC-FDMA, in relation to OFDMA has been the subject of various studies.&lt;sup class=&quot;reference&quot; id=&quot;cite_ref-5&quot; style=&quot;font-style: normal; line-height: 1em;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/SC-FDMA#cite_note-5&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none; white-space: nowrap;&quot;&gt;&lt;span&gt;[&lt;/span&gt;6&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;sup class=&quot;reference&quot; id=&quot;cite_ref-6&quot; style=&quot;font-style: normal; line-height: 1em;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/SC-FDMA#cite_note-6&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none; white-space: nowrap;&quot;&gt;&lt;span&gt;[&lt;/span&gt;7&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;sup class=&quot;reference&quot; id=&quot;cite_ref-7&quot; style=&quot;font-style: normal; line-height: 1em;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/SC-FDMA#cite_note-7&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none; white-space: nowrap;&quot;&gt;&lt;span&gt;[&lt;/span&gt;8&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&amp;nbsp;Although the performance gap is not much, SC-FDMA&#39;s additional advantage of low PAPR makes it a favorite especially for uplink wireless transmission in future mobile communication systems where transmitter power efficiency is of paramount importance.&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
Different transmitters (users) are assigned different Fourier coefficients. This assignment is carried out in the mapping and demapping blocks. The receiver side includes one demapping block, one IDFT block and one detection block for each user signal to be received.&lt;/div&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
&lt;a class=&quot;image&quot; href=&quot;http://en.wikipedia.org/wiki/File:SC-FDMA.svg&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot;&gt;&lt;img alt=&quot;SC-FDMA.svg&quot; height=&quot;379&quot; src=&quot;http://upload.wikimedia.org/wikipedia/en/thumb/b/bc/SC-FDMA.svg/750px-SC-FDMA.svg.png&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; vertical-align: middle;&quot; width=&quot;750&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/4378546408306234533/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/07/sc-fdma-vs-ofdma.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/4378546408306234533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/4378546408306234533'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/07/sc-fdma-vs-ofdma.html' title='SC-FDMA vs OFDMA'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-1312222426232765419</id><published>2012-07-10T16:04:00.001-07:00</published><updated>2012-10-09T17:21:37.133-07:00</updated><title type='text'>Updated GNU Radio tutorial</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: arial, sans-serif; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;[0]&amp;nbsp;&lt;a href=&quot;http://gnuradio.org/redmine/projects/gnuradio/wiki/TutorialsWritePythonApplications&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;http://gnuradio.org/redmine/&lt;wbr&gt;&lt;/wbr&gt;projects/gnuradio/wiki/&lt;wbr&gt;&lt;/wbr&gt;TutorialsWritePythonApplicatio&lt;wbr&gt;&lt;/wbr&gt;ns&lt;/a&gt;&lt;br /&gt;[1]&amp;nbsp;&lt;a href=&quot;http://gnuradio.org/redmine/projects/gnuradio/wiki/BlocksCodingGuide&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;http://gnuradio.org/redmine/&lt;wbr&gt;&lt;/wbr&gt;projects/gnuradio/wiki/&lt;wbr&gt;&lt;/wbr&gt;BlocksCodingGuide&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: arial, sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: arial, sans-serif; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;and GRC docs, Doxgyen &amp;amp; Sphinx and a lot other goodies&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: arial, sans-serif; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: arial, sans-serif; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: arial, sans-serif; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: arial, sans-serif; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;&lt;a href=&quot;http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModules&quot;&gt;http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModules&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/1312222426232765419/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/07/updated-gnu-radio-tutorial.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/1312222426232765419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/1312222426232765419'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/07/updated-gnu-radio-tutorial.html' title='Updated GNU Radio tutorial'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-7425530470035279172</id><published>2012-06-29T12:32:00.002-07:00</published><updated>2012-06-29T12:32:29.005-07:00</updated><title type='text'>millimeter wave propagation study</title><content type='html'>Dr.&amp;nbsp;Theodore (Ted) S. Rappaport&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #572d62; color: #3c3c34; font-family: verdana; font-size: 13px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2 style=&quot;color: #3c3c34; font-size: 14px; font-weight: bold; margin-bottom: 0px; margin-top: 0px;&quot;&gt;
Latest research in millimeter wave cellular propagation and broadband communications using adaptive antennas – 5th Generation Cellular&lt;/h2&gt;
&lt;br /&gt;
&lt;a href=&quot;http://faculty.poly.edu/~tsr/&quot;&gt;http://faculty.poly.edu/~tsr/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/7425530470035279172/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/06/millimeter-wave-propagation-study.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/7425530470035279172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/7425530470035279172'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/06/millimeter-wave-propagation-study.html' title='millimeter wave propagation study'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-6458208359887672719</id><published>2012-05-28T10:01:00.000-07:00</published><updated>2012-05-28T10:02:58.536-07:00</updated><title type='text'>port usrp1 code to usrp2 (zz)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #29303b; font-family: Georgia, Verdana, Arial, serif; font-size: 12px; line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;b&gt;from &quot;The SDR blog&quot;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
This is by no means a complete list, and I will be updating it as I find more of them…&lt;/div&gt;
&lt;ul style=&quot;list-style-type: none; margin-left: 0px; padding-left: 45px;&quot;&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://s2.wp.com/wp-content/themes/pub/connections/img/bullet.gif); background-origin: initial; background-position: 0px 7px; background-repeat: no-repeat no-repeat; padding-left: 1.5em;&quot;&gt;import usrp2&lt;/li&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://s2.wp.com/wp-content/themes/pub/connections/img/bullet.gif); background-origin: initial; background-position: 0px 7px; background-repeat: no-repeat no-repeat; padding-left: 1.5em;&quot;&gt;usrp.source_c() becomes usrp2.source_32fc(“eth0″, “”)&lt;/li&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://s2.wp.com/wp-content/themes/pub/connections/img/bullet.gif); background-origin: initial; background-position: 0px 7px; background-repeat: no-repeat no-repeat; padding-left: 1.5em;&quot;&gt;adc_rate is 100MS/s instead of 64MS/s, multiply decimation with ~1.5&lt;/li&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://s2.wp.com/wp-content/themes/pub/connections/img/bullet.gif); background-origin: initial; background-position: 0px 7px; background-repeat: no-repeat no-repeat; padding-left: 1.5em;&quot;&gt;set_decim_rate() becomes set_decim()&lt;/li&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://s2.wp.com/wp-content/themes/pub/connections/img/bullet.gif); background-origin: initial; background-position: 0px 7px; background-repeat: no-repeat no-repeat; padding-left: 1.5em;&quot;&gt;remove all “subdev”-related code&lt;br /&gt;subdev.gain_range() becomes usrp2.gain_range()&lt;br /&gt;subdev.set_gain() becomes usrp2.set_gain()&lt;/li&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://s2.wp.com/wp-content/themes/pub/connections/img/bullet.gif); background-origin: initial; background-position: 0px 7px; background-repeat: no-repeat no-repeat; padding-left: 1.5em;&quot;&gt;usrp.tune() becomes usrp2.set_center_freq()&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
////////////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://old.nabble.com/Modifications-in-benchmark_rx.py-for-USRP2-td22234620.html&quot;&gt;http://old.nabble.com/Modifications-in-benchmark_rx.py-for-USRP2-td22234620.html&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/6458208359887672719/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/05/port-usrp1-code-to-usrp2-zz.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/6458208359887672719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/6458208359887672719'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/05/port-usrp1-code-to-usrp2-zz.html' title='port usrp1 code to usrp2 (zz)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-2066383022712961274</id><published>2012-05-25T16:15:00.001-07:00</published><updated>2012-05-25T16:15:26.661-07:00</updated><title type='text'>Free e-Books (ZZ)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: Georgia, serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div id=&quot;toptitle&quot; style=&quot;border-bottom-color: gray; border-bottom-style: double; border-bottom-width: 3px; margin-bottom: 1.5em; padding-bottom: 0.2em;&quot;&gt;
&lt;h1 style=&quot;border-bottom-color: initial; border-bottom-style: none; border-bottom-width: initial; color: #527bbd; font-size: 26px; line-height: 1; margin-bottom: 0em; margin-top: 0.5em; padding-bottom: 0.1em; padding-top: 0px;&quot;&gt;
Free e-Books&lt;/h1&gt;
&lt;/div&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: #527bbd; font-size: 20px; line-height: 1; margin-bottom: 0.3em; margin-top: -0.7em; padding-bottom: 0.2em; padding-top: 0.8em;&quot;&gt;
&lt;i&gt;NOW Foundations and Trends® Books&lt;/i&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
F. Baccelli and B. Blaszczyszyn,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://hal.inria.fr/inria-00403040&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Stochastic Geometry and Wireless Networks, Volume 2: Applications&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Networking, vol. 4, no. 1-2&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
F. Baccelli and B. Blaszczyszyn,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://hal.inria.fr/inria-00403039&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Stochastic Geometry and Wireless Networks, Volume 1: Theory&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Networking, vol. 3, no. 3-4&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
M. Haenggi and R. K. Ganti,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.nd.edu/~mhaenggi/pubs/now.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Interference in Large Wireless Networks&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Networking, vol. 3, no. 2&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
D. Shah,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.mit.edu/~devavrat/GossipBook.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Gossip Algorithms&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Networking, vol. 3, no. 1&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
M. Chiang, P. Hande, T. Lan, and C. W. Tan,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.princeton.edu/~chiangm/powercontrol.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Power Control in Wireless Cellular Networks&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Networking, vol. 2, no. 4&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
S. Shakkottai and R. Srikant,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.ifp.uiuc.edu/~srikant/Papers/shasri07.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Network Optimization and Control&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Networking, vol. 2, no. 3&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
C. Fragouli and E. Soljanin,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://arni.epfl.ch/contents/courses/monoII.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Network Coding Applications&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Networking, vol. 2, no. 2&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
C. Fragouli and E. Soljanin,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://arni.epfl.ch/contents/courses/monoI.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Network Coding Fundamentals&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Networking, vol. 2, no. 1&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
G. Kramer, I. Maric, and R. Yates,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://cm.bell-labs.com/cm/ms/who/gkr/Papers/kmyNOW07.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Cooperative Communications&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Networking, vol. 1, no. 3-4&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
F. Xue and P. R. Kumar,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;https://netfiles.uiuc.edu/prkumar/www/ps_files/06-07-18-scaling-laws.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Scaling Laws for Ad Hoc Wireless Networks: An Information Theoretic Approach&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Networking, vol. 1, no. 2&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
L. Georgiadis, M. J. Neely, and L. Tassiulas,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.nowpublishers.com/product.aspx?product=NET&amp;amp;doi=1300000001&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Resource Allocation and Cross-Layer Control in Wireless Networks&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Networking, vol. 1, no. 1&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
A. M. Tulino and S. Verdu,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.nowpublishers.com/product.aspx?product=CIT&amp;amp;doi=0100000001&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Random Matrix Theory and Wireless Communications&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Communications and Information Theory, vol. 1, no. 1&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
M. J. Wainwright and M. I. Jordan,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.nowpublishers.com/product.aspx?product=MAL&amp;amp;doi=2200000001&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Graphical Models, Exponential Families, and Variational Inference&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;FnT in Machine Learning, vol. 1, no. 1-2&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: #527bbd; font-size: 20px; line-height: 1; margin-bottom: 0.3em; margin-top: 0.7em; padding-bottom: 0.2em; padding-top: 0.8em;&quot;&gt;
&lt;i&gt;Information and Communication Theory&lt;/i&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
D. J. C. MacKay,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.inference.phy.cam.ac.uk/mackay/itila/book.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Information Theory, Inference, and Learning Algorithms&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
M. Mezard and A. Montanari,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.stanford.edu/~montanar/RESEARCH/book.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Information, Physics, and Computation&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
C. E. Shannon,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://cm.bell-labs.com/cm/ms/what/shannonday/paper.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;A Mathematical Theory of Communication&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
D. Tse and P. Viswanath,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.ifp.uiuc.edu/~pramodv/book.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Fundamentals of Wireless Communication&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: #527bbd; font-size: 20px; line-height: 1; margin-bottom: 0.3em; margin-top: 0.7em; padding-bottom: 0.2em; padding-top: 0.8em;&quot;&gt;
&lt;i&gt;Networking Theory&lt;/i&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
M. Bramson,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.math.umn.edu/~bramson/docs/Stability_of_Queueing_Networks.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Stability of Queueing Networks&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
B. Hajek,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.ifp.uiuc.edu/~hajek/Papers/networkanalysis.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Analysis of Computer Networks&lt;/a&gt;”&lt;/i&gt;&amp;nbsp;(Notes for ECE567)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
V. B. Iversen,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;https://www.itu.int/ITU-D/study_groups/SGP_1998-2002/SG2/StudyQuestions/Question_16/RapporteursGroupDocs/teletraffic.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Teletraffic Engineering Handbook&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
F. P. Kelly,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.statslab.cam.ac.uk/~frank/rsn.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Reversibility and Stochastic Networks&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
S. P. Meyn,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;https://netfiles.uiuc.edu/meyn/www/spm_files/CTCN/CTCN.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Control Techniques for Complex Networks&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: #527bbd; font-size: 20px; line-height: 1; margin-bottom: 0.3em; margin-top: 0.7em; padding-bottom: 0.2em; padding-top: 0.8em;&quot;&gt;
&lt;i&gt;Game Theory&lt;/i&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
L. Buttyan and J.-P. Hubaux,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://secowinet.epfl.ch/&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Security and Cooperation in Wireless Networks&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;i&gt;“&lt;a href=&quot;http://www.cambridge.org/journals/nisan/downloads/Nisan_Non-printable.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Algorithmic Game Theory&lt;/a&gt;,”&lt;/i&gt;&amp;nbsp;Edited by N. Nisan, T. Roughgarden, E. Tardos, and V. Vazirani (&lt;a href=&quot;http://theory.stanford.edu/~tim/agt/errata.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Errata&lt;/a&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
Y. Shoham and K. Leyton-Brown,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.masfoundations.org/&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: #527bbd; font-size: 20px; line-height: 1; margin-bottom: 0.3em; margin-top: 0.7em; padding-bottom: 0.2em; padding-top: 0.8em;&quot;&gt;
&lt;i&gt;Probability, Random Processes, and Queueing Theory&lt;/i&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
I. Adan and J. Resing,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.win.tue.nl/~iadan/queueing.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Queueing Theory&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
D. Aldous and J. A. Fill,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.stat.berkeley.edu/~aldous/RWG/book.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Reversible Markov Chains and Random Walks on Graphs&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
L. Devroye,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://luc.devroye.org/rnbookindex.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Non-Uniform Random Variate Generation&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
R. M. Gray,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www-ee.stanford.edu/~gray/arp.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Probability, Random Processes, and Ergodic Properties&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
R. M. Gray and L. D. Davisson,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www-ee.stanford.edu/~gray/sp.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Introduction to Statistical Signal Processing&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
C. Grinstead and J. L. Snell,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.dartmouth.edu/~chance/teaching_aids/books_articles/probability_book/book.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Introduction to Probability&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
B. Hajek,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.ifp.uiuc.edu/~hajek/Papers/randomprocesses.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;An Exploration of Random Processes for Engineers&lt;/a&gt;”&lt;/i&gt;&amp;nbsp;(Notes for ECE534)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
D. A. Levin, Y. Peres, and E. L. Wilmer,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://pages.uoregon.edu/dlevin/MARKOV/&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Markov Chains and Mixing Times&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
R. Lyons and Y. Peres,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://mypage.iu.edu/~rdlyons/prbtree/prbtree.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Probability on Trees and Networks&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
S. P. Meyn and R. L. Tweedie,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;https://netfiles.uiuc.edu/meyn/www/spm_files/book.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Markov Chains and Stochastic Stability&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
D. Pollard,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.stat.yale.edu/~pollard/1984book/&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Convergence of Stochastic Processes&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
W. Whitt,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.columbia.edu/~ww2040/jumps.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Stochastic-Process Limits&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;a href=&quot;http://web2.uwindsor.ca/math/hlynka/qonline.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;FREE online books on Queueing Theory, Probability and Stochastic Processes&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: #527bbd; font-size: 20px; line-height: 1; margin-bottom: 0.3em; margin-top: 0.7em; padding-bottom: 0.2em; padding-top: 0.8em;&quot;&gt;
&lt;i&gt;Optimization&lt;/i&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
S. Boyd and L. Vandenberghe,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.stanford.edu/~boyd/cvxbook/&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Convex Optimization&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
A. Schrijver,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://homepages.cwi.nl/~lex/files/dict.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;A Course in Combinatorial Optimization&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
P. Varaiya,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://robotics.eecs.berkeley.edu/~varaiya/papers_ps.dir/NOO.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Lecture Notes on Optimization&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: #527bbd; font-size: 20px; line-height: 1; margin-bottom: 0.3em; margin-top: 0.7em; padding-bottom: 0.2em; padding-top: 0.8em;&quot;&gt;
&lt;i&gt;Control Theory&lt;/i&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
D. P. Bertsekas and S. E. Shreve,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://web.mit.edu/dimitrib/www/soc.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Stochastic Optimal Control: The Discrete-Time Case&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
L. C. Evans,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://math.berkeley.edu/~evans/control.course.pdf&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;An Introduction to Mathematical Optimal Control Theory&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
E. D. Sontag,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.math.rutgers.edu/~sontag/mct.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Mathematical Control Theory: Deterministic Finite Dimensional Systems&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: #527bbd; font-size: 20px; line-height: 1; margin-bottom: 0.3em; margin-top: 0.7em; padding-bottom: 0.2em; padding-top: 0.8em;&quot;&gt;
&lt;i&gt;Graph Theory&lt;/i&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
J. A. Bondy and U. S. R. Murty,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.math.jussieu.fr/~jabondy/books/gtwa/gtwa.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Graph Theory with Applications&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
R. Diestel,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://diestel-graph-theory.com/index.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Graph Theory&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: #527bbd; font-size: 20px; line-height: 1; margin-bottom: 0.3em; margin-top: 0.7em; padding-bottom: 0.2em; padding-top: 0.8em;&quot;&gt;
&lt;i&gt;Machine Learning&lt;/i&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
T. Hastie, R. Tibshirani, and J. Friedman,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www-stat.stanford.edu/~tibs/ElemStatLearn/&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;The Elements of Statistical Learning: Data Mining, Inference, and Prediction&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
D. Michie, D. J. Spiegelhalter, and C. C. Taylor (eds),&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.amsta.leeds.ac.uk/~charles/statlog/&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Machine Learning, Neural and Statistical Classification&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
N. J. Nilsson,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://ai.stanford.edu/~nilsson/mlbook.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Introduction to Machine Learning&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
A. Rajaraman and J. D. Ullman,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://i.stanford.edu/~ullman/mmds.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Mining of Massive Datasets&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: #527bbd; font-size: 20px; line-height: 1; margin-bottom: 0.3em; margin-top: 0.7em; padding-bottom: 0.2em; padding-top: 0.8em;&quot;&gt;
&lt;i&gt;Algorithms &amp;amp; Complexity&lt;/i&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
S. Arora and B. Barak,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.cs.princeton.edu/theory/index.php/Compbook/Draft&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Computational Complexity: A Modern Approach&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
S. Dasgupta, C. H. Papadimitriou, and U.V. Vazirani,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.cs.berkeley.edu/~vazirani/algorithms.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Algorithms&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
J. Erickson,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://theory.cs.uiuc.edu/~jeffe/teaching/algorithms/&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Algorithms Course Materials&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
O. Goldreich,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.wisdom.weizmann.ac.il/~oded/cc-drafts.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Computational Complexity: A Conceptual Perspective&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
O. Goldreich,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.wisdom.weizmann.ac.il/~oded/bc-drafts.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;P, NP, and NP-Completeness: The Basics of Complexity Theory&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
R. Kannan and S. Vempala,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.cc.gatech.edu/~vempala/spectralbook.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Spectral Algorithms&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
H. Wilf,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.math.upenn.edu/~wilf/AlgComp3.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Algorithms and Complexity&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
D. P. Williamson and D. B. Shmoys,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.designofapproxalgs.com/index.php&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;The Design of Approximation Algorithms&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: #527bbd; font-size: 20px; line-height: 1; margin-bottom: 0.3em; margin-top: 0.7em; padding-bottom: 0.2em; padding-top: 0.8em;&quot;&gt;
&lt;i&gt;Misc.&lt;/i&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
D. P. Bertsekas and J. N. Tsitsiklis,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://web.mit.edu/dimitrib/www/pdc.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Parallel and Distributed Computation: Numerical Methods&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
D. J. C. MacKay,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.withouthotair.com/&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Sustainable Energy - without the hot air&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
A. J. Menezes, P. C. van Oorschot, and S. A. Vanstone,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www.cacr.math.uwaterloo.ca/hac/&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Handbook of Applied Cryptography&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
Y. Saad,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://www-users.cs.umn.edu/~saad/books.html&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Iterative Methods for Sparse Linear Systems&lt;/a&gt;”&lt;/i&gt;&amp;nbsp;(1st edition)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-position: outside; list-style-type: square; margin-bottom: 0.8em; margin-top: 0.2em; padding-top: 0px;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;line-height: 1.3; margin-bottom: 0.3em; margin-top: 0em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
R. Szeliski,&amp;nbsp;&lt;i&gt;“&lt;a href=&quot;http://szeliski.org/Book/&quot; style=&quot;color: #224b8d; text-decoration: none;&quot;&gt;Computer Vision: Algorithms and Applications&lt;/a&gt;”&lt;/i&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/2066383022712961274/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/05/free-e-books-zz.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/2066383022712961274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/2066383022712961274'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/05/free-e-books-zz.html' title='Free e-Books (ZZ)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-9160505723936596599</id><published>2012-05-15T14:09:00.003-07:00</published><updated>2012-05-15T14:09:46.667-07:00</updated><title type='text'>How to get your papers accepted (ZZ)</title><content type='html'>&lt;a href=&quot;http://matt-welsh.blogspot.com/2009/12/how-to-get-your-papers-accepted.html&quot;&gt;http://matt-welsh.blogspot.com/2009/12/how-to-get-your-papers-accepted.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/9160505723936596599/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/05/how-to-get-your-papers-accepted-zz.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/9160505723936596599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/9160505723936596599'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/05/how-to-get-your-papers-accepted-zz.html' title='How to get your papers accepted (ZZ)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-7605927135275128555</id><published>2012-05-15T14:09:00.001-07:00</published><updated>2012-05-15T14:09:31.851-07:00</updated><title type='text'>Giving Technical Talks (zz)</title><content type='html'>&lt;a href=&quot;http://www.cs.dartmouth.edu/~scot/givingTalks/&quot;&gt;http://www.cs.dartmouth.edu/~scot/givingTalks/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/7605927135275128555/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/05/giving-technical-talks-zz.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/7605927135275128555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/7605927135275128555'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/05/giving-technical-talks-zz.html' title='Giving Technical Talks (zz)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-6356129169470538778</id><published>2012-04-17T13:30:00.002-07:00</published><updated>2012-04-17T13:30:52.739-07:00</updated><title type='text'>802.11n CSI Tool</title><content type='html'>&lt;a href=&quot;http://dhalperi.github.com/linux-80211n-csitool/installation.html&quot;&gt;http://dhalperi.github.com/linux-80211n-csitool/installation.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/6356129169470538778/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/04/80211n-csi-tool.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/6356129169470538778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/6356129169470538778'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/04/80211n-csi-tool.html' title='802.11n CSI Tool'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4637305716376807475.post-3517867912461321867</id><published>2012-04-09T14:07:00.001-07:00</published><updated>2012-04-09T14:07:55.161-07:00</updated><title type='text'>Apple IOS development</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;, Times, serif;&quot;&gt;&lt;span lang=&quot;en-us&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;b&gt;&lt;big&gt;Apple development:&amp;nbsp;&lt;/big&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;(1)&amp;nbsp;&lt;a href=&quot;http://cocoadevcentral.com/d/learn_objectivec/&quot;&gt;Learn Object-C&lt;/a&gt;&lt;small&gt;&lt;big&gt;&amp;nbsp; (2)&amp;nbsp;&lt;a href=&quot;http://www.rorylewis.com/&quot;&gt;IPad&amp;amp;Iphone Tutorial&lt;/a&gt;&lt;/big&gt;&lt;/small&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhenggb.blogspot.com/feeds/3517867912461321867/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://zhenggb.blogspot.com/2012/04/apple-ios-development.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/3517867912461321867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4637305716376807475/posts/default/3517867912461321867'/><link rel='alternate' type='text/html' href='http://zhenggb.blogspot.com/2012/04/apple-ios-development.html' title='Apple IOS development'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>