tag:blogger.com,1999:blog-36872938025632156822024-03-12T16:35:13.435-07:00SPIRO THE TECH GURUAnonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.comBlogger172125tag:blogger.com,1999:blog-3687293802563215682.post-87653619482294121172015-10-13T22:17:00.001-07:002015-10-13T22:17:39.434-07:00Multiple Threshold CMOS (MTCMOS) Circuitswww.spiroprojects.com<br />
MTCMOS logic is effective standby leakage control technique, but
difficult to implement since sleep transistor sizing is highly dependent
on discharge pattern within the circuit block. They showed dual Vt
domino logic avoids the sizing difficulties and inherent performance
associated with MTCMOS. High Vt cells are used where leakage has to be
prevented whereas low Vt cells are employed where speed is of concern.
Both cells are effectively used in MTCMOS technique.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEXoNBSojMJ4fjAJ7AcMhrMuhftczQfFYWafuBCViy9TIogFTqHKEJ_OE65cYWdt_6VU1dAZ6tnuw87JfynfUbUul1jRhQfQE1TIXd0-71UaxZzlEDeVh28ADPxxjf4ujF0Bqcgr_mkxeZ/s1600/mtcmos.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEXoNBSojMJ4fjAJ7AcMhrMuhftczQfFYWafuBCViy9TIogFTqHKEJ_OE65cYWdt_6VU1dAZ6tnuw87JfynfUbUul1jRhQfQE1TIXd0-71UaxZzlEDeVh28ADPxxjf4ujF0Bqcgr_mkxeZ/s320/mtcmos.jpeg" width="320" /></a></div>
<br />
<br />
<span class="fullpost">In active mode of operation the high Vt
transistors are turned off and the logic gates consisting of low Vt
transistors can operate with low switching power dissipation and smaller
propagation delay. In standby mode the high Vt transistors are turned
off thereby cutting off the internal low Vt circuitry.</span><br />
<br />
<span class="fullpost"><span class="fullpost"></span></span><br />
<h3 align="left" class="western" lang="en-GB">
Variable Threshold CMOS (VTCMOS)</h3>
<div style="margin-bottom: 0in;">
One
of the efficient methods to reduce power consumption is to use low
supply voltage and low threshold voltage without loosing speed
performance. But increase in the lower threshold voltage devices leads
to increased sub threshold leakage and hence more standby power
consumption. Variable Threshold CMOS (VTCMOS) devices are one solution
to this problem. In VTCMOS technique threshold voltage of the low
threshold devices are varied by applying variable substrate bias voltage
from a control circuitry.</div>
<div style="margin-bottom: 0in;">
<br />VTCMOS technique is very effective technique to reduce the power
consumption with some drawbacks with respect to manufacturing of these
devices. VTCMOS requires either twin well or triple well technology to
achieve different substrate bias voltage levels at different parts of
the IC. The area overhead of the substrate bias control circuitry is
negligible. [1]</div>
<div style="margin-bottom: 0in;">
<br /></div>
One of the efficient methods to reduce power consumption is to use lowsupply voltage and low<br />threshold voltage without loosing speed performance. But increase inthe lower threshold voltage devices leads to increased subthresholdleakage and hence more standby power consumption.Variable Threshold CMOS (VTCMOS) devices are one solution to thisproblem. In VTCMOS technique threshold voltage of the low thresholddevices are varied by applying variable substrate bias voltage from acontrol circuitry.<br />
<br />VTCMOS technique is very effective technique to reduce the power consumption with some drawbacks related to manufacturing of these devices. VTCMOS requires either twin well or triple well technology to<br />achieve different substrate bias voltage levels at different parts of the IC. The area overhead of the substrate bias control circuitry is negligible.<br />
<br />
<span class="fullpost"><span class="fullpost"></span></span><br />
<div style="margin-bottom: 0in;">
<br /></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com1tag:blogger.com,1999:blog-3687293802563215682.post-64623430355713894852015-10-13T22:09:00.001-07:002015-10-13T22:09:31.295-07:00Modular Approachwww.spiroprojects.com<br />
<span style="font-family: Arial;"><span style="font-size: x-small;"><span style="line-height: 200%; text-align: justify;">A
person’s inquisitiveness and curiosity can do wonders. It can open a
realm of ideas and imaginations never thought before and create
something worthwhile. When I was a child I used to read lot of
electronic articles and magazines regularly. I’ve seen a lot of
interesting circuits and tried as many of them as possible at that time.
Whenever a new circuit catches my attention I can’t resist myself
trying it out. Every time I buy a new general purpose PCB and the
required components listed with the circuit diagram and spending a lot
of time soldering the components in the general purpose board. I used to
implement the developed board for its practical purpose but it won’t
last too long in its place and eventually end up in my small junk yard.
As a child, I couldn’t afford the cost of all these hardware and now
with the passing years I have a large collection of useless circuit
boards with costly components soldered into it. I’ve successfully
de-soldered few components but most of the time the process end up with
broken leads or damaged component due to overheating and lack of skill. I
was familiar with the bread-board but even today I don’t find it quiet
useful for practical implementation other than testing circuits before
soldering into a circuit board. Above all I find it a waste a lot of
time is wasted first in soldering then testing, de-soldering and again
soldering and testing; just because multiple mistakes were made while
soldering the complex looking circuits.</span> </span></span><br />
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<span style="font-family: Arial;"><span style="font-size: x-small;"><span style="line-height: 200%;">After
few years of building circuits from other designer’s article I tried to
design my own circuit projects. I had my ideas and made circuit
diagrams, but when it comes to the prototyping of the circuit idea I
used to find it very difficult and most of the time I give up without
any results even though the circuit diagram seems to be perfect. I
realized that I was missing the knowledge of key technique or method
which was keeping me away from realizing my circuit ideas. I don’t need
just a circuit diagram or a breadboard full of components with ugly
looking wires and loose connections, but I need a fully working and
ready to implement circuit board developed within a short span of
time.</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<span style="font-family: Arial;"><span style="font-size: x-small;"><span style="line-height: 200%;"> The
story might be same for almost all electronic hobbyists and beginners.
With this idea in mind I started thinking about a better technique to
prototype electronic circuit projects. The technique that would bring an
end to the wastage of hardware and help to finish the project or
prototype within a short period of time. The technique should save time,
money and increase efficiency by reducing chances of mistakes. Finally
it seems that I’ve found the answer which I was looking for a long time.
</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<span style="font-family: Arial;"><span style="font-size: x-small;"><span style="line-height: 200%;"> </span></span></span><div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<span style="font-family: Arial;"><span style="font-size: x-small;"><i><span style="line-height: 200%;">I would like to call the technique as Electronic Modular Design and Assembly.</span></i></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<span style="font-family: Arial;"><span style="font-size: x-small;"><span style="line-height: 200%;">This
is not a new technique or method and is not defined anywhere, but I’ve
observed the experienced guys following this method for developing
electronic prototypes. The technique is to design a complex circuit from
the very basic known circuit and then build these basic circuits into
modules, test them individually and finally assemble the entire modules
in a single board to complete the prototype. This is a technique that
most of the designers use to build the prototype of a project within a
short period of time and sometimes in actual manufacturing process as
well. Since we are dividing the entire circuit into simplest modules we
can test them individually and also reduces the complexity during the
time of assembly. The chance of misconnection is highly reduced since we
are actually building only the simplest known circuit each and every
time even though the original circuit is highly complex. The most
attractive part is that once we build a module we can reuse them in
another circuit project. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<span style="font-family: Arial;"><span style="font-size: x-small;"><span style="line-height: 200%;">In this article my intention is to familiarize the reader with the technique of electronic Modular Design and Assembly. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<span style="font-family: Arial;"><span style="font-size: x-small;"><i><span style="line-height: 200%;">The technique and its steps are explained based on a project which I’ve prototyped myself using this very technique</span></i><span style="line-height: 200%;">.</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<span style="font-family: Arial;"><span style="font-size: x-small;"><span style="line-height: 200%;">Even
though all the details of the reference project are explained in this
article, I request the reader not to consider this article simply as an
explanation of the project idea or circuit. The article discusses the
steps and techniques to develop the circuit itself and the method of
prototyping the same using the electronic Modular Design and Assembly. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<span style="font-family: Arial;"><span style="font-size: x-small;"><i><span style="line-height: 200%;">The
way of explanation in this article might not be comfortable for those
who just want to know the overview of the reference project only. But in
the course of explaining the modular design method I’ve given special
care to go in depth of the working details of the reference project</span></i></span></span><i><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></i></div>
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<span style="font-family: Arial;"><span style="font-size: x-small;"><span style="line-height: 200%;">When
I start the process I have nothing but some requirements of the
project, not even a circuit diagram. I will design the circuit diagram
somewhere during the course of this process and finally with this method
itself I will build and assemble the hardware. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<span style="font-family: Arial;"><span style="font-size: x-small;"><span style="line-height: 200%;">You
can call this method as modularization technique, fast prototyping,
hardware reuse etc. since this technique is not defined anywhere as
such. All the data in the article simply represents the way in which a
designer like me approaches a prototyping project and finish it quickly
and successfully. Consider this only as yet another useful technique
other than those already known to you and I’m sure it can take you a
long way further. A representation of electronic Modular Design and
Assembly is shown in the following figure.</span></span></span></div>
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCnAHCmhC5vmKZdjcdejEJiNurfvHa0P4g5A7iAy1mNcjkCGb_SiD42boxw8iGEZzNsHDYe49zSKZBVbnwxVwDhE3hCSI7QKAgDOh2uZo3GuOV50BUJSexNMtLHloWZAS1kHKeR1qbJ3pl/s1600/Block+Design-1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCnAHCmhC5vmKZdjcdejEJiNurfvHa0P4g5A7iAy1mNcjkCGb_SiD42boxw8iGEZzNsHDYe49zSKZBVbnwxVwDhE3hCSI7QKAgDOh2uZo3GuOV50BUJSexNMtLHloWZAS1kHKeR1qbJ3pl/s320/Block+Design-1.JPG" width="320" /></a></div>
<br />
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<br /></div>
<div class="MsoNormalCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; text-align: justify;">
<span style="font-family: Arial;"><span style="font-size: x-small;"><span style="line-height: 200%;"><span style="font-family: Arial;"><span style="font-size: x-small;"><span style="line-height: 200%;">In
the above figure A, B, C... up to H represents separate modules or
circuit boards which are individually designed, built and tested and
finally assembled in the main circuit board marked as Z. This is the
whole concept of modularization or Modular Design and Assembly.</span></span></span> </span></span></span></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-41616082607599402942015-10-13T22:07:00.000-07:002015-10-13T22:07:08.619-07:00How to make an amplitude modulated wavewww.spiroprojects.com<br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The <strong>AM modulation</strong>
is a kind of modulation technique which is in use since the very early
days of wireless data transmission. In a radio transmission system there
is a relation between the ranges of frequencies which can be
transmitted wirelessly with the length of the transmitting antenna. The
relation is inversely proportional to one another, means as the
frequency of the signal to be transmitted increases the length of the
antenna can be reduced and as the frequency of the signal to be
transmitted decreases the length of the transmitting antenna should be
increased accordingly. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">Using
an antenna of few meters the frequencies in the range of Mhz can be
easily transmitted to a distance. The basic purpose of the wireless
transmitting system in early days was to transmit the audio signals, but
to transmit audio signals which fall in the range of few Khz an antenna
of more than a kilometer height would have been required. Since it was
practically impossible to construct such a long antenna, the high
frequency signals are transmitted after they are modulated with the low
frequency audio signals. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
amplitude modulation is the simplest modulation technique among the
wide verity of modulation techniques in use. The amplitude modulation of
a high frequency signal is easy to achieve and the demodulation is also
simple compared to other techniques. The high frequency signal which is
modulated to carry the low frequency audio signals are called ‘carrier
frequency’ and the audio signals used for modulation is called
‘modulating signal’ or ‘message signal’ or ‘base band signal’. This
article demonstrates how to generate an Amplitude Modulation (AM) using
the simplest possible circuit. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><b><u><span style="line-height: 200%;">DESCRIPTION:</span></u></b></span></span><b><u><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></u></b></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">To
demonstrate the AM modulation of a carrier signal with a message
signal, both the carrier signal and message signal generating circuits
are also made and the details of them will be discussed in the
subsequent section. The carrier signal and message signal used in this
project are pure sine waves. Hence the entire circuit can be divided
into three blocks:</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -.25in;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> 1.<span style="line-height: normal;"> </span></span><span style="line-height: 200%;">Carrier frequency generator (High frequency sine wave)</span></span></span></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -.25in;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> 2.<span style="line-height: normal;"> </span></span><span style="line-height: 200%;">Message frequency generator (Low frequency sine wave) </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoListParagraphCxSpLast" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -.25in;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> 3.<span style="line-height: normal;"> </span></span><span style="line-height: 200%;">AM Modulator. </span></span></span></div>
<div class="MsoListParagraphCxSpLast" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -.25in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> The block diagram of the AM modulation used in this project is shown in the following diagram;</span></span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKFdpX52UiKqUbVngolCAva4-zqQV6E73KLt1a6ManVHzSmBKLizSluacBZB02mPZvWWoFnxED6dreTJh2yJPHQ1gDfStnUwvpVVoXeQDGTLgIXEKACt-jFEi1gQtJuu732uZ3-ymiDWAc/s1600/1_5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKFdpX52UiKqUbVngolCAva4-zqQV6E73KLt1a6ManVHzSmBKLizSluacBZB02mPZvWWoFnxED6dreTJh2yJPHQ1gDfStnUwvpVVoXeQDGTLgIXEKACt-jFEi1gQtJuu732uZ3-ymiDWAc/s320/1_5.jpg" width="320" /></a></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">For
both the carrier signal of high frequency and the message signal of low
frequency, exactly same sine wave generating circuits are designed but
the frequencies are set to high and low respectively with the help of
their variable components. Hence this project has two similar variable
frequency sine wave generator circuits and an AM modulator circuit.</span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><u><span style="line-height: 200%;">Variable frequency sine wave generator</span></u></span></span><u><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></u><div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
sine wave generation circuit used in this project is the Wien bridge
oscillator circuit. This is the only circuit which can generate the pure
sine wave without any distortion. The amplifier component used in the
Wien bridge circuit is an op-amp with dual-power supply. Both the
circuits are built around the versatile op-amp IC, 741. The circuit of
the sine wave generator is shown in the following figure. </span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrvJGTyy8eVJxfkBy1f5RMwEoDVmRWSNsLkN1HKesMVTnCv_Q-CPAgaCGB4auYSk5YpZeQMvhZLSQLsifwjvIKBtXJZmWtmixqjCN2XpkDkwR4Kgt8-AO0M3dE8HCxMBgvtEbAEJ_pc_So/s1600/3_6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrvJGTyy8eVJxfkBy1f5RMwEoDVmRWSNsLkN1HKesMVTnCv_Q-CPAgaCGB4auYSk5YpZeQMvhZLSQLsifwjvIKBtXJZmWtmixqjCN2XpkDkwR4Kgt8-AO0M3dE8HCxMBgvtEbAEJ_pc_So/s320/3_6.jpg" width="320" /></a></div>
<br /><br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
frequency of the above circuit can be varied by simply varying the
potentiometer R2 and the amplitude of the wave form can be adjusted by
varying the potentiometer R. The frequency of the sine wave generated by
the above circuit depends on the components R1, R2, C1 and C2 and the
equation for the frequency is given below;</span></span></span></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhljHlaDkM0objTvHs69fDbeErSk9L2wo-gE7DPYuDpKnT5OuSLKaSMirzplzWzHjl_NlRXPkQFXSv-nQHZ-gWeVcFCIW-EKJ69m97harwirWsemSqRQB6FlxrH3_Fo34nLiC7eq3kDVH0s/s1600/formula+1_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhljHlaDkM0objTvHs69fDbeErSk9L2wo-gE7DPYuDpKnT5OuSLKaSMirzplzWzHjl_NlRXPkQFXSv-nQHZ-gWeVcFCIW-EKJ69m97harwirWsemSqRQB6FlxrH3_Fo34nLiC7eq3kDVH0s/s1600/formula+1_1.JPG" /></a></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><br /></span></span></span></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The image of the circuit made for generating the carries signal is shown below;</span></span></span></span></span></span></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvcSFuYku70xHN_2_rcyqX2xzb9n50qiqIc3QDqYN1DXUTcnIaBu-tgBE8r4m3Rt7nRAu-ffpcS_i-ttXA8Pd-FqYlIoLvwSj1tWNz0tXC24QZlCrJZb3iI2gcvmwXmfS_FN6LGai_2d7B/s1600/IMG_5752+copy.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvcSFuYku70xHN_2_rcyqX2xzb9n50qiqIc3QDqYN1DXUTcnIaBu-tgBE8r4m3Rt7nRAu-ffpcS_i-ttXA8Pd-FqYlIoLvwSj1tWNz0tXC24QZlCrJZb3iI2gcvmwXmfS_FN6LGai_2d7B/s320/IMG_5752+copy.jpg" width="320" /></a></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><br /></span></span></span></span></span></span></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
circuit is then adjusted to generate a high frequency sine wave and
which can be observed in a CRO as shown in the following image;</span></span></span></span></span></span></span></span></span></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiux9Ea7zC51cnW8S690UR0Q744nhPfHexzIm0ZyTiMfYX5b_qbSAnqNc30CzHB3Nbu4F_yFggKdu3cGaV04rcxEAgZzSUKlDK9-W_XbjTuKPyG_yGn9ZXt_u81DSypVO-oU4OBrGj1Z15y/s1600/IMG_5750+copy.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiux9Ea7zC51cnW8S690UR0Q744nhPfHexzIm0ZyTiMfYX5b_qbSAnqNc30CzHB3Nbu4F_yFggKdu3cGaV04rcxEAgZzSUKlDK9-W_XbjTuKPyG_yGn9ZXt_u81DSypVO-oU4OBrGj1Z15y/s320/IMG_5750+copy.JPG" width="320" /></a></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><br /></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">An
exactly similar circuit is wired again in the bread board and this time
the circuit is adjusted to generate a low frequency sine wave. The two
sine wave generating circuits wired in a bread board is shown in the
following image;</span></span></span> </span></span></span> </span></span></span> </span></span></span> </span></span></span></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVt16W42NZUP_jXm95UnDKbgERVaQbJZImLUKPgNYT0hko3oTTTGVNl5Vvbx6UemUdKsl-mpDU1Enox8OrpGqNljNaB5CrCqJsPXY1CAlPnB19AGkSUXxcJqubs2i5zO72d-mpEdqbS7L6/s1600/IMG_5757+copy.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVt16W42NZUP_jXm95UnDKbgERVaQbJZImLUKPgNYT0hko3oTTTGVNl5Vvbx6UemUdKsl-mpDU1Enox8OrpGqNljNaB5CrCqJsPXY1CAlPnB19AGkSUXxcJqubs2i5zO72d-mpEdqbS7L6/s320/IMG_5757+copy.JPG" width="320" /></a></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-33973190923810072112015-10-12T23:20:00.001-07:002015-10-12T23:26:25.758-07:00BLIND DECONVOLUTION IN IMAGE PROCESSINGwww.spiroprojects.com<br />
To this point, we have studied restoration techniques assuming that we knew the blurring function<b> h </b>. Actually, we have also assumed that we knew the image spectral density <b>Suu</b> and Spectral noise <b>Snn</b> as well. This section will focus on some techniques for estimating <b> h </b>
based on our degraded image. For comparison, we will demonstrate how
the MSE between our restored image and the original image changes
depending on whether or not we know h, Suu, or Snn.
<br />
Two restoration filters will be the basis for our procedures.
The first is the Wiener Filter, which exhibits the optimal tradeoff (in
the MSE sense) between inverse filtering and noise smoothing. The
second filter tries to restore the power spectrum of the degraded image,
and is known as Power Spectrum Equalization [Lim].
<br />
We use as our degradation model the standard idea that our input
image is blurred through convolution with a low pass LSI filter (<b>h</b>) and then Gaussian Noise is added to the result. Moreover, because Power Spectrum Equalization (PSE) works best assuming <b>h</b> is phaseless, so we generate our <b>h</b>
to have zero phase. This is not too unrealistic because common
degradations such as camera misfocus, uniform motion (linear phase), and
atmospheric turbulence can all be modelled with zero phase filters.
Note also that because we used a different filter for our degradation
model than for Inverse Filtering and Wavelet Denoising, the MSEs of our restored images for this section should not be compared to those from the previous sections.
Let's begin by recalling the Wiener filter:<br />
<br />
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/wiener.jpg" /><br />
where <b>H</b> is the Fourier Transform of <b>h</b>, and <b>Suu</b> and <b>Snn</b>
are defined as above. The following example shows lenna.256 degraded
with our phaseless filter and AGN with variance 80. Suu is estimated as
the magnitude squared of the Fourier Transform of the input image
(lenna.256).
<br />
<br />
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/wienblur.gif" height="250" width="250" /><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/wienres.gif" height="250" width="250" /><br />
<br />
The above images were generated using wien.m.
Much of the blockiness is due to the compression we used on the gifs
to store the images. This will be true for all the images in this
section. The important things to note are the excellent reduction of
MSE, and the improved definition in the boa of the restored image. In
general, the blurriness of the degraded image has been removed.
Next we will examine the effectiveness of Power Spectrum Equalization. The equation is as follows:<br />
<br />
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/pseeq.jpg" /><br />
<br />
Note the similarity to Wiener Filtering, but we only use the magnitude of <b>H</b>. The following example demonstrates restoration using the same specs as for the Wiener Filter above.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/pseres.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/pseres.gif" height="250" width="250" /></a></div>
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/pseblur.gif" height="250" width="250" /><br />
The above images were generated using pse.m.
We have again removed a great deal of the blur, but our restoration is
not as good as with Wiener Filtering. In general, Wiener filtering is
the optimal restoration technique, and this should be remembered later
on.
Next we will perform the same restoration using estimated spectral
noise. For this we will assume that the noise is white and therefore
has a flat (constant) spectral density. Experimentation showed us that
overestimating the noise was better than underestimating the noise.
This is due to the high pass characteristic of inverse filtering during
restoration. When in doubt, suppress the inverse filter. The degraded
images below where generated the same way as before, but Snn was
estimated as 100.<br />
<br />
<a href="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/pseres2.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"> </a><a href="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/pseres2.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"> </a><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/wienres2.gif" height="250" width="250" /><br />
<br />
The above images were generated using wien2.m and pse2.m,
respectively. Clearly, Power Spectrum Equalization is not very robust.
A precise representation of the noise is required. This is because
PSE does not use inverse filtering, so the noise estimation is doubly
important. The code was checked thoroughly, and the only difference
between this restoration and the one above was the estimation of <b>Snn</b>.
Our final preliminary investigation was to see what happens when we know <b>h</b> and <b>Snn</b> but not <b>Suu</b>.
We estimated the image spectral density as the magnitude squared of
the Fourier Transform of the degraded image (rather than of the original
image, as before). The degradation was the same as before.
<br />
<br />
The above images were generated using wien3.m and pse3.m,
respectively. Again, we see that the Wiener filter has a lower MSE
than the PSE filter. Also, for the Wiener Filter, our MSE isn't much
worse than when we estimate Suu from the original image. For the PSE,
our MSE has actually improved! We attribute this to the fact that our
estimation of Suu isn't exact in either case. So generally, using the
degraded image to estimate Suu won't hurt us with either restoration
filter. The biggest unknown that hurts us so far is <b>Snn</b> for the PSE filter.
<br />
BLIND DECONVOLUTION
<br />
Many different methods were attempted to restore our image when we don't explicitly know <b>h</b>.
Most of them had very little success. The reasons will be explained
as we explain the general approach we used. The methods for estimating <b>h</b> are known as <i>Blind Deconvolution</i>
because our inverse filtering (deconvolution) is being performed
without knowledge of our blurring function. The methods we used were
all <b>homomorphic</b> ideas.
<br />
In general, our degradation is modeled as a convolution plus
noise. In the frequency domain, convolution becomes multiplication. If
we ignore the additive noise, we can take the log of the multiplication
and get addition. Thus, the log of the FT of our degraded image <b>DI</b> is equal to the log of the FT of the original image <b>OI</b> plus the log of the Transfer Function <b>H</b>. Now that we have addition, we can use statistical estimation to estimate <b>H</b> and thus solve for <b>OI</b>.
<br />
The problem with this method is that in practice we can't ignore
the noise. Therefore, we need ways to estimate the log of the
multiplication of <b>OI</b> and <b>H</b> plus the Noise Spectrum. The first approach we had success with came from the Jain text. It uses the following estimate for <b>H</b>.<br />
<br />
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/jaineq.jpg" /><br />
<br />
Uk and Vk are obtained by breaking the input image (u) and degraded image (v)
into <b>M</b> smaller blocks and computing their Fourier Transforms. <b>H</b>
is then used with Snn and Suu to compute the Wiener Filter. Notice
that this method only computes Magnitude of H, so its best for phaseless
LSI filters. This necessitated our filter design of a phaseless <b>h</b>.
The following pictures show the Magnitude Plots of the actual and
estimated transfer functions. Our image degration model is the same as
always, and we calculated <b>H</b> using the above equation with <b>M = 16</b>. This broke down the images into 64x64 pixel blocks.<br />
<br />
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/jain1h.gif" height="250" width="250" /> <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/jain1hest.gif" height="250" width="250" /><br />
<br />
Note that we capture the form of the degradation filter, but we have a
lot more noise. Surprisingly, our restoration MSE isn't too bad,
depicted below. Both the above and below images were created using jain.m with noise variance 80. Also, since we are restoring using Wiener Filtering, we estimate <b>Snn</b> and <b>Suu</b> for restoration.<br />
<br />
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/jain1blur.gif" height="250" width="250" /> <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/jain1res.gif" height="250" width="250" /><br />
<br />
<br />
We see that our MSE has gone from 256 with unknown <b>Snn</b> to 283 with all three Wiener Filter componenents (<b>h, Suu, * Snn</b>).
We can see that some of the blurring has been reduced in our restored
image. Lines can be seen in the band around the hat and the boa is a
bit clearer. However, even though our MSE isn't too bad, this is
clearly the worst image restoration thus far with respect to visual
aspects. Most of the restoration was magnitude restoration. But this
was by far our greatest success at blind deconvolution.
Our second approach came from the Lim text. It was proposed by
Stockham. The homomorphic idea of taking the log in the frequency
domain is again present, as is the notion of breaking up the picture
into <b>M</b> sub-blocks. The equation estimates the denominator of the PSE filter as follows:<br />
<br />
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/stockeq.jpg" /><br />
<br />
where <b>C</b> is Euler's constant (0.57221...). Note that <b>H</b> is
never calculated directly. Instead, we use this estimation to choose
our PSE filter and restore our image. Our attempt at restoration with
this method is shown below. Again, variance is 80, but <b>Suu</b> and <b>Snn</b> are assumed known. Recall that if <b>Snn</b> is not explicitly known, then our PSE restoration fails.<br />
<br />
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/stockblur.gif" height="250" width="250" /> <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/blind/stockres.gif" height="250" width="250" /><br />
<br />
The above images were generated using stockham.m.
Clearly, our restoration has further degraded our image. This was
seen earlier when we attempted PSE restoration without knowledge of <b>Snn</b>. In this case, we are trying to estimate the entire denominator, not just <b>Snn</b>. Our restoration suffers greatly.
<br />
We conclude that Power Spectrum Equalization is just a poor restoration choice in general. It fails for unknown <b>Snn</b> and for our attempt at unknown <b>h</b>.
The lack of inverse filtering makes the denominator extremely
important in restoration, so no estimation will be very robust.
Supposedly, there are cases where PSE is preferable to Wiener Filtering
[Castleman], but our models do not fit them.
<br />
There are direct methods for blind deconvolution as well, but we
attempted only indirect methods, because they are less ad hoc. An
example of a direct method for blind deconvolution is to model lines
normal to a suspected edge in the degraded image as the integral of <b>h</b>,
and use this measurement for deconvolution. Another indirect method we
tried was to assume there was no additive noise in the system. Thus,
if our average blurring function goes to zero over many images, we can
estimate our original frequency information as the geometric mean of the
degraded images. However, goemetric means are extremely vulnerable to
noise, and many iterations were required for our approximations to hold.
In general, we did not get good results for this method. You can view
our code baran.m and try to improve it.
<br />
<br />Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-79917936427955021332015-10-12T23:08:00.002-07:002015-10-13T00:12:47.059-07:00Wavelet-based Image Restorationwww.spiroprojects.com<br />
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbJqAm6tBnVi3NDJpU7uvUxEDn2i1O6E8KWMcpvkraXQb0GlU3hQYAaNpGvVoWdKxrgzxadonXt7W4AOjnv2SqPBwsh8Bh74rIxLE0FL3SgMnm9GUPL647oLX4GoOROkyatTvOnt1Uak_M/s1600/subband.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="134" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbJqAm6tBnVi3NDJpU7uvUxEDn2i1O6E8KWMcpvkraXQb0GlU3hQYAaNpGvVoWdKxrgzxadonXt7W4AOjnv2SqPBwsh8Bh74rIxLE0FL3SgMnm9GUPL647oLX4GoOROkyatTvOnt1Uak_M/s320/subband.gif" width="320" /></a></div>
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
Although the Wiener filtering is the optimal tradeoff of
inverse filtering and noise smoothing, in the case when the blurring filter is
singular, the Wiener filtering actually amplify the noise. This suggests that a
denoising step is needed to remove the amplified noise. Wavelet-based denoising
scheme, a successful approach introduced recently by Donoho, provides a natural
technique for this purpose. Therefore, the image restoration contains two
separate steps: Fourier-domain inverse filtering and wavelet-domain image
denoising. The digram is shown as follows.</div>
<div class="MsoNormal">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr8iUCZwbPdC7fcGz-qVj3Hl7MzqjqlpRawkIJ3QrNr-fFGRhv3lST4v6ZiV8LG5Jq5w3Ywp74n1sBO7ISwmGuknF9Fz3XFEBItLlJ_uP7qN9iahJtPvK21FXjij2_K9NZ7mHnJEJyk3kW/s1600/donoho.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="52" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr8iUCZwbPdC7fcGz-qVj3Hl7MzqjqlpRawkIJ3QrNr-fFGRhv3lST4v6ZiV8LG5Jq5w3Ywp74n1sBO7ISwmGuknF9Fz3XFEBItLlJ_uP7qN9iahJtPvK21FXjij2_K9NZ7mHnJEJyk3kW/s320/donoho.gif" width="320" /></a></div>
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Donoho's approach for image restoration improves the
performance, however, in the case when the blurring function is not invertible,
the algorithm is not applicable. Furthermore, since the two steps are separate,
there is no control over the overall performance of the restoration. Recently,
R. Neelamani et al. proposed a wavelet-based deconvolution technique for
ill-conditioned systems. The idea is simple: employ both Fourier-domain
Wiener-like and wavelet-domain regularization. The regularized inverse filter
is introduced by modifying the Wiener filter with a new-introduced parameter:</div>
<div class="MsoNormal">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoI84o10vUKI1_eQ_edTEbP8C7t4RC-AHBMH61P_BXMNHfnWUcAkVoyIY7CgpBwwqN_oyvSvI59Vqv7m32SBf1Ik00wm4jxz_9hTu67q0FH3_KabUX9kFubI2oQKP7rpGCODb7EKiF4j5j/s1600/wiener_reg.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoI84o10vUKI1_eQ_edTEbP8C7t4RC-AHBMH61P_BXMNHfnWUcAkVoyIY7CgpBwwqN_oyvSvI59Vqv7m32SBf1Ik00wm4jxz_9hTu67q0FH3_KabUX9kFubI2oQKP7rpGCODb7EKiF4j5j/s1600/wiener_reg.gif" /></a></div>
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The parameter <span style="mso-no-proof: yes;"><img alt="Description: http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/alpha.gif" height="13" src="file:///C:\Users\SR5F5F~1.PHP\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif" width="13" /></span>can be optimally selected to
minimize the overall mean-square error. The diagram of the algorithm is
displayed as follows.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL8LCC6QdJrVnwOnxGIUfbHU46omcBdU_FrQv9FpcNBMGFROM6r8jty_6d-sMl_5WkGAt8EU0pMh2WADjq397P2V_lEMTqKG-3aN9U8j4_4Q_tNZmgpTUqJwNX8t1r7LzZswO5AWESPq8k/s1600/ward.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="62" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL8LCC6QdJrVnwOnxGIUfbHU46omcBdU_FrQv9FpcNBMGFROM6r8jty_6d-sMl_5WkGAt8EU0pMh2WADjq397P2V_lEMTqKG-3aN9U8j4_4Q_tNZmgpTUqJwNX8t1r7LzZswO5AWESPq8k/s320/ward.gif" width="320" /></a></div>
<br /></div>
<div class="MsoNormal">
The implementation of the regularized inverse filter involves
the estimation of the power spectrum of the original image in the spatial
domain. Since wavelet transforms have good decorrelation property, the wavelet
coefficients of the image can be better modeled in a stochastic model, and the
power spectrum can be better estimated. This inspires a new approach: changing
the order of the regularized inverse filtering and the wavelet transform. (See
the following digram)</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGyHNZsEfsHYhqiP86ScfCwxf7zMa7WFN3s-Zt7b-GUHve9lNLBywodESEQIXA7CzpukvRjgYkw0SUz_bNS5na8DZ-kTDtCb8F8XpUoSp6K7MfprWtvCPT5Fr23bctHj4kO9hHsS7Q5qXE/s1600/exchange.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="79" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGyHNZsEfsHYhqiP86ScfCwxf7zMa7WFN3s-Zt7b-GUHve9lNLBywodESEQIXA7CzpukvRjgYkw0SUz_bNS5na8DZ-kTDtCb8F8XpUoSp6K7MfprWtvCPT5Fr23bctHj4kO9hHsS7Q5qXE/s320/exchange.gif" width="320" /></a></div>
<br /></div>
<div class="MsoNormal">
This way the both inverse filtering and noise smoothing can
be performed in wavelet domain. Specifically, the power spectrum of the image
in a same subband can be estimated under the assumption that the wavelet
coefficients are independent. Therefore, the power spectrum is just the
variance of the wavelet coefficients. We note that the exchange of the order of
inverse filtering and wavelet transform is valid only when undecimated wavelet
transform is used and the blurring function is separable. Therefore, for
interpretation we can exchange the order of the blurring operation and the
wavelet transform, which means that the inverse filtering cancels the blurring
in the wavelet domain. So, wavelet thresholding results in a reasonable
estimate. The above explanation can be visualized using the following figure.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8dP4DyB7iu_sEKXzCQosilyX1Skuy6eClRfn19t6rsF8h1Z9-SfLM2NLBtwyqFnogizYHgG-Hl79Qlm_J8kq7tLv3m_PR9HV4O9UV_14t21Dqe_68Jgc5vInYUwfqAuBs0p9VwvweFbqL/s1600/subband.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="134" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8dP4DyB7iu_sEKXzCQosilyX1Skuy6eClRfn19t6rsF8h1Z9-SfLM2NLBtwyqFnogizYHgG-Hl79Qlm_J8kq7tLv3m_PR9HV4O9UV_14t21Dqe_68Jgc5vInYUwfqAuBs0p9VwvweFbqL/s320/subband.gif" width="320" /></a></div>
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 13.5pt; mso-fareast-font-family: "Times New Roman";">Simulation
</span></b></div>
<div class="MsoNormal">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: "Times New Roman";">As usual
we corrupted the standard 256x256 lena test image by convolving wit the simple
4x4 square blurring filter</span></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMxIurhr3Z8XpUzkLCcDX9KNSVIu1swJJlZZtyNmfmUu5roIFjnn3SXgaUg21_qjMT8E9vZ9KsG_KHnW9yTznrVA4dhMuKT3haOGEDU0oWBFhEs-B2CxGurwhiNaNaCbhGn5TOGlsCZtbI/s1600/sixteen_one.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMxIurhr3Z8XpUzkLCcDX9KNSVIu1swJJlZZtyNmfmUu5roIFjnn3SXgaUg21_qjMT8E9vZ9KsG_KHnW9yTznrVA4dhMuKT3haOGEDU0oWBFhEs-B2CxGurwhiNaNaCbhGn5TOGlsCZtbI/s1600/sixteen_one.gif" /></a></div>
</div>
<div class="MsoNormal">
and adding zero-mean white Gaussian noise of variance 100.
The three introduced wavelet-based image restoration algorithms are applied to
the corrupted image, and the results are reported in the following table.
According to the visual performance and the mean square error, the algorithms
improve the restoration performance. However, the denoising step uses wavelet
thresholding to remove the noise, the images are blurred a little bit again,
although the MSE is improved.</div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-57217688008223487382015-10-12T22:52:00.002-07:002015-10-12T22:52:55.456-07:00Adder, arithmetic unit, low-power design in VLSIwww.spiroprojects.com<br />
<div class="MsoNormal">
<span>As the name indicates it occurs when
signals which go through the CMOS circuits change their logic state. At
this moment energy is drawn from the power supply to charge up the
output node capacitance. Charging up of the output capacitance causes
transition from 0V to Vdd. Considering an inverter example power drawn
from the power supply is dissipated as heat in pMOS transistor. On the
other hand charge down process causes NMOS transistor to dissipate heat.</span></div>
<span style="color: black; font-family: "Times New Roman"; font-size: 12pt;"><br />Output capacitance of the CMOS logic gate consists of below components:<br /><br />1) <b>Output node capacitance of the logic gate:</b> This is due to the drain diffusion region.<br />2) <b>Total interconnects capacitance:</b> This has higher effect as technology node shrinks.<br />3) <b>Input node capacitance of the driven gate:</b> This is due to the gate oxide capacitance.</span><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoVLlFcz7Mj-2kHYUqWeVSGuplo4enEDp3M4sFAL7c9Jo6Fw2W9dBeox56wlnBqTYpQZIQfo7fcKnAVY3hOtF5WHZwWlarLmOg3EjTD5DqpEa62OhYf3eLEtQAuaVLzvhQRQVRuzc5kU8W/s1600/dynamic_power.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="114" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoVLlFcz7Mj-2kHYUqWeVSGuplo4enEDp3M4sFAL7c9Jo6Fw2W9dBeox56wlnBqTYpQZIQfo7fcKnAVY3hOtF5WHZwWlarLmOg3EjTD5DqpEa62OhYf3eLEtQAuaVLzvhQRQVRuzc5kU8W/s320/dynamic_power.jpeg" width="320" /></a></div>
<br />
<br />
<br />
<span style="color: black; font-family: "Times New Roman"; font-size: 12pt;"><span>The average power
dissipation of the CMOS logic circuit can be mathematically expressed
[2]. Integrating the instantaneous power over the period of interest,
the energy E<sub>VDD</sub> taken from the supply during the transition is given by </span> </span><br />
<div class="MsoNormal">
<span> <br />E<sub>VDD</sub>= 0->∞∫I. V<sub>DD</sub>(t).V<sub>DD</sub>.dt</span></div>
<div class="MsoNormal">
<span>=V<sub>DD</sub>. 0->∞∫ C<sub>L</sub>.(dvout/dt).dt</span></div>
<div class="MsoNormal">
<span>= C<sub>L</sub>.V<sub>DD</sub>. 0->V<sub>DD</sub>∫.dvout</span></div>
<div class="MsoNormal">
<span>= C<sub>L</sub>.V<sub>DD</sub><sup>2</sup></span></div>
<div class="MsoNormal">
<span> <span> </span>Similarly
integrating the instantaneous power over the period of interest, the
energy Ec stored in the capacitor at the end of transition is given by,</span></div>
<div class="MsoNormal">
<span><span> </span></span></div>
<div class="MsoNormal">
<span>Ec = 0-></span><span>∞∫</span><span> </span><span>I.</span><span> V<sub>DD</sub>(t).Vout.dt</span></div>
<div class="MsoNormal">
<span>= 0->∞∫ C<sub>L</sub>.(dvout/dt).vout.dt</span></div>
<div class="MsoNormal">
<span>= C<sub>L</sub>.(integration from 0 to VDD).Vout.dvout</span></div>
<div class="MsoNormal">
<span>= (C<sub>L</sub>.V<sub>DD</sub><sup>2</sup>)/2</span></div>
<div class="MsoNormal">
<span> <br />Therefore energy stored in capacitor is= C<sub>L</sub>.V<sub>DD</sub><sup>2</sup> / 2.</span></div>
<div class="MsoNormal">
<span> <br />This implies that half of the energy supplied by the power source is stored in C<sub>L</sub>.
The other half has been dissipated by the PMOS devices. This energy
dissipation is independent of the size of the PMOS device. During the
discharge phase the charge is removed from the capacitor, and its energy
is dissipated in the NMOS device.</span></div>
<div class="MsoNormal">
<span> Each switching cycle takes a fixed amount of energy = C<sub>L</sub>. V<sub>DD</sub><sup>2</sup>.</span></div>
<div class="MsoNormal">
<span> <br />If a gate is switched on and off ‘fn’ times / second, then Pdynamic = C<sub>L</sub>. V<sub>DD</sub><sup>2</sup>. fn.</span></div>
<div class="MsoNormal">
<span> <br />Where fn </span><span style="font-family: Wingdings;"><span>à</span></span><span> frequency of energy consuming transitions. This is also called "switching activity".</span></div>
<div class="MsoNormal">
<span> <br />In general we can write, </span></div>
<div class="MsoNormal">
<span>Pdynamic = Ceff.V<sub>DD</sub><sup>2</sup>.f</span></div>
<div class="MsoNormal">
<span>Where f </span><span style="font-family: Wingdings;"><span>à</span></span><span> maximum switching activity possible i.e. clock rate.</span></div>
<div class="MsoNormal">
<span>Hence,</span></div>
<div class="MsoNormal">
<span>P<sub>avg</sub>= 1/T [0->T/2∫Vout (-C<sub>load</sub>.dVout/dt)dt+T/2->T∫(V<sub>DD</sub>-Vout)(C<sub>load</sub>.dVout/dt) dt]</span></div>
<div class="MsoNormal">
<span><br />i.e. P<sub>avg</sub>=1/T C<sub>load</sub>.V<sub>DD</sub><sup>2</sup><br />i.e. P<sub>avg</sub>=C<sub>load</sub>.V<sub>DD</sub><sup>2</sup>.F<sub>clk</sub></span></div>
<div class="MsoNormal">
<span>Here
energy required to charge up the output node to Vdd and charge down the
total output load capacitance to ground level is integrated. Applied
input periodic waveform having its period T is assumed to be having zero
rise and fall time. Note that average power is independent of
transistor size and characteristics.<a href="https://www.blogger.com/null" name="_Ref143667556"></a><a href="https://www.blogger.com/null" name="_Ref143442920"><span></span></a></span></div>
<h2 align="left" style="line-height: normal; text-align: left;">
<span><span><a href="https://www.blogger.com/null" name="_Toc191142773"><span lang="EN-GB">Internal power</span></a><span lang="EN-GB"></span></span></span></h2>
<div class="MsoNormal">
<span><span><span>This
is the power consumed by the cell when an input changes, but output
does not change [3]. In logic gates not every change of the current
running through an input cell necessarily leads to a change in the state
of the output net. Also internal node voltage swing can be only Vi
which can be smaller than the full voltage swing of Vdd leading to the
partial voltage swing.</span></span></span></div>
<div class="MsoNormal">
<span><span><span>Below mentioned steps can be taken to reduce dynamic power<br /><br />1) Reduce power supply voltage Vdd<br />2) Reduce voltage swing in all nodes<br />3) Reduce the switching probability (transition factor)<br />4) Reduce load capacitance </span></span></span></div>
<br />
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-6850597762621968082015-10-12T22:21:00.001-07:002015-10-12T22:21:44.180-07:00Verilog HDL: Test Bench in VLSIwww.spiroprojects.com<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">Using Verilog we
can write a test bench to apply stimulus to the design and verify the
results of the design. Up-front verification becomes very important as
design size increases in size and complexity. This ensures simulation
results matches with post synthesis results. A test bench can have two
parts, the one generates input signals for the model to be tested while
the other part checks the output signals from the design under test.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span style="font-family: Calibri;"><span lang="EN-US" style="color: #0070c0;">assign</span><span lang="EN-US"> </span></span><span lang="EN-US" style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;">à</span></span><span lang="EN-US"><span style="font-family: Calibri;"> assign values to registers, wires ; synthesizable and hence used in designs.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">force , release: assign and deassign values to wire, reg within procedural block; used in verification</span></span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMOVCMcQ7DxKH5Bv44dPLNYf9mpbyV0DIfK1P4nMj0tHtpvFoM6H5YJ6Qn3bGIzDJj2LapaHLY-hTOzBB72bHz5GZDIilopxEk8zYWAHVq3qtEY9wtTtI3NNex4NxkC73Pn1JP8B2B1qIr/s1600/test_bench.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="123" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMOVCMcQ7DxKH5Bv44dPLNYf9mpbyV0DIfK1P4nMj0tHtpvFoM6H5YJ6Qn3bGIzDJj2LapaHLY-hTOzBB72bHz5GZDIilopxEk8zYWAHVq3qtEY9wtTtI3NNex4NxkC73Pn1JP8B2B1qIr/s320/test_bench.png" width="320" /></a></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span style="font-family: Calibri;"><span lang="EN-US" style="color: #0070c0;">reg</span><span lang="EN-US"> x;</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="color: #0070c0;"><span style="font-family: Calibri;">initial </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="color: #0070c0;"><span style="font-family: Calibri;">begin</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">x=1’b0; <span style="color: #00b050;">//generate clock with 20 unit of duty cycle.</span></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">#20x=1’b1;</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">#20x=1’b0;</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="color: #0070c0;"><span style="font-family: Calibri;">end</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="color: #0070c0;"><span style="font-family: Calibri;">initial</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">#50 $stop; //stop the simulation at time unit 50</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="color: #00b050;"><span style="font-family: Calibri;">//same method is used to generate any inputs</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="color: #00b050;"><span style="font-family: Calibri;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<u><span lang="EN-US" style="color: #00b050; font-size: 14pt;"><span style="font-family: Calibri;">//test bench for full adder</span></span></u></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span style="font-family: Calibri;"><span lang="EN-US" style="color: #0070c0;">reg</span><span lang="EN-US"> ta,tb,tc; <span style="color: #00b050;">//inputs should be held for 20 units; hence declare it as ‘reg’</span></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span style="font-family: Calibri;"><span lang="EN-US" style="color: #0070c0;">wire</span><span lang="EN-US"> tsum,tcr; <span style="color: #00b050;">//outputs are driven by input. hence ‘wire’</span></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="color: #00b050;"><span style="font-family: Calibri;">//instantiate the design under test</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">fulladder fa(.sum(tsum), .cr(tcr), .a(ta), .b(tb), .c(tc));</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="color: #0070c0;"><span style="font-family: Calibri;">initial </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="color: #0070c0;"><span style="font-family: Calibri;">begin</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">#0 ta=1’b0; tb=1’b0; tc=1’b0; </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">#10 ta=1’b0; tb=1’b0; tc=1’b1; </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">#20 ta=1’b0; tb=1’b1; tc=1’b0; </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">#30 ta=1’b0; tb=1’b1; tc=1’b1; </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">#40 ta=1’b1; tb=1’b0; tc=1’b0; </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">#50 ta=1’b1; tb=1’b0; tc=1’b1; </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">#60 ta=1’b1; tb=1’b1; tc=1’b0; </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US"><span style="font-family: Calibri;">#70 ta=1’b1; tb=1’b1; tc=1’b1; </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="color: #0070c0;"><span style="font-family: Calibri;">end</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span style="font-family: Calibri;"><span lang="EN-US" style="color: #0070c0;">initial</span><span lang="EN-US"> $monitor (“$time ta=%b tb=%b tc = %b tsum=%b tcr=%b”, ta,tb,tc,tsum, tcr);</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="color: #00b050;"><span style="font-family: Calibri;">//print the value to console whenener there is a change in the values.</span></span></div>
<span lang="EN-US" style="color: #00b050;"><span style="font-family: Calibri;"> </span></span></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-53481731057344974492015-10-12T22:09:00.000-07:002015-10-12T22:09:07.158-07:00How to Demodulate AM Signal www.spiroprojects.com<br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
amplitude modulation is the simplest modulation technique among the
wide verity of modulation techniques in use. In this technique the
amplitude of a high frequency signal is varied corresponding to the
variation in the amplitude of the low frequency modulating signal. The
amplitude modulation of a high frequency signal is easy to achieve and
the demodulation is also less complex compared to other techniques. The
high frequency signal which is modulated to carry the low frequency
audio signals are called ‘carrier frequency’ since they are used to
carry the message signal to distant places with the help of wireless
transmission devices. The audio signals used for modulation is called
‘modulating signal’ or ‘message signal’ or ‘base band signal’. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
demodulation of an AM wave can be done with only few components and
unlike most of the demodulation technique there is no synchronization
required between the modulator and demodulator circuits. The message
signal appears as an envelope over the amplitude of the carrier wave and
the demodulator make use of this to extract the modulating signal from
the carrier and hence the technique of AM modulation is called envelope
detection.</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">This
article demonstrates how to generate an Amplitude Modulation (AM) and
demodulate the same wave to get the original modulating wave. The AM
wave is generated based on the circuits explained in article on AM modulation.</span></span></span><br />
<br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
AM demodulation is done using a low pass filter which can filter out
the high frequency carrier from the AM wave in such a way that only the
envelope of the carrier wave appears at the output of the filter. The
amplitude of the filtered wave has variations corresponding to the
amplitude of the modulating low frequency signal. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">To
get a better filtering using the Low pass filter the carrier frequency
must be as large as possible and hence the carrier frequency generator
circuit explained in the article AM modulation
has to be modified for a very high frequency carrier signal. The only
change that is required is the value of the capacitors C1 and C2 which
determines the carrier frequency generation. The circuit used for
generating the sine wave frequency is given below:</span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjsSzkQ34hPbPdAHnEY04F0DX-AkWh1a_Z0vst4e1KToT0cWDytxJ0SUM3EMnRKOqBnz5Fqp-_XIVHXcKp5wam_sEv_gySR1-JvLKRrzGIeJQH9uwFfKvI0flgrQ2aBufNEIBR_tDatfB/s1600/Variable+frequency+sine+wave+generator.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjsSzkQ34hPbPdAHnEY04F0DX-AkWh1a_Z0vst4e1KToT0cWDytxJ0SUM3EMnRKOqBnz5Fqp-_XIVHXcKp5wam_sEv_gySR1-JvLKRrzGIeJQH9uwFfKvI0flgrQ2aBufNEIBR_tDatfB/s320/Variable+frequency+sine+wave+generator.jpg" width="320" /></a></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><br /></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The value of the resistance R, R1 and R2 are kept same as explained in the article AM modulation. Now the frequency can be calculated using the equation:</span></span></span></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbTYoZ_he2yfQfqeebb7ZMDMIWalC_wmr4RRAlX5U-1RYPI_6ZqvQk7Y_ZLArK8ev8AqdrAz2hrO3n_q4NA-nQ3awN_tqDSNiCZQbcU5H1as7CT-Js0irHtWzeLCjinpThMNFaQCjWURCi/s1600/Formula+small1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbTYoZ_he2yfQfqeebb7ZMDMIWalC_wmr4RRAlX5U-1RYPI_6ZqvQk7Y_ZLArK8ev8AqdrAz2hrO3n_q4NA-nQ3awN_tqDSNiCZQbcU5H1as7CT-Js0irHtWzeLCjinpThMNFaQCjWURCi/s1600/Formula+small1.jpg" /></a></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><br /></span></span></span></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
value of R1 is kept the same as 1K but the value of the resistance R2
can be varied. As the value of the R2 decreases the output frequency of
the circuit increases. As it is mentioned in the article AM modulation
that the minimum value of the R2 which produces the highest stable
frequency is around 130 ohms. In this project to increase the carrier
frequency at least 10 times that achieved in the previous project the
value of C1 and C2 is reduced to 10 times than that used in the previous
AM modulation project. Hence the maximum carrier frequency can be
calculated </span><span style="line-height: 200%;">using the frequency equation as shown below:</span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC9kGYHEvHjpkk44CPoGMKheab_4pGLVotYwABn54QcF22z5Md9I_2M6tMlsPId9RXpa5GrXOHmFIvPcDvxa_CBpeeOhgjcNhedXjwymMZJOlMhp3hZMo4bje3em-CdFSCAa8Q3c0B4ZSD/s1600/Formula+1_0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="42" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC9kGYHEvHjpkk44CPoGMKheab_4pGLVotYwABn54QcF22z5Md9I_2M6tMlsPId9RXpa5GrXOHmFIvPcDvxa_CBpeeOhgjcNhedXjwymMZJOlMhp3hZMo4bje3em-CdFSCAa8Q3c0B4ZSD/s320/Formula+1_0.jpg" width="320" /></a></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><br /></span></span></span></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The message frequency or modulating frequency generator circuit is kept the same as discussed in the </span><span style="line-height: 200%;">article AM modulation. The following image shows the carrier wave and the message wave displayed in a dual-channel CRO. </span></span></span> </span></span></span> </span></span></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOPuCjQFT_1Wek2qPTn2cR3GZLcxn0qtllVjeNL8xK-_E4t_miYxc3A-v_zjaB30Eb7_B8jS00X6y1Mh15U7PNjUGwsNqhQvFuukzlZLJBeFYLWCiBlkDFa0UvH8jmZ4Z3nHHrFgpQh4EK/s1600/CARRIER_MESSAGE_WAVES_0.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOPuCjQFT_1Wek2qPTn2cR3GZLcxn0qtllVjeNL8xK-_E4t_miYxc3A-v_zjaB30Eb7_B8jS00X6y1Mh15U7PNjUGwsNqhQvFuukzlZLJBeFYLWCiBlkDFa0UvH8jmZ4Z3nHHrFgpQh4EK/s320/CARRIER_MESSAGE_WAVES_0.JPG" width="320" /></a></div>
<br /><br />
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
modulation is controlled in this project by some adjustment on the
input potentiometer and also with the introduction of a 100K ohm
resistor. The carrier signal is now fed through the N-channel from drain
to source other than from the source to drain as in the previous
project. The output can now be taken from the drain end of the FET where
the internal channel modulation by the gate signal is more pronounced.
The modified AM modulator circuit and the image of the circuit wired in
the breadboard are shown below:</span></span></span></span></span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLgx_nmw7JyEN6Mz5ILPyH6_J1kNAyT9M8aNIw3zhA_GGntB0V3mgfhU-IycjbfY-n_auLRTV0cTxEu76AsJR8hn3FGYcdpkMe_AOPRzY3IJZuR-Yc3phvqjcOuhIj5cpDpZD6yui2GD63/s1600/4_5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLgx_nmw7JyEN6Mz5ILPyH6_J1kNAyT9M8aNIw3zhA_GGntB0V3mgfhU-IycjbfY-n_auLRTV0cTxEu76AsJR8hn3FGYcdpkMe_AOPRzY3IJZuR-Yc3phvqjcOuhIj5cpDpZD6yui2GD63/s320/4_5.jpg" width="320" /></a></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><br /></span></span></span></span></span></span>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpIfrjGA9SXkt3iB8bitAAtjrI_-9QBAVZZ53XRkpIeJGlb_W5kQEKPo8mCtsb8dNJdnlrFLSdJBtlSDYTw5UwF0cniIaPnRs-9SJuLp0OsVz7OrKoMStaOr7mYIUQXBpyrq6DuGDSBNeB/s1600/am+modulator+circuit.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpIfrjGA9SXkt3iB8bitAAtjrI_-9QBAVZZ53XRkpIeJGlb_W5kQEKPo8mCtsb8dNJdnlrFLSdJBtlSDYTw5UwF0cniIaPnRs-9SJuLp0OsVz7OrKoMStaOr7mYIUQXBpyrq6DuGDSBNeB/s320/am+modulator+circuit.jpg" width="320" /></a></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><br /></span></span></span></span></span></span>
<br />
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The AM wave is displayed along with the original modulating wave using a dual channel CRO as shown in the following image:</span></span></span></span></span></span></span></span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf1RClOwIYu8MwPuSManGR4r767JdHVNuvHypxt9SIN8JRnHLQeU8fnWBGEiSNYBES9BH2lMHgWspaJdSbl1dMA9kLSA0VDLwEqD-dwP7B8aE49EDujmHw5XyZ2vgvwD0XxYEaz-EWH4BQ/s1600/MESSAGE_MODULATED.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf1RClOwIYu8MwPuSManGR4r767JdHVNuvHypxt9SIN8JRnHLQeU8fnWBGEiSNYBES9BH2lMHgWspaJdSbl1dMA9kLSA0VDLwEqD-dwP7B8aE49EDujmHw5XyZ2vgvwD0XxYEaz-EWH4BQ/s320/MESSAGE_MODULATED.JPG" width="320" /></a></div>
<br /><br />
<br />
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
low frequency wave at the center is the message wave and the less
bright high frequency wave is the modulated carrier wave. The amplitude
of the message wave has been reduced significantly using the
potentiometer R2 before applying to the FET so that it won’t over
modulate the entire amplitude of carrier wave. The following image shows
the waveform that appears at the input and output of the FET modulator.</span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfQ6Hfz5gEhkcn-XqIl6_FbXqW-j0M-IuABiYA_GbhVgIdA8WGrYzpfIzRUePGRmghww00g_IWVozUXztgpTkFHYqIV-GPbjo_6m7636IwPlVYYuZAp1dVyx1vkXG840Idnh4oexWcaEfp/s1600/IMG_5890.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfQ6Hfz5gEhkcn-XqIl6_FbXqW-j0M-IuABiYA_GbhVgIdA8WGrYzpfIzRUePGRmghww00g_IWVozUXztgpTkFHYqIV-GPbjo_6m7636IwPlVYYuZAp1dVyx1vkXG840Idnh4oexWcaEfp/s320/IMG_5890.JPG" width="320" /></a></div>
<br />
<br />
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span> </span></span></span> </span></span></span> </span></span></span><br />
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-66810635064247778472015-10-12T21:52:00.000-07:002015-10-12T21:52:05.397-07:00Frequency Modulated Waveform Generationwww.spiroprojects.com<br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The <strong>frequency modulation</strong>
(FM) is one of the widely used modulation technique in wireless
transmission. They are most commonly used in high quality radio
transmission from FM radio stations. The main advantage of the frequency
modulation technique is the very high signal to noise ratio that can be
achieved on the received signals.</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">In
the technique of frequency modulation the frequency of a carrier wave
is modulated according to the variations in the amplitude of the message
wave. Unlike the amplitude modulation technique the amplitude of the
carrier signal remains same. The receiver tracks for the change in the
frequency of the received signal only and the amplitude variations due
to the noise does not make any changes in the receiver output. Hence
quality of the signal produced at the output of the receiver is very
high compared to other modulation techniques.</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">This article demonstrates the <strong>generation of frequency modulated waveform</strong> in the simplest possible way. Here a <strong>Wien Bridge oscillator based circuit</strong> is used to generate pure sine wave which is then used to modulate the frequency of the waves produced by a 555 timer IC.</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><b><u><span style="line-height: 200%;">DESCRIPTION:</span></u></b></span></span><b><u><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></u></b></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
555 is an 8 pin versatile timer IC which can be wired to make thousands
of verity circuits. The 555 can be used as monostable, bistable or
astable multivibrator circuits. They are most commonly used as an
astable multivibrator which can continuously produce pulses at constant
intervals of time. The 555 IC requires only few components which can be
connected to their pins and the output pulse waveform can be obtained
from the pin3 of the 555 IC. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The pinout of the 555 IC is shown in the following figure:</span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOMl7fChPGgeQWoDX61WPY94aRAQ9LyUtD1X6mA79s85S2cbfAiq1t5WoPRJGiBrsDfml8J2fBNnipgaill9ofMrXCQUW97OI8pJO5KJh75fhCV0DizrpUOL63W9UnQNmILwzLLEyb5ZCD/s1600/1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOMl7fChPGgeQWoDX61WPY94aRAQ9LyUtD1X6mA79s85S2cbfAiq1t5WoPRJGiBrsDfml8J2fBNnipgaill9ofMrXCQUW97OI8pJO5KJh75fhCV0DizrpUOL63W9UnQNmILwzLLEyb5ZCD/s320/1.JPG" width="320" /></a></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><br /></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
pin number 1 and 8 are used to supply the ground and VCC to the IC
respectively. The pin number 2, 6 and 7 are used according to the timing
requirements of various pulse generating circuits. The pin number 4 can
be used to reset IC. The pin number 3 provides the output pulse from
the 555 timer IC. The pin number 5 the pin which can change or modulate
the pulse frequency produced at the pin number 3. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">In
this project the 555 is wired as an astable multivibrator to produce
continuous square waves with a fixed time period. The sine wave
generated using the Wien Bridge oscillator applied to the pin number 5
of the 555 timer IC to modulate the frequency of the generated pulses.
Since the output of a Wien Bridge oscillator is a pure sine wave having
both the positive and negative half cycles they should not be directly
applied to the 555 which works on positive DC voltage only. The entire
sinusoidal waveform should be clamped to the positive voltage side
before it is applied to the 555 modulator circuit so as to get the
output response for both the half cycles. Hence the entire circuit can
be divided into three separate blocks:</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l1 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> 1)<span style="line-height: normal;"> </span></span><span style="line-height: 200%;">Sine wave generator using Wien Bridge oscillator</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l1 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> 2)<span style="line-height: normal;"> </span></span><span style="line-height: 200%;">Positive clamper</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoListParagraphCxSpLast" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; mso-add-space: auto; mso-list: l1 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> 3)<span style="line-height: normal;"> </span></span><span style="line-height: 200%;">Frequency modulator using 555</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> The block diagram of the entire circuit is shown in the following diagram:</span></span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnm0PpOK8HaiEK_FMSDTNVpZt6XtMxgDJIjxWv4RiBYvte1j6ZG8hqZt0niwQb7ak52bRPCX63M5ambJiRxN5aIQvP8cAsnlL9vFVO1fysPyKV9bnfThB8rQK3wblwxTI-ZTxDhZezKv5r/s1600/1.1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="56" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnm0PpOK8HaiEK_FMSDTNVpZt6XtMxgDJIjxWv4RiBYvte1j6ZG8hqZt0niwQb7ak52bRPCX63M5ambJiRxN5aIQvP8cAsnlL9vFVO1fysPyKV9bnfThB8rQK3wblwxTI-ZTxDhZezKv5r/s320/1.1.jpg" width="320" /></a></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><br /></span></span></span>
<br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">A
sine wave generator circuit is used in this project which is based on
the Wien Bridge oscillator circuit. The Wien Bridge oscillator circuit
can produce distortion less sinusoidal sweep at its output. The circuit
is designed in such a way that both the amplitude and frequency of the
oscillator can be adjusted using potentiometers. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The circuit diagram of the variable frequency sine wave oscillator is shown in the following:</span></span></span><br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2gUpRb9E5VfKnzK824RDsv1FlAjZNdt9gbuV5knzNP1NTygTyLmF8xutNjSYUl0AOLLQa9GyBuIamPaN5AiVoWrHYJpScxV9NPZiLV-jk2VrLNR0dmidgUEupT8mhyphenhyphenvhkI9PqCeXGJ6xo/s1600/Variable+frequency+sine+wave+generator.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2gUpRb9E5VfKnzK824RDsv1FlAjZNdt9gbuV5knzNP1NTygTyLmF8xutNjSYUl0AOLLQa9GyBuIamPaN5AiVoWrHYJpScxV9NPZiLV-jk2VrLNR0dmidgUEupT8mhyphenhyphenvhkI9PqCeXGJ6xo/s320/Variable+frequency+sine+wave+generator.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzoYKVLXpSO1EGIv6k6mdrpL-uge1UxqKJMz09eDGANrf7igftDhiSQ51Xw2KX8tV5VQPUaYDGktQy-T9fjwV-G4-anOYYx_Z_27QN1u7jTxUpzuI4c4gXQ_5MxkkdYMPBwCsbI2s8qCdl/s1600/Variable+frequency+sine+wave+generator_image.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzoYKVLXpSO1EGIv6k6mdrpL-uge1UxqKJMz09eDGANrf7igftDhiSQ51Xw2KX8tV5VQPUaYDGktQy-T9fjwV-G4-anOYYx_Z_27QN1u7jTxUpzuI4c4gXQ_5MxkkdYMPBwCsbI2s8qCdl/s320/Variable+frequency+sine+wave+generator_image.jpg" width="320" /></a></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
frequency of the above circuit can be varied by simply varying the
potentiometer R2 and the amplitude of the wave form can be adjusted by
varying the potentiometer R. The frequency of the sine wave generated by
the above circuit depends on the components R1, R2, C1 and C2 and the
equation for the frequency is given below:</span></span></span></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzydY8bEjyhtT3dO2RLKpS3Du83SCDfW1V5qrozQvcPhmLsT1z-JDkaVxB0gM0SwmQnEHiT-TopbHD_ooO5kyDpWhG-WlEbQoLHU-6Ao7dFJb2FVA6F94Jo-EwhAWcoOCqvDnK9BQcAqi2/s1600/formula+for+fm.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzydY8bEjyhtT3dO2RLKpS3Du83SCDfW1V5qrozQvcPhmLsT1z-JDkaVxB0gM0SwmQnEHiT-TopbHD_ooO5kyDpWhG-WlEbQoLHU-6Ao7dFJb2FVA6F94Jo-EwhAWcoOCqvDnK9BQcAqi2/s1600/formula+for+fm.jpg" /></a></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><br /></span></span></span></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">For
the ease of adjusting the amplitude of the wave to obtain proper
sinusoidal sweep, a coarse and fine adjustment has been implemented
using potentiometers. A low value (1K) potentiometer is connected in
series with the high value (100K) potentiometer so that the coarse
adjustment can be done with the high value resistor and the fine
adjustment with the low value resistor. </span></span></span> </span></span></span> </span></span></span></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-87703518399135425092015-10-12T06:40:00.004-07:002015-10-12T06:47:53.145-07:00ASP.NET AJAX Server Controls with Client-Side www.spiroprojects.com<br />
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>KARTHICK</o:Author>
<o:Keywords>IEEE TITLES</o:Keywords>
<o:Version>14.00</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
we'll look at how to create a custom ASP.NET AJAX server control as a
wrapper for the Google Maps JavaScript API. The server-side code will be
written in C# (which I highly recommend), but it could just as easily be
written in VB.NET. The focus will be on creating the control, and we'll take a
good look at the whole process of creating a custom ASP.NET AJAX server control,
with client side functionality as well.<br />
<br />
ire it up and go to File -> New -> Project. From the list on the left,
select Web, and then select ASP.NET AJAX Server Control from the main panel on
the right. Name the project <code><span style="font-size: 10.0pt;">MapControl</span></code>,
and make sure that the option to create a new solution is selected (if
applicable). Click OK to create the project. <br />
<br />
<img border="0" data-original-url="http://nettuts.s3.amazonaws.com/2094_serverControls/CreateProject.jpg" src="https://cdn.tutsplus.com/net/uploads/legacy/2094_serverControls/CreateProject.jpg" /><br />
<br />
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Looking in Solution Explorer, you'll
notice that Visual Studio has generated some files for us already. We'll
examine the generated code a bit, but before we do, let's rename the files and
the classes contained in the files.</span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Rename ClientControl1.js to GoogleMap.js </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Rename ClientControl1.resx to GoogleMap.resx </span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Rename ServerControl1.cs to GoogleMap.cs </span></li>
</ul>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Now, hit Control + H to bring up the
Quick Replace window. Select the appropriate options to replace </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">ServerControl1</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> with </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">GoogleMap</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">. Be sure that it's set to look in the whole project, and
not just the current file, and then click Replace All. Now do the same thing to
replace </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">ClientControl1</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> with </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">GoogleMap</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Let's break </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">GoogleMap.js</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> apart piece by piece.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><reference</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">name="MicrosoftAjax.js"/></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">This line simply tells Visual
Studio's IntelliSense engine to include the types and methods contained within
MicrosoftAjax.js in the IntelliSense dropdowns.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Type.registerNamespace("MapControl");</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">MapControl.GoogleMap =
function(element) {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> MapControl.GoogleMap.initializeBase(this,
[element]);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">The first line registers the
namespace MapControl with the AJAX framework. The rest of the code here acts as
the constructor for the client class of our custom control. This is where we
will declare all private properties on the client side.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">MapControl.GoogleMap.prototype = {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> initialize:
function() {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> MapControl.GoogleMap.callBaseMethod(this,
'initialize');</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> //
Add custom initialization here</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> },</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> dispose:
function() { </span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> //Add
custom dispose actions here</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> MapControl.GoogleMap.callBaseMethod(this,
'dispose');</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> }</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Here our custom control's client
class is defined using the prototype model. This is where all methods for the
client class are declared. As you probably guessed, the initialize and dispose
methods are called automatically upon the creation and destruction of an
instance of this class, respectively. In this case, we'll make use of the
initialize method to make a call to the Google Maps API and set up the map.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">MapControl.GoogleMap.registerClass('MapControl.GoogleMap',
Sys.UI.Control);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">if</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">
</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">(typeof(Sys) !== 'undefined')
Sys.Application.notifyScriptLoaded();</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">The first part here registers the
class with the defined class name and namespace, and also assigns a base class
(Sys.UI.Control). Lastly, a call is made to
Sys.Application.notifyScriptLoaded(), which notifies the Microsoft AJAX
framework that the script has finished loading. Note that this is no longer
necessary in the .NET Framework 4 and above.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">The file named GoogleMap.cs is where
all of the server-side code is contained. Opening the file, the first thing
you'll notice is that it contains a class called GoogleMap, which inherits from
the ScriptControl class. ScriptControl is an abstract base class which inherits
from WebControl, and implements IScriptControl.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">public class</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">GoogleMap : ScriptControl</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Although it would be fine to leave
that as it is, we can create a more flexible situation by implementing
IScriptControl directly, and inheriting from WebControl instead. By doing so,
we open up the possibility of inheriting from a more complex base class, such
as ListControl. I also have run across problems inheriting from ScriptControl
under various circumstances. Let's change it now to the following:</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">public class GoogleMap : WebControl,
IScriptControl</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Passing by the constructor, you'll
see the GetScriptDescriptors and GetScriptReferences methods.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">protected</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">override
IEnumerable<ScriptDescriptor></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> GetScriptDescriptors()</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">{</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> ScriptControlDescriptor
descriptor = new</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">ScriptControlDescriptor("MapControl.GoogleMap",
this.ClientID);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> yield</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">return</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">
</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">descriptor;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">// Generate the script reference</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">protected</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">override
IEnumerable<ScriptReference></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> GetScriptReferences()</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">{</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> yield</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">return</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">
</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">new</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">ScriptReference("MapControl.GoogleMap.js",
this.GetType().Assembly.FullName);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Since
we're implementing </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">IScriptControl</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> directly, the access level modifiers will need to be
changed from protected to public, and the override modifiers should be removed
altogether.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">In the </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">GetScriptDescriptors</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> method, the </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">ScriptControlDescriptor</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> object that is created and returned tells the framework
which client class to instantiate, and also passes the ID of the HTML element
associated with the current instance of the control. As you'll see in the next
section, this is also the mechanism through which property values are passed
from server-side code to the client class.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">The code in the </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">GetScriptReferences</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> method simply adds a </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">ScriptReference</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> to our client code file - it will be loaded automatically
by the framework when needed.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Alright, now that we have some
background information, it's time to start building the map control. To start
out, we'll add some properties to the server-side class (in </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">GoogleMap.cs</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">), sticking with just the basics for now. The zoom and
center point of the map is what comes to mind as necessary properties.</span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Zoom</span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">CenterLatitude</span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">CenterLongitude</span></li>
</ul>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">private</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">int _Zoom = 8;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">public int Zoom</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">{</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> get { return</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">this._Zoom; }</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> set {
this._Zoom = value; }</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">public double CenterLatitude { get;
set; }</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">public double CenterLongitude { get;
set; }</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">You might be wondering how the
values of these properties defined in the server-side class are going to end up
in the client class. Well, this is where the ScriptControlDescriptor comes into
play. By simply calling the AddProperty method of the ScriptControlDescriptor
and passing in the client-side property name and current value, the framework
takes care of all the details.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">public
IEnumerable<ScriptDescriptor> GetScriptDescriptors()</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">{</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> ScriptControlDescriptor
descriptor = new</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">ScriptControlDescriptor("MapControl.GoogleMap",
this.ClientID);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> descriptor.AddProperty("zoom",
this.Zoom);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> descriptor.AddProperty("centerLatitude",
this.CenterLatitude);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> descriptor.AddProperty("centerLongitude",
this.CenterLongitude);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> yield</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">return</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">
</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">descriptor;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Now we need to define the properties
in the client class. Open GoogleMap.js and modify the constructor to look like
the following:</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">MapControl.GoogleMap =
function(element) {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> MapControl.GoogleMap.initializeBase(this,
[element]);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> this._zoom =
null;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> this._centerLatitude
= null;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> this._centerLongitude
= null;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">To make these properties accessible
to the ASP.NET AJAX framework, we need to define get and set accessors. These
accessor methods must follow the naming conventions of the framework - as an
example, for the zoom property the accessors should be named get_zoom and
set_zoom. Add the following code to the prototype declaration for the class:</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">get_zoom: function() {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> return</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">this._zoom;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">},</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">set_zoom: function(value) {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> if</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">(this._zoom !== value) {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> this._zoom
= value;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> this.raisePropertyChanged("zoom");</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> }</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">},</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">get_centerLatitude: function() {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> return</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">this._centerLatitude;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">},</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">set_centerLatitude: function(value)
{</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> if</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">(this._centerLatitude !== value) {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> this._centerLatitude
= value;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> this.raisePropertyChanged("centerLatitude");</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> }</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">},</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">get_centerLongitude: function() {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> return</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">this._centerLongitude;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">},</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">set_centerLongitude: function(value)
{</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> if</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">(this._centerLongitude !== value) {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> this._centerLongitude
= value;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> this.raisePropertyChanged("centerLongitude");</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> }</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">The raisePropertyChanged method is
defined on an ancestor class, Sys.Component, and raises the propertyChanged
event for the specified property.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">We'll be writing the code that
creates the map in just a minute, but first we need to define a property that
will store the map object. That way we will be able to access the map after
it's created - in an event handler, for example. Add the following property
declaration to the constructor for the client class (GoogleMap.js) after the
other properties:</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">this._mapObj = null;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Now let's add a createMap function
to the prototype:</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">createMap: function() {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> var</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">centerPoint = new</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">google.maps.LatLng(this.get_centerLatitude(),
this.get_centerLongitude());</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> var</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">options = {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> zoom:
this.get_zoom(),</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> center:
centerPoint,</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> mapTypeId:
google.maps.MapTypeId.ROADMAP</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> };</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> this._mapObj
= new</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">google.maps.Map(this._element,
options);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">The </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">google.maps.LatLng</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> type is defined in the Google Maps JavaScript API (which we
will reference later), and as you probably guessed, represents a point on the
map defined by latitude/longitude. In the map options, we're setting the zoom
and center point of the map to the values passed in by the framework. A map
type of roadmap is set, but this could easily be set to satellite or terrain.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">The last line creates the </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">google.maps.Map</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> object, storing a reference to it in the property we
created above. </span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">You'll notice the constructor takes
two parameters - most notably the first one is a reference to the HTML element
associated with the control - the second one is just passing in the map
options.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">All that remains now on the client
side is to call our new </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">createMap</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> function from the initialize function, so that the map is
created when the control is initialized.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">initialize: function() {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> MapControl.GoogleMap.callBaseMethod(this,
'initialize');</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> this.createMap();</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">},</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Back in the server-side code
(GoogleMap.cs), we need to override the TagKey property in our GoogleMap class,
and return a value of HtmlTextWriterTag.Div. This will ensure that the control
is rendered as an html div element.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">protected</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">override HtmlTextWriterTag TagKey</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">{</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> get</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> return</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">HtmlTextWriterTag.Div;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> }</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Now let's add a private field of
type ScriptManager to the class - we'll call it sm. This will store a reference
to the page's ScriptManager, which we'll use in a bit.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">private</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">ScriptManager sm;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Next, we'll override the OnPreRender
and Render methods of the GoogleMap class.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">protected</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">override void OnPreRender(EventArgs
e)</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">{</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> if</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">(!this.DesignMode)</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> {</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> //
Test for ScriptManager and register if it exists</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> sm
= ScriptManager.GetCurrent(Page);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> if</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">(sm == null)</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> throw</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">new</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">
</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">HttpException("A ScriptManager control must exist on
the current page.");</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> sm.RegisterScriptControl(this);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> }</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> base.OnPreRender(e);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Here, we're basically just getting
the current page's ScriptManager (and making sure it exists!), and then
registering the current instance of the control with it. This step, as well as
the next, is absolutely necessary - otherwise the client side of the control
won't work.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">protected</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">override void Render(HtmlTextWriter
writer)</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">{</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> if</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">(!this.DesignMode)</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> sm.RegisterScriptDescriptors(this);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"> base.Render(writer);</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">This registers the control's script
descriptors with the page's </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">ScriptManager</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> - </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">sm</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">
is a reference to the </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">ScriptManager</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> that we retrieved in the </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">OnPreRender</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> method.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Last of all (for now!), we'll make
this control compatible with partial trust scenarios, as is quite common due to
the popularity of shared web hosting. In Solution Explorer, open the Properties
folder, and then open </span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">AssemblyInfo.cs</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">. Add the following reference near the top of the file.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">using System.Security;</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Add the following line somewhere in
the middle or near the bottom of the file.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">[assembly:
AllowPartiallyTrustedCallers()] </span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">
</span></div>
<div class="MsoNormal">
<br /></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-7501915929394242992015-10-12T06:25:00.004-07:002015-10-12T06:25:59.003-07:00Windows Communication Foundation in .NETwww.spiroprojects.com<br />
To get a sense
of the problems that WCF addresses, suppose that a car rental firm decides to
create a new application for reserving cars. Since this application will run on
Windows, the firm chooses to build it on the .NET Framework 4. The architects
of this rental car reservation application know that the business logic it
implements will need to be accessible by other software running both inside and
outside their company. Accordingly, they decide to build it in a
service-oriented style, with the application’s logic exposed to other software
through a well-defined set of services. To implement these services, the new
application will use WCF. Figure 1 illustrates this situation.<br />
<br />
<img id="image001" src="https://i-msdn.sec.s-msft.com/dynimg/IC371615.jpg" /><br />
<div class="MsoNormal">
Over its
lifetime, the rental car reservation application will likely be accessed by a
range of other applications. When it’s designed, however, the architects of the
rental car reservation application know that its business logic will be
accessed by three other kinds of software:</div>
<ul>
<li>A client application running on Windows desktops
that will be used by employees in the organization’s call center. Created
specifically for the new reservations system, this application will also be
built using the .NET Framework 4 and WCF. (In some sense, this application
isn’t truly distinct from the new rental car reservation application, since its
only purpose is to act as a client for the new system. Still, from a
service-oriented perspective, it’s just another client for the reservation
system’s business logic.)</li>
<li>An existing reservation application built on a
Java Platform, Enterprise Edition (Java EE) server running on a non-Windows
system. Due to a recent merger with another car rental firm, this existing
system must be able to access the new application’s logic to provide customers
of the merged firms with a unified experience.</li>
<li>Partner applications running on a variety of
platforms, each located within a company that has a business arrangement with
the car rental firm. Partners might include travel agencies, airlines and
others that are required to make car rental reservations. </li>
</ul>
<div class="MsoNormal">
The diverse
communication requirements for the new rental car reservation application
aren’t simple. For interactions with the call center client application, for
instance, performance is paramount, while interoperability is straightforward,
since both are built on the .NET Framework. For communication with the existing
Java EE-based reservation application and with the diverse partner
applications, however, interoperability becomes the highest goal. The security
requirements are also quite different, varying across connections with local
Windows-based applications, a Java EE-based application running on another operating
system, and a variety of partner applications coming in across the Internet.
Even transactional requirements might vary, with only the internal applications
being allowed to use distributed atomic transactions. How can these diverse
business and technical requirements be met without exposing the creators of the
new application to unmanageable complexity?</div>
<div class="MsoNormal">
The answer to
this question is WCF. Designed for exactly this kind of diverse but realistic
scenario, WCF is becoming the default technology for Windows applications that
expose and access services. This paper introduces WCF, examining what it
provides and showing how it’s used. Throughout this introduction, the scenario
just described will serve as an example. The goal is to make clear what WCF is,
illustrate the problems it addresses, and show how it solves those problems. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
WCF is
implemented primarily as a set of classes on top of the .NET Framework’s Common
Language Runtime (CLR). This lets .NET developers build service-oriented
applications in a familiar way. As Figure 2 shows, WCF allows creating clients
that access services. Both the client and the service can run in pretty much
any Windows process—WCF doesn’t define a required host. Wherever they run, clients
and services can interact via SOAP, via a WCF-specific binary protocol, and in
other ways. </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://i-msdn.sec.s-msft.com/dynimg/IC371616.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" id="image002" src="https://i-msdn.sec.s-msft.com/dynimg/IC371616.jpg" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
As the
scenario described earlier suggests, WCF addresses a range of problems for
communicating applications. Three things stand out, however, as WCF’s most
important aspects: </div>
<ul>
<li>Unification of the original .NET Framework
communication technologies</li>
<li>Interoperability with applications built on
other technologies</li>
<li>Explicit support for service-oriented
development.</li>
</ul>
<div class="MsoNormal">
The following
sections describe what WCF offers in each of these areas.</div>
<h3>
Unification of Microsoft’s Distributed Computing Technologies</h3>
<div class="MsoNormal">
Think about
the team of developers implementing the rental car reservation application
described earlier. In the world before WCF, this team would need to choose the
right distributed technology from the multiple choices originally offered by
the .NET Framework. Yet given the diverse requirements of this application, no
single technology would fit the bill. Instead, the application would probably
use several of these older .NET technologies. For example:</div>
<ul>
<li>ASMX, also called ASP.NET Web Services, would be
an option for communicating with the Java EE-based reservation application and
with the partner applications across the Internet. Given that Web services are
widely supported today, this would likely be the most direct way to achieve
cross-vendor interoperability.</li>
<li>.NET Remoting is a natural choice for
communication with the call center application, since both are built on the
.NET Framework. Remoting is designed expressly for .NET-to-.NET communication,
so it would offer the best performance for this situation.</li>
<li>Enterprise Services might be used by the rental
car reservation application for things such as managing object lifetimes and
defining distributed transactions. These functions could be useful in
communicating with any of the other applications in this scenario, but Enterprise
Services supports only a limited set of communication protocols.</li>
<li>Web Services Enhancements (WSE) might be used
along with ASMX to communicate with the Java EE-based reservation application
and with the partner applications. Because it implements more advanced
SOAP-based standards, known collectively as the WS-* specifications, WSE can
allow better security and more, as long as all applications involved support
compatible versions of these specifications. </li>
<li>System.Messaging, which provides a programming interface
to Microsoft Message Queuing (MSMQ), could be used to communicate with
Windows-based partner applications that weren’t always available. The
persistent queuing that MSMQ provides is typically the best solution for
intermittently connected applications.</li>
<li>System.Net might be used to communicate with
partner applications or perhaps in other ways. Using this approach, developers
can create applications that use the HTTP-based communication style known as
Representational State Transfer (REST).</li>
</ul>
<div class="MsoNormal">
If it were
built on an earlier version of the .NET Framework, the rental car reservation
application would need to use more than one of these communication
technologies, and maybe even all of them, to meet its requirements. Although
this is technically possible, the resulting application would be complex to
implement and challenging to maintain. A better solution is needed.</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<br />
<br />
<img id="image003" src="https://i-msdn.sec.s-msft.com/dynimg/IC371617.jpg" /><br />
<br />
<div class="MsoNormal">
Enterprises
today typically have systems and applications that were purchased from a range
of vendors. In the rental car application, for instance, communication is required
with various other software applications written in various languages and
running on various operating systems. This kind of diversity is a reality in
many organizations, and it will remain so for the foreseeable future.
Similarly, applications that provide services on the Internet can be built on
any platform. Clients that interact with them must be capable of communicating
in whatever style is required.</div>
<div class="MsoNormal">
WCF-based
applications can work with other software running in a variety of contexts. As
shown in Figure 4, an application built on WCF can interact with all of the
following:</div>
<ul>
<li>WCF-based applications running in a different
process on the same Windows machine</li>
<li>WCF-based applications running on another
Windows machine</li>
<li>Applications built on other technologies, such
as Java EE application servers, that support standard Web services. These
applications can be running on Windows machines or on machines running other
operating systems, such as Sun Solaris, IBM z/OS, or Linux. </li>
</ul>
<img id="image004" src="https://i-msdn.sec.s-msft.com/dynimg/IC371618.jpg" /><br />
<br />
To allow more
than just basic communication, WCF implements Web services technologies defined
by the WS-* specifications. All of these specifications were originally defined
by Microsoft, IBM, and other vendors working together. As the specifications
have become stable, ownership has typically passed to standards bodies such as
the Organization for the Advancement of Structured Information Standards
(OASIS). As Figure 5 shows, these specifications address several different
areas, including basic messaging, security, reliability, transactions, and
working with a service’s metadata. <br />
<br />
<br />
<img id="image005" src="https://i-msdn.sec.s-msft.com/dynimg/IC371619.jpg" /> Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-49268584927282973222015-10-11T22:20:00.000-07:002015-10-11T22:24:21.320-07:00Wavelet-based Image Restorationwww.spiroprojects.com<br />
Although the Wiener filtering is the optimal tradeoff of inverse
filtering and noise smoothing, in the case when the blurring filter is
singular, the Wiener filtering actually amplify the noise.
This suggests that
a denoising step is needed to remove the amplified noise.
Wavelet-based denoising scheme, a successful approach introduced
recently by Donoho, provides a natural technique for this purpose.
Therefore, the image restoration contains two separate steps:
Fourier-domain inverse filtering and wavelet-domain image denoising.
The digram is shown as follows.<br />
<br />
<br />
<img align="MIDDLE" src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/donoho.gif" /><br />
<br />
Donoho's approach for image restoration improves the performance,
however, in the case when the blurring function is not invertible,
the algorithm is not applicable. Furthermore, since the two steps are
separate, there is no control over the overall performance of the
restoration. Recently, R. Neelamani et al. proposed
a wavelet-based deconvolution technique for ill-conditioned systems.
The idea is simple: employ both Fourier-domain Wiener-like and wavelet-domain
regularization. The regularized inverse filter is introduced by
modifying the Wiener filter with a new-introduced parameter:<br />
<br />
<img align="MIDDLE" src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/wiener_reg.gif" /><br />
<br />
The parameter <img align="MIDDLE" src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/alpha.gif" />
can be optimally selected to minimize
the overall mean-square error. The diagram of the algorithm
is displayed as follows.<br />
<br />
<br />
<img align="MIDDLE" src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/ward.gif" /><br />
<br />
The implementation of the regularized inverse filter
involves the estimation of the power spectrum
of the original image in the spatial domain.
Since wavelet transforms have good decorrelation property,
the wavelet coefficients of the image can be better modeled
in a stochastic model, and the power spectrum can be
better estimated. This inspires a new approach: changing the
order of the regularized inverse filtering and the
wavelet transform. (See the following digram)<br />
<br />
<img align="MIDDLE" src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/exchange.gif" /><br />
<br />
<br />
This way the both inverse filtering and
noise smoothing can be performed in wavelet domain.
Specifically, the power spectrum of the image in a same subband
can be estimated under the assumption that the wavelet
coefficients are independent. Therefore, the power spectrum
is just the variance of the wavelet coefficients.
We note that the exchange of the order of inverse
filtering and wavelet transform is valid only when
undecimated wavelet transform is used and the blurring function
is separable. Therefore, for interpretation we can
exchange the order of the blurring operation and the
wavelet transform, which means that the inverse filtering
cancels the blurring in the wavelet domain. So, wavelet
thresholding results in a reasonable estimate.
The above explanation can be visualized using
the following figure.<br />
<br />
<br />
<a href="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/subband.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img align="MIDDLE" border="0" src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/subband.gif" /></a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<h3>
Simulation </h3>
As usual we corrupted the standard 256x256 lena test image by convolving
wit the simple 4x4 square blurring filter
<a href="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/sixteen_one.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img align="MIDDLE" border="0" src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/sixteen_one.gif" /></a><br />
<br />
<br />
<br />
<br />
and adding zero-mean white Gaussian noise of variance 100.
The three introduced wavelet-based image restoration
algorithms are applied to the corrupted image, and the results are
reported in the following table. According to the
visual performance and the mean square error, the
algorithms improve the restoration performance.
However, the denoising step uses wavelet thresholding
to remove the noise, the images are blurred a little bit again,
although the MSE is improved.<br />
<br />
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/lena_blur.jpg" /><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/lena_donoho.jpg" /><br />
<br />
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/lena_ward.jpg" /><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/images/lena_subband.jpg" /> <br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-12971219596946324932015-10-11T22:05:00.003-07:002015-10-11T22:05:31.296-07:00AC TO AC (CYCLOCONVERTER)www.spiroprojects.com<br />
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>KARTHICK</o:Author>
<o:Keywords>IEEE TITLES</o:Keywords>
<o:Version>14.00</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="Default">
<b><span style="font-size: 14.0pt;">AC TO AC (CYCLOCONVERTER) </span></b><span style="font-size: 14.0pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">The Cycloconverter has been
traditionally used only in very high power drives, usually above one megawatt,
where no other type of drive can be used. Examples are cement tube mill drives
above 5 MW, the 13 MW German-Dutch wind tunnel fan drive, reversible rolling
mill drives and ship propulsion drives. The reasons for this are that the
traditional cycloconverter requires a large number of thyristors, at least 36
and usually more for good motor performance, together with a very complex
control circuit, and it has some performance limitations, the worst of which is
an output frequency limited to about one third the input frequency. </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<img alt="block-diagram-of-cycloconverter" height="150" src="https://www.pantechsolutions.net/images/stories/k2-articles/block-diagram-of-cycloconverter.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="457" /><div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">The <b>Cycloconverter</b> has four
thyristors divided into a positive and negative bank of two thyristors each.
When positive current flows in the load, the output voltage is controlled by
phase control of the two positive bank thyristors whilst the negative bank
thyristors are kept off and vice versa when negative current flows in the load.
An idealized output waveform for a sinusoidal load current and a 45 degrees
load phase angle is shown in Figure 2. It is important to keep the non
conducting thyristor bank off at all times, otherwise the mains could be
shorted via the two thyristor banks, resulting in waveform distortion and
possible device failure from the shorting current. A major control problem of
the <b>Cycloconverter</b> is how to swap between banks in the shortest possible
time to avoid distortion whilst ensuring the two banks do not conduct at the
same time. A common addition to the power circuit that removes the requirement
to keep one bank off is to place a centre tapped inductor called a circulating
current inductor between the outputs of the two banks. Both banks can now
conduct together without shorting the mains. Also, the circulating current in
the inductor keeps both banks operating all the time, resulting in improved
output waveforms. This technique is not often used, though, because the
circulating current inductor tends to be expensive and bulky and the
circulating current reduces the power factor on the input</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">In a <b>1- </b>φ <b>Cycloconverter</b>,
the output frequency is less than the supply frequency. These converters
require natural commutation which is provided by AC supply. During positive
half cycle of supply, thyristors P</span><span style="font-family: "Times New Roman","serif"; font-size: 8.0pt; mso-fareast-font-family: "Times New Roman";">1</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> and N</span><span style="font-family: "Times New Roman","serif"; font-size: 8.0pt; mso-fareast-font-family: "Times New Roman";">2</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">
are forward biased. First triggering pulse is applied to P</span><span style="font-family: "Times New Roman","serif"; font-size: 8.0pt; mso-fareast-font-family: "Times New Roman";">1</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> and hence it starts conducting.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">As the supply goes negative, P</span><span style="font-family: "Times New Roman","serif"; font-size: 8.0pt; mso-fareast-font-family: "Times New Roman";">1</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> gets off and in negative half cycle
of supply, P</span><span style="font-family: "Times New Roman","serif"; font-size: 8.0pt; mso-fareast-font-family: "Times New Roman";">2</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">
and N</span><span style="font-family: "Times New Roman","serif"; font-size: 8.0pt; mso-fareast-font-family: "Times New Roman";">1</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">
are forward biased. P</span><span style="font-family: "Times New Roman","serif"; font-size: 8.0pt; mso-fareast-font-family: "Times New Roman";">2</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">
is triggered and hence it conducts. In the next cycle of supply, N</span><span style="font-family: "Times New Roman","serif"; font-size: 8.0pt; mso-fareast-font-family: "Times New Roman";">2</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> in positive half cycle and N</span><span style="font-family: "Times New Roman","serif"; font-size: 8.0pt; mso-fareast-font-family: "Times New Roman";">1</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> in negative half cycle are
triggered. Thus, we can observe that here the output frequency is 1/2 times the
supply frequency.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">The <b>Cycloconverter</b> are
classified into three types based on the type of input ac supply applied to the
circuit.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Single Phase to Single phase Cycloconverter.</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Three Phase to Three Phase Cycloconverter.</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Single Phase to Three Phase Cycloconverter</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></li>
</ul>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">The following sections will describe
the operation principles of the cycloconverter starting from the simplest one,
single-phase to single-phase (1f-1f) cycloconverter. </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">To understand the operation
principles of cycloconverters, the single-phase to single-phase <b>cycloconverter</b>
(Fig. 2) should be studied first. This converter consists of back-to-back
connection of two full-wave rectifier circuits. Fig 3 shows the operating
waveforms for this converter with a resistive load.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">The input voltage, vs is an ac
voltage at a frequency, fi as shown in Fig. 3a. For easy understanding assume
that all the thyristors are fired at α=0°</span><span style="font-family: Symbol; font-size: 12.0pt; mso-ascii-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman"; mso-char-type: symbol; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">firing angle, i.e. thyristors act like diodes. Note that the
firing angles are named as αP for the positive converter and αN for the
negative converter.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Consider the operation of the <b>cycloconverter</b>
to get one-fourth of the input frequency at the output. For the first two
cycles of vs, the positive converter operates supplying current to the load. It
rectifies the input voltage; therefore, the load sees 4 positive half cycles as
seen in Fig. 3b. In the next two cycles, the negative converter operates
supplying current to the load in the reverse direction. The current waveforms
are not shown in the figures because the resistive load current will have the
same waveform as the voltage but only scaled by the resistance. Note that when
one of the converters operates the other one is disabled, so that there is no
current circulating between the two rectifiers.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img alt="single-phase-to-single-phase-cyclo-converter" height="312" src="https://www.pantechsolutions.net/images/stories/k2-articles/single-phase-to-single-phase-cyclo-converter.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="388" /></div>
<div class="MsoNormal">
<br /></div>
<div align="center" class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Fig:2
<b>Single Phase to Single Phase Cyclo Converter</b></span></div>
<div align="center" class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<br /></div>
<div class="MsoNormal">
<img alt="single-phase-to-single-phase-cyclo-converter-2" height="312" src="https://www.pantechsolutions.net/images/stories/k2-articles/single-phase-to-single-phase-cyclo-converter-2.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="388" /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Fig:3 Single
Phase to Single Phase Cyclo Converter</span></div>
<div class="MsoNormal">
<br /></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l2 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Input Voltage</span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l2 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Output voltage for Zero Firing angle</span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l2 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Output voltage with firing angle π/3rad</span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l2 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Output voltage with varying firing angle</span></li>
</ul>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Thus by varying α, the fundamental
output voltage can be controlled.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Constant α</span><span style="font-family: Symbol; font-size: 12.0pt; mso-ascii-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman"; mso-char-type: symbol; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">operation gives a crude output waveform with rich harmonic
content. The dotted lines in Fig. 3b and c show a square wave. If the square
wave can be modified to look more like a sine wave, the harmonics would be
reduced. For this reason α</span><span style="font-family: Symbol; font-size: 12.0pt; mso-ascii-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman"; mso-char-type: symbol; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">is
modulated as shown in Fig.3d. Now, the six-stepped dotted line is more like a
sinewave with fewer harmonics. The more pulses there are with different α's,
the less are the harmonics.</span></div>
<div class="MsoNormal">
<img alt="frequency-select--f" height="318" src="https://www.pantechsolutions.net/images/stories/k2-articles/frequency-select--f.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="450" /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img alt="frequency-select-f-2" height="318" src="https://www.pantechsolutions.net/images/stories/k2-articles/frequency-select-f-2.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="450" /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img alt="frequency-select--f-3" height="318" src="https://www.pantechsolutions.net/images/stories/k2-articles/frequency-select--f-3.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="450" /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<img alt="frequency-select--f-4" height="318" src="https://www.pantechsolutions.net/images/stories/k2-articles/frequency-select--f-4.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="450" /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 6;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 6;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 6;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 7.5pt; mso-fareast-font-family: "Times New Roman";">Three-Phase
to Single-Phase (3Φ-1Φ) Cycloconverter</span></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">There are two kinds of <b>three-phase
to single-phase</b> (3Φ-1Φ) <b>cycloconverters</b>: 3φ-1φ</span><span style="font-family: Symbol; font-size: 12.0pt; mso-ascii-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman"; mso-char-type: symbol; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">half-wave <b>cycloconverter</b> (Fig. 4) and 3Φ-1Φ</span><span style="font-family: Symbol; font-size: 12.0pt; mso-ascii-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman"; mso-char-type: symbol; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">bridge <b>cycloconverter</b> (Fig. 5). Like the 1Φ-1Φ</span><span style="font-family: Symbol; font-size: 12.0pt; mso-ascii-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman"; mso-char-type: symbol; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">case, the 3Φ-1Φ </span><b><span style="font-family: Symbol; font-size: 12.0pt; mso-ascii-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman"; mso-char-type: symbol; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"><span style="mso-spacerun: yes;"> </span></span></span></b><b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">cycloconverter</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> applies rectified voltage to the load. Both positive and
negative converters can generate voltages at either polarity, but the positive
converter can only supply positive current and the negative converter can only
supply negative current. Thus, the <b>cycloconverter</b> can operate in four quadrants:
(+v, +i) and (-v, -i) rectification modes and (+v, -i) and (-v, +i) inversion
modes. The modulation of the output voltage and the fundamental output voltage
are shown in Fig. 6. Note that α</span><span style="font-family: Symbol; font-size: 12.0pt; mso-ascii-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman"; mso-char-type: symbol; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">is sinusoidally modulated over the cycle to generate a harmonically
optimum output voltage.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<img alt="3-1-half-wave-cycloconverter" height="307" src="https://www.pantechsolutions.net/images/stories/k2-articles/3-1-half-wave-cycloconverter.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="396" /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<img alt="3-1-bridge-cycloconverter" height="265" src="https://www.pantechsolutions.net/images/stories/k2-articles/3-1-bridge-cycloconverter.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="418" /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img alt="3-1-half-wave-cycloconverter-waveforms" height="351" src="https://www.pantechsolutions.net/images/stories/k2-articles/3-1-half-wave-cycloconverter-waveforms.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="458" /></div>
<div class="MsoNormal">
<br /></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l1 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">+ converter output voltage</span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l1 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Cosine timing waves</span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l1 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;"><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">– converter output voltage</span></li>
</ul>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">The polarity of the current
determines if the positive or negative converter should be supplying power to
the load. Conventionally, the firing angle for the positive converter is named
α P, and that of the negative converter is named α N. When the polarity of the
current changes, the converter previously supplying the current is disabled and
the other one is enabled. The load always requires the fundamental voltage to
be continuous. Therefore, during the current polarity reversal, the average
voltage supplied by both of the converters should be equal. Otherwise,
switching from one converter to the other one would cause an undesirable
voltage jump. To prevent this problem, the converters are forced to produce the
same average voltage at all times.</span></div>
<h6>
Three-Phase to Three-Phase (3Φ-3Φ) Cycloconverter:</h6>
<div class="MsoNormal">
<br /></div>
If the outputs of 3 3Φ-1Φ<span style="font-family: Symbol; mso-ascii-font-family: "Times New Roman"; mso-char-type: symbol; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span><span style="mso-spacerun: yes;"> </span>converters of the
same kind are connected in wye or delta and if the output voltages are 2∏/3
radians phase shifted from each other, the resulting converter is a threephase
to three-phase (3Φ-3Φ) cycloconverter. The resulting <strong>cycloconverters</strong>
are shown in Figs. 7 and 8 with wye connections. If the three converters
connected are half-wave converters, then the new converter is called a 3Φ-3Φ<span style="font-family: Symbol; mso-ascii-font-family: "Times New Roman"; mso-char-type: symbol; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span>half-wave
<strong>cycloconverter</strong>. If instead, bridge converters are used, then
the result is a 3Φ-3Φ<span style="font-family: Symbol; mso-ascii-font-family: "Times New Roman"; mso-char-type: symbol; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span>bridge <strong>cycloconverter</strong>. 3Φ-3Φ<span style="font-family: Symbol; mso-ascii-font-family: "Times New Roman"; mso-char-type: symbol; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span>half-wave
cycloconverter is also called a 3-pulse <strong>cycloconverter</strong> or an
18-thyristor <strong>cycloconverter</strong>. On the other hand, the 3Φ-3Φ<span style="font-family: Symbol; mso-ascii-font-family: "Times New Roman"; mso-char-type: symbol; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Symbol;"><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol;"> </span></span>bridge
<strong>cycloconverter</strong> is also called a 6-pulse cycloconverter or a
36-thyristor <strong>cycloconverter</strong>. The operation of each phase is
explained in the previous section.<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img alt="3-3-half-wave-cycloconverter" height="170" src="https://www.pantechsolutions.net/images/stories/k2-articles/3-3-half-wave-cycloconverter.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="450" /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img alt="3-3-bridge-cycloconverter" height="407" src="https://www.pantechsolutions.net/images/stories/k2-articles/3-3-bridge-cycloconverter.jpg" style="display: block; margin-left: auto; margin-right: auto;" width="400" /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">The <b>three-phase cycloconverters</b>
are mainly used in ac machine drive systems running three phase synchronous and
induction machines. They are more advantageous when used with a synchronous
machine due to their output power factor characteristics. A <b>cycloconverter</b>
can supply lagging, leading, or unity power factor loads while its input is
always lagging. A synchronous machine can draw any power factor current from
the converter. This characteristic operation matches the <b>cycloconverter</b>
to the synchronous machine. On the other hand, induction machines can only draw
lagging current, so the <b>cycloconverter</b> does not have an edge compared to
the other converters in this aspect for running an induction machine. However,
cycloconverters are used in Scherbius drives for speed control purposes driving
wound rotor induction motors.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Cycloconverters</span></b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> produce harmonic rich output voltages, which will be
discussed in the following sections. When <b>cycloconverters</b> are used to
run an ac machine, the leakage inductance of the machine filters most of the
higher frequency harmonics and reduces the magnitudes of the lower order
harmonics.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<br />Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-41482378958322292282015-10-11T21:46:00.001-07:002015-10-11T21:46:04.264-07:00Pulse Amplitude Demodulationwww.spiroprojects.com<br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The simple pulse modulation technique called <strong>Pulse Amplitude Modulation</strong> (<strong>PAM</strong>)
proved to be more power efficient than the PWM and consumes constant
power for individual pulses like PPM. In PAM the amplitude of the
individual pulses are varied according to the amplitude of the
modulating signals. The PAM modulator and demodulator circuits simple
compared to other kind of modulation and demodulation techniques. There
are two kinds of PAM one in which the pulses have the same polarity and
the other in which the pulses can have both positive and negative
polarity according to the amplitude of the modulating signal. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The <strong>PAM modulation technique</strong>
is widely used in high speed digital communications like telephone
modems, Ethernet etc. They are used to drive LED lights more efficiently
than using PWM method. Unlike the PPM the transmitter and receiver
synchronization is not required for the PAM. This article discusses
about the <strong>demodulation of Pulse Amplitude Modulated signals</strong> with the help of simplest possible circuit.</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><b><u><span style="line-height: 200%;">DESCRIPTION:</span></u></b></span></span><b><u><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></u></b></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
demodulator circuit explained in this article can extract the
modulating signal from the Single Polarity PAM wave. The message signal
used here is a pure sine wave generated using Wien Bridge Oscillator
(WBO) and an FET based modulator circuit is used for the PAM modulation. The demodulation of the PAM signals can be done easily using a Low-pass filter.</span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Pulse Amplitude Demodulation" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/PAM%20Demodulation%20Block%20Diagram.JPG" title="" /> </span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">A
sine wave generator circuit is used in this project which is based on
the Wien Bridge Oscillator (WBO) circuit. The Wien Bridge oscillator
circuit can produce distortion less sinusoidal sweep at its output. The
circuit is designed in such a way that both the amplitude and frequency
of the oscillator can be adjusted using potentiometers. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The circuit diagram of the variable frequency sine wave oscillator is shown in the following:</span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="sine wave oscillator " src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/PAM1_0.JPG" style="font-size: 16px; line-height: 1;" /> </span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
frequency of the sine wave generated by the above circuit depends on
the components R1, R2, C1 and C2 and the equation for the frequency is
given below:</span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<img alt="Formula for frequency" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/PAM%20formula.JPG" style="font-size: 16px; line-height: 1;" /><br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<br />
<br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Sine Wave" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/Sine%20Wave.JPG" style="font-size: 16px; line-height: 1;" /> </span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><b><span style="line-height: 200%;">2)<span style="font-weight: normal; line-height: normal;"> </span></span></b><b><u><span style="line-height: 200%;">SQUARE WAVE GENERATOR</span></u></b></span></span><b><u><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></u></b></span></span></span></div>
<br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
square wave is generated in this project using an op-amp based astable
circuit. The op-amp based astable circuit is used to generate the square
wave due to the less number of components required and less complex
circuit. The ON-time and the OFF-time of the pulses can be made
identical and the frequency can be easily adjusted without changing
them. However in this project the circuit is designed to be producing a
constant frequency. The astable multivibrator circuit using op-amp 741
is given below.</span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Square Wave Generator" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/Square%20wave%20generator.JPG" style="font-size: 16px; line-height: 1;" /> </span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
time period of the pulses generated by the above circuit depends upon
the values of the resistor R and the capacitor C. The following equation
gives the approximate time period of the pulses generated by the op-amp
astable multivibrator circuit. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><b><span style="line-height: 200%;">T = 2.2 * R*C</span></b></span></span><div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-57243492046686447082015-10-11T21:42:00.000-07:002015-10-11T21:42:03.323-07:00How to Measure Impedance of a Loudspeakerwww.spiroprojects.com<br />
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">Most
of the people have noticed a change in the voice of others when they
speak through the telephone. Most of the people might have experienced
difficulty in hearing other sound in the environment where the person at
the other end of the telephone calls from. It happens mostly for high
frequency sound like instrument music, sound from video game etc. People
who are interested in electronics and who have done some audio circuits
with loudspeakers might have experienced an exactly opposite phenomenon
in which the sound reproduced by the loudspeaker is more clear and loud
for higher frequencies. Also those who have experienced quality of
music played through the home theater system know how far better it is
from a single speaker which can create the same loudness.The explanation
for all the above mentioned phenomenon is simply due to the fact that a
simple sound generating device cannot produce all the audible
frequencies with the same loudness. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
audible range for human being starts from 20Hz to 20 KHz and it varies
from person to person and significantly with the increasing age of each
one. The voiced speech of a typical adult male will have a fundamental
frequency from 85 to 180 Hz, and that of a typical adult female from 165
to 255 Hz. The telephone can reproduce the sound which falls in the
range of 300 Hz to 3 KHz only. It is only due to the presence of higher
harmonics of the human voice in that range makes the telephone useful.
Since the maximum frequency is only 3 KHz the higher frequency sounds
are little audible through the telephone. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
telephone system is only an example which has been optimized to perform
at a certain range of frequency. Such a kind of optimization is
required in most of systems because when it comes to the electronic
devices like filters, amplifiers, loudspeakers etc. their
characteristics vary with frequency of operation. This change in
characteristics with the frequency explains why the home theaters with
different kind of loudspeakers are able to produce high quality sound
including all the high frequency and low frequency sounds which are not
at all possible with a single loudspeaker. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
mechanical construction of the loudspeaker plays a significant role in
deciding its performance at different frequency range but those who are
designing circuit for the loudspeaker are more interested in an
important electrical characteristic of the loudspeaker called impedance.
This article discusses how to measure the impedance of a loudspeaker at
a required frequency of operation.</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><b><u><span style="line-height: 200%;">DESCRIPTION:</span></u></b></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">Every electronic component including <a href="http://www.engineersgarage.com/tutorials/resistors"><span style="color: #333333;">resistors</span></a><span style="color: #333333;">, </span><a href="http://www.engineersgarage.com/tutorials/capacitors-introduction-types-applications"><span style="color: #333333;">capacitors</span></a>
and inductors produce a resistance to the current flowing through it
and it is generally called impedance irrespective of the component. This
impedance value for a particular device may or may not vary with the
frequency of the current flowing through it. A good quality resistor has
almost the same impedance value from 0 Hz (DC) frequency to infinite
hertz, but the impedance of a capacitor decreases with frequency and an
inductor increases with frequency. Thus in case of a resistor the
resistance and the impedance has the same value. Simply the impedance is
the resistance of any component at a given frequency and hence
impedance value of a component isalso represented in Ohms. Like the
resistance is denoted with letter ‘R’, the impedance is denoted with the
letter ‘Z’. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
impedance of a loudspeaker has very high variations with the frequency
of operation and it is significant in the design of audio devices like
amplifiers, speaker drivers etc. Consider the case of an amplifier with a
loudspeaker at its output.</span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Loudspeaker Impedance Measurement" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/Loudspeaker%20Impedance.jpg" title="" /></span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
amplifier is a device which can source a current to the loudspeaker and
every current sourcing device has an internal resistance and here it is
represented as a resistance R<sub>int</sub>. Since the resistor has the same value for its resistance and impedance it is also marked as Z<sub>int</sub>. This internal resistance of the amplifier is also referred to as the output resistance and hence it is marked as Z<sub>out</sub>. The impedance of the loudspeaker is represented as Z<sub>ls</sub>.</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">In the above system both the Z<sub>out</sub> and Z<sub>ls</sub>
comes in series with each other and the same current flows through both
of them. As in the case of a two resistors connected in series with
each other, the same current flowing through two impedances connected in
series will generate different voltages across both the impedances. In
the above figure V<sub>fs</sub>is the voltage of the fictional source inside the amplifier which is generating the frequency and the V<sub>fint</sub>is the voltage drop across the internal resistance and the V<sub>fls</sub>is the drop across the loudspeaker. </span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">From the above figure it can be understood that even though the amplifier generates a voltage V<sub>fs</sub>the loudspeaker receives only a voltage of V<sub>fls</sub>and the rest will get dropped across the internal resistance as given by the following equation:</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><b><span style="line-height: 200%;">V<sub>fint</sub>= V<sub>fs</sub>–V<sub>fls</sub></span></b></span></span><b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></b></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
value of the voltage drop by the same current across the impedances
depends upon the value of the impedance and the value of the current
flowing through them. If the voltage at the operating frequency is
represented by ‘V<sub>f</sub>’ and the current by ‘I<sub>f</sub>’and the impedance by ‘Z’, the V<sub>f</sub>is directly proportional to the Z as given by the following equation:</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><b><span style="line-height: 200%;">V<sub>f</sub>= I<sub>f</sub> * Z</span></b></span></span><b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></b></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">Applying this knowledge in the above equation it can be re-written as the following:</span></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><b><span style="line-height: 200%;">V<sub>fint</sub>= V<sub>fs</sub>– I<sub>f </sub>* Z<sub>ls</sub></span></b></span></span><b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 200%;"></span></b></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">From the above equation it is clear that the loudspeaker with low impedance ‘Z<sub>ls</sub>’will produce large internal voltage drop ‘V<sub>fint</sub>’
in the amplifier and vice versa. Since the impedance is frequency
dependent one should find the loudspeaker which provides the highest
impedance at the operating frequency. The variation of the impedance of a
common loudspeaker can be plotted as shown in the following figure:</span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Speaker Impedance" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/800px-Speaker_impedance.svg__0.png" title="" /> </span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
direct method to calculate the impedance of a loudspeaker at the
required operating frequency is to connect it with a pure sine wave
generator having the frequency same as the required operating frequency
and measure the voltage drop across the loudspeaker. The details of the
sine wave generating circuit used to calculate the impedance of a
loudspeaker is discussed below. Since in audio applications the
impedance should be calculated for a range of frequencies and hence a
variable frequency sine wave generator has been designed based of Wien
Bridge oscillator.</span></span></span> </span></span></span></div>
<div class="MsoNormal" style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0in; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-12418653381466148542015-10-10T05:40:00.002-07:002015-10-10T05:40:40.349-07:00Inverse Filtering in IMAGE PROCESSINGwww.spiroprojects.com<br />
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 1;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 24.0pt; mso-fareast-font-family: "Times New Roman"; mso-font-kerning: 18.0pt;"> </span></b></div>
<div class="MsoNormal">
If we know of or can create a good model of the blurring
function that corrupted an image, the quickest and easiest way to restore that
is by inverse filtering. Unfortunately, since the inverse filter is a form of
high pass filer, inverse filtering responds very badly to any noise that is
present in the image because noise tends to be high frequency. In this section,
we explore two methods of inverse filtering - a thresholding method and an
iterative method.</div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">We can model a blurred image by </span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig1.gif" /> </span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-no-proof: yes;"></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">where <i>f</i> is the original
image, <i>b</i> is some kind of a low pass filter and <i>g</i> is our blurred
image. So to get back the original image, we would just have to convolve our
blurred function with some kind of a high pass filter</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig2.gif" /></div>
<div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-no-proof: yes;"></span></div>
<div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-no-proof: yes;"></span></div>
<div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-no-proof: yes;"></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: "Times New Roman";">But how do
we find h? If we take the DFT of <i>b</i> so that <b>B</b>=DFT2(<i>b</i>), we
would get something that looks like this</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig3.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig3.gif" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">In the ideal case, we would just
invert all the elements of <b>B</b> to get a high pass filter. However, notice
that a lot of the elements in <b>B</b> have values either at zero or very close
to it. Inverting these elements would give us either infinities or some extremely
high values. In order to avoid these values, we will need to set some sort of a
threshold on the inverted element. So instead of making a full inverse out of <b>B</b>,
we can an "almost" full inverse by </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig4.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig4.gif" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> </span></div>
<div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-no-proof: yes;"></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 115%; mso-fareast-font-family: "Times New Roman";">So the
higher we set <span style="mso-no-proof: yes;"><img alt="Description: http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/gamma.gif" height="8" src="file:///C:\Users\SR5F5F~1.PHP\AppData\Local\Temp\msohtmlclip1\01\clip_image004.gif" width="6" /></span>, the closer <b>H</b> is to the
full inverse filter.</span></div>
<div class="MsoNormal">
<br /></div>
<h3>
Implementation and Results </h3>
Since Matlab does not deal well with infinity, we had to threshold <b>B</b>
before we took the inverse. So we did the following:<br />
<br />
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig5.gif" /><br />
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="mso-no-proof: yes;"></span></div>
<div class="MsoNormal">
where <i>n</i> is essentially <span style="mso-no-proof: yes;"><img alt="Description: http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/1_gamma.gif" height="16" src="file:///C:\Users\SR5F5F~1.PHP\AppData\Local\Temp\msohtmlclip1\01\clip_image006.gif" width="6" /></span>and is set arbitrarily close to
zero for noiseless cases. The following images shows our results for <i>n</i>=0.0001.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig6.gif" /> </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig7.gif" /> </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig8.gif" /> </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">We see that the image is almost
exactly like the original. The MSE is 2.5847. </span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Because an inverse filter is a high
pass filter, it does not perform well in the presence of noise. There is a
definite tradeoff between de-blurring and de-noising. In the following image,
the blurred image is corrupted by AWGN with variance 10. <i>n</i>=0.2.</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig9.gif" /> </span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig10.gif" /> </span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal">
The MSE for the restored image is 1964.5. We can see that
the sharpness of the edges improved but we also have a lot of noise specs in
the image. We can get rid of more specs (thereby getting a smoother image) by
increasing <i>n</i>. In general, the more noise we have in the image, the
higher we set <i>n</i>. The higher the <i>n</i>, the less high pass the filter
is, which means that it amplifies noise less. It also means, however, that the
edges will not be as sharp as they could be.</div>
<h3>
Theory </h3>
<div style="margin-bottom: 12.0pt;">
The idea behind the iterative procedure is to
make some initial guess of <i>f</i> based on <i>g</i> and to update that guess
after every iteration. The procedure is </div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="mso-no-proof: yes;"></span></div>
<div class="MsoNormal">
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig11.gif" /><br />
where <span style="mso-no-proof: yes;"></span> <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig12.gif" /> is an initial guess based on <i>g</i>.
If our <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig13.gif" /> is a good guess, eventually <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig13.gif" /> <span style="mso-no-proof: yes;"></span>convolved with <i>b</i> will be
close to <i>g</i>. When that happens the second term in the <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig14.gif" /> <span style="mso-no-proof: yes;"></span>equation will disappear and <span style="mso-no-proof: yes;"></span> <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig13.gif" /> and <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig14.gif" /> <span style="mso-no-proof: yes;"></span>will converge. <span style="mso-no-proof: yes;"><img alt="Description: http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/lambda.gif" height="8" src="file:///C:\Users\SR5F5F~1.PHP\AppData\Local\Temp\msohtmlclip1\01\clip_image011.gif" width="6" /></span>is our convergence factor and it
lets us determine how fast <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/lambda.gif" /> <span style="mso-no-proof: yes;"></span>and <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig14.gif" /> <span style="mso-no-proof: yes;"></span>converge. </div>
<div style="margin-bottom: 12.0pt;">
If we take both of the above equations to the
frequency domain, we get</div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="mso-no-proof: yes;"></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt;">
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig15.gif" /></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt;">
<br />
Solving for <span style="mso-no-proof: yes;"></span>recursively, we get</div>
<div align="center" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span style="mso-no-proof: yes;"></span></div>
<div class="MsoNormal">
<img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig17.gif" /><br />
So if <img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig18.gif" /> <span style="mso-no-proof: yes;"></span>goes to zero as <i>k</i> goes to
infinity, we would get the result as obtained by the inverse filter. In
general, this method will not give the exact same results as inverse filtering,
but can be less sensitive to noise in some cases.</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">The first thing we have to do is
pick a <span style="mso-no-proof: yes;"></span></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-no-proof: yes;"><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/lambda.gif" /></span>. </span><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/lambda.gif" /> <span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-no-proof: yes;"></span>must satisfy the following </span></div>
<div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-no-proof: yes;"></span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig19.gif" /> </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"> and thus will be a positive integer in the range of 0 to 1. The bigger </span><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/lambda.gif" /> <span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-no-proof: yes;"></span>is, the faster </span><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig13.gif" /> <span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-no-proof: yes;"></span>and </span><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig14.gif" /> <span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-no-proof: yes;"></span>will converge. However, picking
too large a <span style="mso-no-proof: yes;"><img alt="Description: http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/lambda.gif" height="8" src="file:///C:\Users\SR5F5F~1.PHP\AppData\Local\Temp\msohtmlclip1\01\clip_image011.gif" width="6" /></span>may also make </span><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig13.gif" /> <span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-no-proof: yes;"></span>and </span><img src="http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/fig14.gif" /> <span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-no-proof: yes;"></span>diverge instead of converge.
Imagine that we're walking along a path and the end of the path is a cliff. <span style="mso-no-proof: yes;"><img alt="Description: http://www.owlnet.rice.edu/%7Eelec539/Projects99/BACH/proj2/pictures/lambda.gif" height="8" src="file:///C:\Users\SR5F5F~1.PHP\AppData\Local\Temp\msohtmlclip1\01\clip_image011.gif" width="6" /></span>is the size of of the steps we
take. We want to go to the edge of the path as fast as possible without falling
off. Taking large steps will ensure that we will get there fast but we'd
probably first. Taking small will ensure that we get there without falling off
but it could take an infinite amount of time. So the compromise would be to take
big steps at the start and decrease our step size as we get close to our
destination. </span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><br /></span></div>
<div class="MsoNormal">
<br /></div>
<br />Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-20848398731439430242015-10-10T05:20:00.004-07:002015-10-10T05:20:46.636-07:00IMAGE RESTORATIONwww.spiroprojects.com<br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">The image degradation process can be
modeled by the following equation:</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<br /></div>
<div align="center" class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">g=H<sup>.</sup>f+w<span style="mso-spacerun: yes;">
</span></span></b><span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">(1)</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div align="center" class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">where, <b>H</b> represents a
convolution matrix that models the blurring that many imaging systems
introduce. For example, camera defocus, motion blur, imperfections of the
lenses all can be modeled by <b>H. </b>The vectors <b>g</b>, <b>f</b>, and <b>w
</b>represent the observed, the original and the noise images. More
specifically, <b>w </b>is a random vector that models the random errors in the
observed data. These errors can be due to the electronics used (thermal and
shot noise) the recording medium (film grain) or the imaging process (photon
noise). </span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Obtaining <b>f </b>from Eq. (1) is not
a straight forward task since in most cases of interest the matrix <b>H </b>is <i>ill-posed.</i>
Mathematically this means that certain eigenvalues of this matrix are close to
zero, which makes the inversion process very unstable.<span style="mso-spacerun: yes;"> </span>For practical purposes this implies that the
inverse or the pseudo-inverse solutions </span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<br /></div>
<div align="center" class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">f<sub>1</sub></span></b><span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">=<b>H<sup>-1</sup>g </b>and
<b>f<sub>2</sub>=(H<sup>T</sup></b></span><b><span lang="EL" style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-ansi-language: EL; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Η</span></b><b><span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">)</span></b><b><sup><span lang="EL" style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-ansi-language: EL; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">-1</span></sup></b><b><span lang="EL" style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-ansi-language: EL; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Η<sup>Τ</sup></span></b><b><span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">g<span style="mso-spacerun: yes;"> </span></span></b><span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">(2)</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">amplify the noise and provide useless
results. This fact is demonstrated in what follows. </span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Regularization is one way to avoid the
problems due to the ill-posed nature of <b>H</b>. According to regularization
instead of minimizing <b>|| g – Hf ||<sup>2</sup> </b>in order to find <b>f </b>one
minimizes:</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<br /></div>
<div align="center" class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">|| g – Hf ||<sup>2 </sup>+ λ||Qf||<sup>2</sup><span style="mso-spacerun: yes;"> </span></span></b><span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">(3)</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div align="center" class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">the additional term <b>||Qf||<sup>2</sup>
</b>is called regularization term and can be viewed as capturing the properties
of the desired solution. In other words, the first term in Eq. (3) stirs the
solution <b>f </b>to be “close” to the observed data <b>g </b>while the second
term<b> </b>enforces “prior knowledge” to the solution. The prior knowledge
that is used is that the image is locally smooth. In most cases <b>Q</b>
represents the convolution with a high-pass filter. Thus the term <b>||Qf||<sup>2</sup>
</b>can be viewed as the high-pass energy of the restored image. The parameter <b>λ
</b>is called <i>regularization</i> <i>parameter</i> and controls the closeness
to the data vs. the prior knowledge of the solution. Finding <b>f </b>based on
Eq. (3) gives</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<br /></div>
<div align="center" class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">f<sub>3</sub>=(H<sup>T</sup>H+ λQ<sup>T</sup>Q)<sup>-1</sup>H<sup>T</sup>g.<span style="mso-spacerun: yes;"> </span></span></b><span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">(4)</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div align="center" class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Finding the proper value for the
parameter <b>λ </b>is an important problem. In the demo that follows one can
choose different values of <b>λ </b>and observe the effect to the restored
image. A large value of <b>λ </b>results in a smoother image<b> </b>and is
necessary if the noise variance is high or <b>H </b>is<b> </b>highly
ill-conditioned.<b> </b>On the other hand a large<b> λ </b>blurs out the image
details. So one has to decide between smoothness and detail in the solution. </span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">In many practical cases of interest <b>H
</b>is <b>not known. </b>For example when taking the photograph of a moving
object when the shutter speed and the speed of the object are unknowns. In this
case we are faced with the very difficult problem of “blind” image restoration.
In such cases we have to utilize prior knowledge in order to somehow recover
simultaneously BOTH <b>f </b>and <b>H. </b>There are many different ways to
incorporate prior knowledge about the image <b>f</b> and the degradation <b>H</b>
in the problem. One of them is using deterministic constraints in the form of
CONVEX SETS, ref [4]. Another approach is using stochastic constraints in the
form of prior distributions in a Bayesian framework ref. [5]. </span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhunplXDt-x3HPFwlHCpzuan5lJB9IBRprVasOmF8EIGAlB4bVOeft5olmKboY2DJ61g_GggXCHreF3pu8sAiSYhi5diGSUHaR3IcagtRJOj0UHPmjeh4rW-6xQn12tYfjQUi2Dwn1Zovi2/s1600/image003.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhunplXDt-x3HPFwlHCpzuan5lJB9IBRprVasOmF8EIGAlB4bVOeft5olmKboY2DJ61g_GggXCHreF3pu8sAiSYhi5diGSUHaR3IcagtRJOj0UHPmjeh4rW-6xQn12tYfjQUi2Dwn1Zovi2/s320/image003.jpg" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div align="center" class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">This is an example of the application
of blind deconvolution in an image degraded by UNKNOWN blur. </span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div align="center" class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Notice the plates of the car in this
image are not readable.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"></span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk1smjMhGh82FjULnF3j0uTToQBfQiqChMRZFm6kYSJUllxN68u0ebU18ftdiHe5d8sMPBzP4_AAt1PzZhx19Uvr0VJfEtPJO2vNp2Z2LuSAgYhWSX-2LjG4AiqIb11C3wfp9ONkzaQQ6Y/s1600/image005.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk1smjMhGh82FjULnF3j0uTToQBfQiqChMRZFm6kYSJUllxN68u0ebU18ftdiHe5d8sMPBzP4_AAt1PzZhx19Uvr0VJfEtPJO2vNp2Z2LuSAgYhWSX-2LjG4AiqIb11C3wfp9ONkzaQQ6Y/s320/image005.jpg" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; line-height: 115%;">Restored image obtained by 50 iterations of the
algorithm in Ref. [5] above.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCQw6PrCzHKTmtpCgG4QWastlViUyTvOY-_i7RLFKYWaMfkcROXhx_rLO_x_gxsHijNITBiTx4mZJGzyFtqjUmJPvoy0scSQ8rhAen2fRlXvUK2ElNtxI0gk0nvVbrS4qNJsOgA9ynk4s0/s1600/image007.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCQw6PrCzHKTmtpCgG4QWastlViUyTvOY-_i7RLFKYWaMfkcROXhx_rLO_x_gxsHijNITBiTx4mZJGzyFtqjUmJPvoy0scSQ8rhAen2fRlXvUK2ElNtxI0gk0nvVbrS4qNJsOgA9ynk4s0/s320/image007.jpg" width="320" /></a></div>
<div class="MsoNormal">
<span style="font-family: "Verdana","sans-serif"; font-size: 14.0pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Verdana","sans-serif";">Degraded
Image by Film-Grain Noise</span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgktb1THUE9vDFoPSsIG0JvcoEXVhtAhzyG5RGIDO4M6P7P5bN8ak4Bzij5EG-UsbQbPkdwH8txCiNqXAVDVdyXn3bbDEt5-PXDBJXu8ZZr-UzAxjpU__w3yfYPJY7olG-2snB-fgdTW3y0/s1600/image010.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgktb1THUE9vDFoPSsIG0JvcoEXVhtAhzyG5RGIDO4M6P7P5bN8ak4Bzij5EG-UsbQbPkdwH8txCiNqXAVDVdyXn3bbDEt5-PXDBJXu8ZZr-UzAxjpU__w3yfYPJY7olG-2snB-fgdTW3y0/s320/image010.jpg" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<br /><div class="MsoNormal">
<span style="font-family: "Verdana","sans-serif";">Restored by
adaptive window median filter</span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGgsh0gDmbk2gkPVOhVA-FBShDKI1ASIcymDf3Fsgr_MVUeJK0yOMlk8P2ga83gioxBc2qynVEph6aKr7NsLkdTeO74EPbjrWXHTypoBkYZIMAqlpBTx2caDhO_rz6POK8zks0JsnwyPae/s1600/image013.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGgsh0gDmbk2gkPVOhVA-FBShDKI1ASIcymDf3Fsgr_MVUeJK0yOMlk8P2ga83gioxBc2qynVEph6aKr7NsLkdTeO74EPbjrWXHTypoBkYZIMAqlpBTx2caDhO_rz6POK8zks0JsnwyPae/s1600/image013.jpg" /></a></div>
<div class="MsoNormal">
<span style="font-family: "Verdana","sans-serif";"><br /></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Verdana","sans-serif";">Area of
interest</span></div>
<br />Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-36738271135141601602015-10-10T04:39:00.000-07:002015-10-10T04:39:28.067-07:00DC to AC POWER INVERTERSwww.spiroprojects.com<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSPGv4eEz5CAU42VxzBy4AOzpJtOQES5tPS9mJn_zJMDwkQf2N4CbggR-FS1HHkWr-ylHAZ4yOi3fHnvx2RXBpLe0Ejl1hHk9sYMT8CSFp_fX5lwnSy2bt2ygjSlsuiePd7kPH77Quk69O/s1600/FIUSB9JI4MMVBRK.MEDIUM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSPGv4eEz5CAU42VxzBy4AOzpJtOQES5tPS9mJn_zJMDwkQf2N4CbggR-FS1HHkWr-ylHAZ4yOi3fHnvx2RXBpLe0Ejl1hHk9sYMT8CSFp_fX5lwnSy2bt2ygjSlsuiePd7kPH77Quk69O/s1600/FIUSB9JI4MMVBRK.MEDIUM.jpg" /></a></div>
<br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
THE BASICS. Most standard appliances are designed to accept
only AC (alternating current) voltages because that's how electricity is
supplied from the grid. In order to run an electronic device from a DC (direct
current) source you obviously need to transform it into AC. A device that
converts electricity from DC form to AC form using electronic circuits is known
in power industry as inverter. Note that the same term is used in digital
electronics for a circuit that switches the logic level of a signal. To avoid
confusion, the device we are talking about is a power inverter. Its typical
application is to convert a battery voltage into conventional residential AC. <br />
<br />
Inverters are used in a wide variety of applications from small car adapters to
large grid-tie systems that can supply electricity to an entire home.<br />
<br />
THE TYPES. There are three basic types of dc-ac converters depending on their
AC output waveform: square wave, modified sinewave, and pure sine wave (see the
diagram below). The square wave is the simplest and cheapest type, but nowadays
it is practically not used commercially because of low power quality (THD≈45%).
The modified sine wave topologies (which are actually modified squares) provide
rectangular pulses with some dead spots between positive and negative
half-cycles. They are suitable for most electronic loads, although their THD is
almost 24%. <br />
<br />
<br />
The models that employ such a technique are priced in the range of $.05-$0.10
per watt. They are the most popular low-cost inverters on the consumer market
today, particularly among car inverters. The reason most electronic devices do
not care about the supplied waveform is they have an internal SMPS, which
rectifies input voltage anyway. Nevertheless, some equipment require cleaner
power. Unfortunately, the type of AC output is rarely mentioned in
consumer-grade products. If you see a device whose description does not state
that it is a pure sinusoidal type, then most likely it is a square wave or a
modified one. We saw that output waveform in conventional modified sinewave
DC-AC circuits has only three levels: zero or peak voltage of both polarities.
By adding two more voltage levels, a designer can reduce THD from 24% to
typically 6.5%. Periodically connecting the output to a specific voltage level
with proper timing can produce a multiple-level waveform which is closer to
sinusoidal than conventional modified one.<br />
<br />
A true sinewave inverter produces output with the lowest total harmonic
distortion (normally below 3%). It is the most expensive type of AC source,
which is used when there is a need for a sinusoidal output for certain devices,
such as medical equipment, laser printers, stereos, etc. This typs is also used
in grid-connected applications.<br />
<br />
There is a number of topologies utilized in the power inverter circuits. Cheap
circuits suitable primarily for hobbyists projects may have just a push-pull
converter with a step-up transformer. If such a converter uses an external
excitation without current-mode control, its transformer may suffer from flux
imbalance that can lead to power transistors failure. The described circuit is
an example of a single-stage design. Most commercially manufactured models use
a multi-stage concept. With such a technique, first a switching pre-regulator
raises a voltage from the input source to a regulated DC level corresponding to
the peak value of the desired sinusoidal voltage. The output stage then
generates the AC. This stage usually uses a full-bridge (see diagram to the
right) or half-bridge configuration. Note that with a half-bridge, the DC-link
voltage should be more than twice the peak of the generated output. Input to
output galvanic isolation is provided by either a high-frequency transformer in
the switching pre-regulator, or by a large low-frequency (LF) output
transformer. If an LF transformer is used, the sinusoid is generated on its
primary side and transformed to the secondary side. There are also
transformerless inverters, which are gaining popularity in solar systems.<br />
In the designs with square-wave operation, output level has to be controled on
the DC side. Sine wave circuits operate in pulse width-modulated (PWM) mode, in
which the generated voltage and frequency are regulated by varying the duty
cycle of the high frequency pulses. The "chopped" voltage then passes
through a low-pass LC-filter to supply a clean sinusoidal output. Although such
approach is more expensive, it is usually employed in grid-tie devices, which
require high quality of power. By the way, in the past, the inversion was
accomplished using alternators driven by DC motors. Nowadays, an inverter does
not have any moving parts and unlike a generator, does not burn fuel and does
not emit toxic fumes.<br />
<br />
POWER INVERTERS FOR CARS. Automotive inverters often come with a jack that can
be plugged into a cigarette lighter. Note, however, that the cigarette lighters
are protected by a fuse rated typically between 10 and 20 A. This is usually
enough to run your laptop or other portable electronics. In general, the
maximum power you can draw from a cigarette lighter receptacle is 12V×(fuse
amperage)×η volt-amps, where η is efficiency of the inverter (typically
η=0.95-0.98). If you need to feed electronics that consumes more than that,
your device has to be connected directly to the car battery. That's why the
models above 200 VA usually don't even provide a plug for DC outlet. Instead
they include jumper cables that can be hooked up to battery terminals. Note
that commercial inverters are usually rated in volt-amps (VA). The real power
(watts) they can supply will depend on the power factor of your load:
Watts=VA×PF, where PF is always</div>
<br />Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-21602202626777498722015-10-09T23:56:00.002-07:002015-10-09T23:56:44.610-07:00How to Make an AC DC Converterwww.spiroprojects.com<br />
Alternating current (AC) is used for power line transmission and for
high power devices like appliances and lights. The characteristics of AC
make it ideal for transmission over long lines and for delivering large
amounts of power for relatively unregulated uses, such as generating
heat and light. Lower power appliances and devices require the closely
regulated control of direct current power (DC). As a normal house is
supplied with AC, it must be converted to DC for many uses. Use these
tips to learn how to make an AC DC converter.<br />
<br />
<h2 class="sticking">
<span class="mw-headline" id="Steps">Steps</span></h2>
<h2 class="sticking">
<span class="mw-headline" id="Steps"> </span></h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV-CuWRo6_b9hlOgzqcxf3NeQVXfluPs3FR_Z11TOBqjWbVya7XF9oi_Jr4ILY8MrgDWZPCevaDKm1bDFMRIT-Ey6c_M3-A3ZnEKU2-1I0PmILL9ZOHp5XHfkswu0v7Z3vqM7LaU4AuqKi/s1600/670px-Make-an-AC-DC-Converter-Step-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV-CuWRo6_b9hlOgzqcxf3NeQVXfluPs3FR_Z11TOBqjWbVya7XF9oi_Jr4ILY8MrgDWZPCevaDKm1bDFMRIT-Ey6c_M3-A3ZnEKU2-1I0PmILL9ZOHp5XHfkswu0v7Z3vqM7LaU4AuqKi/s320/670px-Make-an-AC-DC-Converter-Step-1.jpg" width="320" /></a></div>
<h2 class="sticking">
<br /></h2>
<div class="step">
1<b class="whb"> Select a transformer.</b> A transformer contains 2
magnetically coupled wire windings. One winding is called the primary.
The primary is driven by the main AC supply. The other winding is called
the secondary. The secondary serves as the power input to the AC DC
converter. This transformer and all of the other items needed to build
the AC DC converter are readily available at electronic stores and hobby
stores.
<ul>
<li>Size the transformer windings. AC mains provide 120 volts AC. If 120
volts AC were directly converted to a DC voltage, the resulting DC
voltage would be far too high a voltage for use by appliances and
devices. The primary and secondary windings of the transformer are
scaled to each other in order to produce a lower voltage on the
secondary winding.</li>
<li>Choose a secondary winding. The AC output of the secondary winding
should be rated as the same voltage of DC that is being created.</li>
</ul>
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHtIHF0nITTr6NJelxsE2fLU2KyvDrsYelRM1Xo961RuutP2FE21HgZ9fp6yd2w3EZjCMLQGInxv8Oo6TfLf_fuDFLgvo7Tw_OPe8QRSV6AkGvP5XyR77Sh_otKy8JURFsz1B7Hd8nIg9c/s1600/670px-Make-an-AC-DC-Converter-Step-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHtIHF0nITTr6NJelxsE2fLU2KyvDrsYelRM1Xo961RuutP2FE21HgZ9fp6yd2w3EZjCMLQGInxv8Oo6TfLf_fuDFLgvo7Tw_OPe8QRSV6AkGvP5XyR77Sh_otKy8JURFsz1B7Hd8nIg9c/s320/670px-Make-an-AC-DC-Converter-Step-2.jpg" width="320" /></a></div>
<br />
<br />
<div class="step">
2<b class="whb"> Wire the primary winding of the transformer to the main AC supply.</b> This transformer connection has no polarity and may be connected either way.
</div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8fqg7j72HihwzWw6e2pYT2VTpGBFxA2Hoiv3br_DkTEZ04wCFwX-K_FRzyEUPT2tD4nDY-nEz2YqOq7cqSLEYzNHZe2bZnzWP0hUbZtXZ9avpVKwtqK2HPatQ8TA2XMhWiIZR9Q8scVQi/s1600/670px-Make-an-AC-DC-Converter-Step-3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8fqg7j72HihwzWw6e2pYT2VTpGBFxA2Hoiv3br_DkTEZ04wCFwX-K_FRzyEUPT2tD4nDY-nEz2YqOq7cqSLEYzNHZe2bZnzWP0hUbZtXZ9avpVKwtqK2HPatQ8TA2XMhWiIZR9Q8scVQi/s320/670px-Make-an-AC-DC-Converter-Step-3.jpg" width="320" /></a></div>
<br />
<br />
<br />
<div class="step">
3<b class="whb"> Connect the secondary winding of the transformer to a full wave bridge rectifier package.</b>
The transformer connections and the connections to the marked inputs of
the rectifier package have no polarity and may be connected either way.
<ul>
<li>Build a full wave rectifier. This rectifier can be built up from 4
discrete rectifying diodes, rather than using a rectifier bridge
package. The diodes will be marked to show a positive (cathode) end and a
negative (anode) end. Connect the 4 diodes into a loop. Connect the
cathode of diode 1 to the cathode of diode 2. Connect the anode of diode
2 to the cathode of diode 3. Connect the anode of diode 3 to the anode
of diode 4. Connect the cathode of diode 4 to the anode of diode 1.</li>
<li>Wire the discrete rectifier to the transformer secondary. The
transformer secondary should be connected to the cathode of diode 3 and
the cathode of diode 4. There is no required polarity for these
connections. The positive output of the rectifier is at the point where
the cathodes of diodes 1 and 2 join. The negative output of the
rectifier is at the point where the anodes of diodes 3 and 4 join.</li>
</ul>
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrKfLCQ0BwgWMAjYiUSHSSx3ElxRfWhyphenhyphenwcxsJT1QkeO8lgGjIvB_yFX94IAqLRKxfqnXzPL6UdrIfH-43m_XDFL2TiBrBo_QOL2KGjLcuvd_F9xEOBrz7rA8ptdHNK4-rNV4ayjB3vleRz/s1600/670px-Make-an-AC-DC-Converter-Step-4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrKfLCQ0BwgWMAjYiUSHSSx3ElxRfWhyphenhyphenwcxsJT1QkeO8lgGjIvB_yFX94IAqLRKxfqnXzPL6UdrIfH-43m_XDFL2TiBrBo_QOL2KGjLcuvd_F9xEOBrz7rA8ptdHNK4-rNV4ayjB3vleRz/s320/670px-Make-an-AC-DC-Converter-Step-4.jpg" width="320" /></a></div>
<br />
<div class="step">
4<b class="whb"> Attach a smoothing capacitor.</b> Attach a polarized
capacitor across the output connections of the rectifier. The positive
terminal of the polarized capacitor must connect to the positive output
of the regulator. This capacitor should be sized such that the
capacitance in farads (F) is equal to (5 times the current to be
supplied by the AC DC converter) divided by (transformer secondary
rating times 1.4 times frequency). Frequency varies from country to
country, but is typically either 50 Hertz (Hz) or 60 Hertz. </div>
<div class="step">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3hvVFzbXv7g-rSmofQ8mw_-EjN4DZ98MY32Lg8EfdxCAD9mBmGrm4-BKmfKWDWSSxz5Dfv5ZtX-OhBPt3F8K0iNZ8Jchdr9zEchkSJE1DguhxjyiVZD405baAn_00sDNL3X0BRcnRm7x-/s1600/670px-Make-an-AC-DC-Converter-Step-5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3hvVFzbXv7g-rSmofQ8mw_-EjN4DZ98MY32Lg8EfdxCAD9mBmGrm4-BKmfKWDWSSxz5Dfv5ZtX-OhBPt3F8K0iNZ8Jchdr9zEchkSJE1DguhxjyiVZD405baAn_00sDNL3X0BRcnRm7x-/s320/670px-Make-an-AC-DC-Converter-Step-5.jpg" width="320" /></a></div>
<div class="step">
<br /></div>
<div class="step">
</div>
<div class="step">
<div class="step">
5<b class="whb"> Provide the final regulation.</b> Choose a commercially
available voltage regulator designed to control the output of the AC DC
converter to the desired output voltage. The regulator will be a 3-pin
device. The regulator pins will be a common, an input from the smoothing
capacitor and an output of the regulator. This regulator output also
will be the final output of the completed AC DC converter.
<ul>
<li>Wire the regulator as directed in the manufacturer's data sheet.
There probably will be a noise suppression capacitor specified in the
regulator manufacturer's data sheet. Acquire and install that capacitor
per the manufacturer's data sheet for the regulator.</li>
</ul>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com3tag:blogger.com,1999:blog-3687293802563215682.post-8147633942040082432015-10-09T23:35:00.000-07:002015-10-09T23:35:09.541-07:00Setup Time and Hold Time-Story of Poor Flip-Flop ! in VLSIwww.spiroprojects.com<br />
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1pk8jI-p630cm7KfEIfaCMUwD0jMAdCdWqCzGIu_2ZYv6WV_fmC9Mlh3zNA6fxicYSrxTqfNe4cj1nzz78ECXACXeoJ8bOKRy1Dt6judh-t4WANPUk36LYpEsG61_65e_7D5VbTQQnSw/s400/setup.JPG" /><br />
It is always interesting to talk about setup and hold!! Don’t think that
if anybody asks questions related to setup time and hold time, he or
she doesn’t know about setup and hold. He or she may know everything
about setup time and hold time, time being it confuses. The term “setup”
and “hold” is such a word in this VLSI – ASIC design world which only
creates continuous questions, hard to explain in words, at least i
myself is concerned! I remember, during my MTech days my professor used
to say always "whole VLSI world is depending on two pillars, setup time
and hold time". It would be more realistic if i say that he used to
scold us !!<br />
<a href="https://www.blogger.com/null" name="more"></a><br />
<br />
The doubt why is set up and hold in flip-flop always lingers in my mind.
Being a digital design engineer, i should be able to go beneath
transistor and convince myself the existence of setup delay and hold
delay. I know metastability state of the flip flop or charging or
discharging of capacitor on a CMOS, upon which all the gates, flip flops
are built. When i say "i know metastability" i may know about its
standard definition as per data book. If i advent into getting answer to
"why metastability", i believe i must be able to understand setup time
and hold time.<br />
<br />
<span class="fullpost">Let me try to dig myself. What i know? Flip flop
is combination of 2 latches, and latch is level triggered. One is
positive level triggered and another in negative level triggered. If so
whatever data sent to two latches will be launched or captured on
different edges. Then why metastability? Why set up time? Why hold time?
<br />
<br />
So how two level triggered latches form an edge triggered flop? Let me
get in to the latch. After all how it works? Say one input is
given...then when can i expect the output data? Is it immediately ? or
does it take some time ?<br />
<br />
If i remember working of simple SR latch from several theory classes and
text books i know that any latch output doesn’t stabilize immediately.
Output changes to intermediate values of 0 (or 1) then 1 (or 0) then
finally it gets settles at 0 (or 1). It used to take 2 or 3 looping of
data between NOR (or NAND ) gates. <br />
So in this way it takes 2-3 data cycles....right....This must happen for
both latches of flop. Hence this must take some time, may be in nano
second or pico second, but it consumes some time !<br />
<br />
<br />
Now, from the working principle of Master slave flip flop, i know that
both latches won’t work together. Because i have arranged flop circuit
such away that slave follows master. It means to say that when master
latches the data slave sleeps, then slave follows master. Or in other
words, slave releases the data which is latched earlier by the master.
As i understood earlier, to latch the data, master takes 2-3 cycle. Same
should be the story for slave.<br />
<br />
Now let me extend my imagination to the next horizon.<br />
<br />
To a flop which is exclusively designed as edge triggered with basic
gates itself, may be NOR or NAND based, or may be based on CMOS full
custom circuit, same of 2-3 cycle delay applies here as well. All that
happens is those 2-3 cycles to stabilize data which is coming in and
going out !<br />
<br />
I should analyze practical conditions of latching the data.<br />
<br />
Considering one internal data cycle is completed in logic gate,data is
not yet stabilized within this latch. If i allow one more input to enter
at the same time what will happen to that data which was under process?
Naturally latch may start processing new input data or may go to
unknown loop state that i think i call as metastable state ! Poor latch,
it must have completely confused, whether to drop the catching of
present data or should i try to catch new one? I am the boss and hence
i, as a designer of latch, has instructed latch to to both, to process
present data (so that it can catch it and memorize it), then look for
new one. As a duty bound soldier latch will try to do both. <br />
<br />
Same applies for data that was already latched but about to leave out of
the latch. These two timing delay requirements ultimately constitute
setup and hold; hold time is for time required for data to come out
while setup for data to get latched. Hence, i believe, hold is always
related with launch clock whereas setup is related with capture clock. <br />
<br />
So, what I can i understand is i don’t need a reference for hold since
it’s already in flop. That’s why for hold analysis, clock period is
always considered as 0ns, which virtually turns out to be no clock. (
or..."hold is not dependent on clock"). This is not always true. There
are exceptional cases where data is not launched at 0ns with respect to
capture clock. These kind of situations should be dealt separately.<br />
<br />
Always i must remember that flop has latch structure, this means to say,
when one latch works another doesn't do any work. So if i consider
register to register path, when one is launching data next one is ready
to receive data. That’s all ! It continues like that way throughout the
digital circuit. When first one is receiving next flop is ready to
launch...and so on. To summarize, it takes one clock cycle to complete
the launch or capture. That’s why we always use terms such as present
data, previous data when dealing with data flow through flip flop so
that i can understand the delay introduced by the flop (due to its latch
architecture) which i technically termed it as setup time and hold
time. <br />
<br />
As per the definition, data should be stable at input before clock pulse
ticks at the clock pin of the flip flop. I understand from the
definition that data at the input should have completed the process of
2-3 cycle interchanging values at the receiving gates section of the
latch to settle down to a known value. By any means, if clock is faster
(or data is slower in its arrival at input), then it can tick at at the
time when data might have completed its 1 or 2 cycle interchanging
state. Then i am sure any one of these intermediate value can get
latched, which may not the actual intended original input data. <br />
<br />
For hold, definition is time for which data should be stable after clock
edge. Once the clock edge ticks data present within latch tries to go
out. I know this takes another 2-3 cycle intermediate values within
latch and settle to known value at the output pin of the flip flop.
Imagining that output pin is connected to input of another flip flop and
there is no combinational circuit in between them, lets assume that
delay is zero or very less. In this case intermediate value can
immediately reflect at the input of receiving flip flop, which is
functionally fatal error. Introduce a delay element which is more than
2-3 cycle delay time (i.e. hold time), then delay element provides
sufficient time for the data to settle to known value.<br />
<br />
Looking into these aspects minimum period for the clock can't be less
than the addition of setup time and hold time. if clock period becomes
lesser than this, i am sure flip flop will fail.<br />
<br />
But i should be cautious in understanding that every capture flop
becomes launch flop for new data to be launched. So we need to make sure
that combinational delay is enough so that new data launched doesn’t
kill the data which is already available within flop. And hence hold
check is carried out for clock edge which is one lesser than (or
previous to) setup check. Or in other words, setup check for present
data which is traveling, hold for new (future) data. Present data should
reach the capture flop input before capture clock reaches there.(Setup
check). New data shouldn't reach too fast to capture flop so that
present data doesn't corrupt.<br />
<br />
Well...after all these literature exercise i must agree that i don't
want all jargons to implement a practical design. What i need is basic
understanding of setup time, hold time and how this affects or controls
the timing of a timing path. It would be nice if i can fix setup and
hold violations by adjusting rest of the parameters such as skew,
latency and jitter.<br />
cheers</span> Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-51524158206450872032015-10-09T23:32:00.000-07:002015-10-09T23:32:49.802-07:00Fundamentals of Timing in VLSIwww.spiroprojects.com<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 12pt;">Any digital circuit can be represented
as a “timing path” modeled between two flip flops.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 12pt;"> </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; text-align: justify;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 12pt;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNYoWPaerqo63K_39EpZbgYCd43rEpsO3bU92ss2OT6_KpGEAoGzcy1ObNjjBh6IYoFFyTcPG_NNeOIrJxBRV_nINdATBGVd8KC9vD8KU_rzuV836FmsOihku2VetTsVD8WLX_qAoafx0/s640/Slide56.JPG" width="640" /> </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; text-align: justify;">
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Timing
Path</span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Timing
path is defined as the path between start point and end point where start point
and end point is defined as follows:</span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Start
Point: </span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">All
input ports or clock pins of a sequential element are considered as valid start
point.</span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">End
Point: </span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">All
output port or D pin of sequential element is considered as End point.</span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<a href="http://draft.blogger.com/null" name="more"></a><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">For
<span style="mso-spacerun: yes;"> </span>Static Timing Analysis (STA) design is
split into different timing path and each timing path delay is calculated based
on gate delays and net delays. In timing path data gets launched and traverses
through combinational elements and stops when it encounter a sequential
element. In any timing path, in general (there are exceptions); delay
requirements should be satisfied within a clock cycle.</span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">In
a timing path wherein start point is sequential element and end point is
sequential element, if these two sequential elements are triggered by two
different clocks(i.e. asynchronous) then a common least common multiple (LCM)
of these two different clock periods should be considered to find the launch
edge and capture edge for setup and hold timing analysis.</span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Different
Timing Paths</span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Any
synchronous design is split into various timing paths and each timing path is
verified for its timing requirements. In general four types of timing paths can
be identified in a synchronous design. They are:</span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoListParagraphCxSpFirst" style="background: white; line-height: normal; margin: 0cm 0cm 0pt 54pt; mso-add-space: auto; mso-hyphenate: none; mso-list: l0 level1 lfo1; mso-margin-top-alt: auto; text-align: justify; text-indent: -18pt;">
<span lang="EN-US" style="color: #222222; font-family: Wingdings; font-size: 12pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: AR-SA;"><span style="mso-list: Ignore;">Ø<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Input
to Register </span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoListParagraphCxSpMiddle" style="background: white; line-height: normal; margin: 0cm 0cm 0pt 54pt; mso-add-space: auto; mso-hyphenate: none; mso-list: l0 level1 lfo1; mso-margin-top-alt: auto; text-align: justify; text-indent: -18pt;">
<span lang="EN-US" style="color: #222222; font-family: Wingdings; font-size: 12pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: AR-SA;"><span style="mso-list: Ignore;">Ø<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Input
to Output </span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoListParagraphCxSpLast" style="background: white; line-height: normal; margin: 0cm 0cm 0pt 54pt; mso-add-space: auto; mso-hyphenate: none; mso-list: l0 level1 lfo1; mso-margin-top-alt: auto; text-align: justify; text-indent: -18pt;">
<span lang="EN-US" style="color: #222222; font-family: Wingdings; font-size: 12pt; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: AR-SA;"><span style="mso-list: Ignore;">Ø<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Register
to Register </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Register to Output </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; line-height: 115%; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"><span style="color: black;">
</span></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Input
to Output: </span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">It
starts at input port and ends at output port. This is pure combinational path.
You can hardly find this in a synchronous design. </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"><br />
</span><b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Input
to Register:</span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Semi
synchronous; Register is controlled by the clock. Input data can come at any
time.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"><br />
</span><b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Register
to Register:</span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Purely
sequential; both starting and ending flops are controlled by the clock. </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"><br />
</span><b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Register
to Output:</span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Data
can come at any point of time.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"><br />
</span><b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Clock
path </span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">The
path wherein clock traverses is known as clock path. Clock path can have only
clock inverters and clock buffers as its element. Clock path may be passed
trough a “gated element” to achieve additional advantages. In this case,
characteristics and definitions of the clock change accordingly. We call this
type of clock path as “gated clock path”. The process of “clock gating” has
main advantage of dynamic power saving.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"><br />
</span><b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Data
path</span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">The
path wherein data traverses is known as data path. Data path is a pure combinational
path. It can have any basic combinational gates or group of gates. </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"><br />
</span><b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Launch
path</span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Launch
path is part of clock path. Launch path is launch clock path which is
responsible for launching the data at launch flip flop. </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Launch
path and data path together constitute arrival time of data at the input of
capture register.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"><br />
</span><b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Capture
path</span></b><span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 14pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin: 0cm 0cm 0pt; mso-hyphenate: none; text-align: justify;">
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Capture
path is part of clock path. Capture path is capture clock path which is
responsible for capturing the data at capture flip flop. </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="color: black;">
</span></div>
<span lang="EN-US" style="color: #222222; font-family: "Times New Roman","serif"; font-size: 12pt; mso-fareast-font-family: "MS Mincho"; mso-fareast-language: AR-SA;">Capture clock period and its path delay together
constitute required time of data at the input of capture register.</span><span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 12pt;"> </span></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-14587431783237137722015-10-09T23:24:00.001-07:002015-10-09T23:24:08.795-07:00Bass Separator in EMBEDDEDwww.spiroprojects.com<br />
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">This is basically a <strong>low pass circuit</strong>
which is used to separate out low frequency sounds from audio signals
at audio play back devices. A simple loudspeaker is not capable of
reproducing all the frequencies of the audible range. Different kinds of
loudspeaker are available which can reproduce the sound at certain
range of frequencies. Tweeters are the kind of loudspeakers which are
used to reproduce high frequency audible sounds and woofers are the
general term for the loudspeakers which are used only for reproducing
low frequency sounds. In an audio playback device at least the low
frequency signals are required to filter out, amplified and fed to the
woofer and such kind of circuitry is called bass separator circuit.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">This article discusses <strong>how to design a simplest active bass separator circuit</strong>
with design details. The bass separator circuit alone is realized with
the help of commonly available op-amp ICs. For demonstrating the working
a bass beat is played in a mobile phone which is captured, amplified
and mixed with a high frequency musical signal and is then again
separated out using the bass separator circuit and reproduced in a
loudspeaker.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">This
circuit uses two stage amplifiers with a microphone to capture and
amplify the bass beats played on an external device so that it should
have enough loudness when mixing with other sounds. A music generator IC
is used to produce high frequency musical sound which will be then
mixed with the audio mixing circuit. The audio mixing circuit alone is a
very simple summing amplifier made with an op-amp. The mixed signal is
then applied to a Butterworth low pass filter to separate out the low
frequency components and they are amplified with another op-amp based
circuit before fed them to a loudspeaker.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Bass Separator" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/BS_BD.jpg" title="" /> </span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
microphone coupler is a circuit which helps to couple out the weak
audio signals generated at the microphone. This varying voltage is
separated out from the DC voltage with the help of a coupling capacitor
and fed to the following amplifier circuits.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">With a condenser microphone a 10K resistor and a 0.1uF coupling capacitor is used in most of the circuits.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Microphone Coupler Circuit" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/Microphone%20coupler_0.jpg" title="" /> </span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">Here
a single transistor based amplifier circuit is used as the first stage
amplifier for the audio signals coupled out from the microphone. This
circuit is designed to have extremely high gain so that the audio
signals are get amplified enough. The transistor is connected in a
common emitter configuration and fixed bias technique is used for
biasing the transistor.</span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Two Stage Amplifier" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/Two%20stage%20amplifier_0.jpg" title="" /> </span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
second stage amplifier is exactly similar in design with the first
stage amplifier. This amplifier simply amplifies the signal more and at
the output of this stage one can obtain a good enough voltage amplified
signal which is ready to be current amplified by the following current
amplifier circuit.</span></span></span><span style="font-size: x-small;"><span style="font-family: Arial;"> </span></span></span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"> </span></span></span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><img alt="Two stage amplifier" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/current%20amplifier_0.jpg" title="" /> </span></span></span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"> </span></span></span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><img alt="Amplifier Circuit" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/Amplifier%20circuit_0.jpg" title="" /> </span></span> </span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
music generated in this circuit with the help of a versatile musical IC
UM66. This IC can works in the voltage range of 1.5V to 4.5V. The IC
has three pins and the first pin is where the supply voltage is applied
and the second pin is connected to the ground and the third pin produces
a musical output signal.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">Since
the maximum voltage rating of the IC is only 4.5V, A 100 ohm resistor
is connected between the first pin and the 5V power supply, which will
produces a voltage drop when the current flows through it and hence
maintain the voltage at the first pin at less than 4.5V.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Music Generator Circuit" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/Music%20generator_0.jpg" title="" /> </span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Music Generator IC" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/MG_CD_0.jpg" title="" /> </span></span></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span> </span></span></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span><span style="font-size: x-small;"><span style="font-family: Arial;"></span></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-41394578566863883602015-10-09T23:20:00.000-07:002015-10-09T23:20:11.984-07:00Reproduce Sound Signals Captured through a Microphone in EMBEDDEDwww.spiroprojects.com<br />
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
microphone is a device which is used to capture sound signals and forms
an essential part of most of the electronic gadgets. The microphone
converts the sound signals in the environment to their corresponding
electrical signals. These electrical signals are actually very small in
amplitude and they need to be amplified several hundred times before it
could be reproduced through a loudspeaker. Hence in between a normal
microphone and a normal loudspeaker there comes a multi-staged amplifier
section which amplifies both the voltage and power of the weak audio
signals generated at a microphone.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">This article discusses about a <strong>simple circuit that can reproduce the sound signals captured through a microphone on a loudspeaker</strong>. This circuit is made with the help of two stage transistor amplifier and a <a href="http://www.engineersgarage.com/tutorials/op-amp-basics">op-amp</a>
based loudspeaker driver amplifier. To demonstrate its working, music
is played in a mobile phone which is kept near the microphone and the
same music with more loudness is generated at the loudspeaker connected
to the circuit.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
microphone is connected to a circuit which helps to couple out the
audio signals generated at the microphone so that it can be used for
amplification. The microphone coupling circuit is followed by two stages
of transistor based amplifier and in between the amplifier there is a
volume controller included. The amplified signals may not have enough
power to operate the loudspeaker and hence the voltage amplified signals
need to be current amplified also. It is done with the help of an
op-amp based amplifier circuit with only increases the current sourcing
capability of the audio signals.</span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Microphone Reproduction " class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/Mic%20rep_BD.jpg" title="" /> </span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
microphone coupler is a circuit which helps to couple out the weak
audio signals generated at the microphone. There are different kinds of
microphones which have different working principle, but all of them have
a diaphragm which vibrates according to the sound signals. As the
diaphragm vibrates the current flowing through the microphone varies
according to the sound signals amplitude which made the diaphragm to
vibrate. Here in this circuit a condenser microphone is used which and
the varying current is made to flow through a resistor across which the
equivalent voltage get generated due to the current flow. This voltage
across the resistor will be having a DC voltage on to which the varying
voltage gets added up. This varying voltage is separated out from the DC
voltage with the help of a coupling capacitor and fed to the following
amplifier circuits.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">With a condenser microphone a 10K resistor and a 0.1uF coupling capacitor is used in most of the circuits.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Microphone coupler circuit" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/Microphone%20Coupler%20Circuit.jpg" title="" /> </span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">Here
a single transistor based amplifier circuit is used as the first stage
amplifier for the audio signals coupled out from the microphone. This
circuit is designed to have extremely high gain so that the audio
signals are get amplified enough. The transistor is connected in a
common emitter configuration and fixed bias technique is used for
biasing the transistor.</span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">As
the value of the Rc increases the gain of the circuit increases and it
should be taken care of that when there is no input signals present the
amplifier must be in its quiescent state, means in case of a transistor
based circuit the output voltage without any input signal should be
exactly the half of the total supply voltage. </span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">Here
a 2.2K ohm resistor is selected, which will allow to flow more than one
mille ampere current through the transistor and the resistor itself in
series with it, creating around 2.8 volts across Vce. </span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">Vce = 5 – (2200 * 1mA) = 2.8 V; (almost quiescent voltage)</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">Since
the expected output current Ic is fixed at 1mA, the input current at
quiescent state that will produce that output current can be calculated
with the help of the relation of the hfe of a transistor with the input
and the output currents. The hfe is generally called the current gain
and is given by the equation</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">hfe = Ic / Ib; where Ic is the output collector current and the Ib is the input base current </span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
hfe of the transistor BC548 has a maximum value of 300, and applying
the values of Ic and hfe on to the above equation the Ib can be
calculated around 4uA.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
voltage Vb across base resistor Rb will be the supply voltage minus 0.7
volts for a silicon transistor at quiescent state. Here since the
supply voltage is 5V, the Vb can be calculated as 4.3 V. Now since the
voltage Vb across the resistor and the current Ib flowing through the
resistor is known, the required value of the resistor can be calculated
using the ohms law;</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">Rb = 4.3 V / 4.3 uA = 1M</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">A 0.1uF capacitor is commonly used to couple the audio signals in between the amplifier stages.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
volume controller used here in between the transistor stages is a
simple potentiometer which will attenuates the output of the first stage
amplifier before it is fed to the second stage amplifier. This volume
controller circuit helps to keep the amplitude of the signal within the
input range of the second stage amplifier circuit.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">A
1K variable resistor is used as the volume controller in this circuit
in which the output from the first stage amplifier is connected to one
of the terminals and the input to the second stage is coupled out from
the variable pin through a capacitor and the third pin is grounded.</span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;">The
second stage amplifier is exactly similar in design with the first
stage amplifier. This amplifier simply amplifies the signal more and at
the output of this stage one can obtain a good enough voltage amplified
signal which is ready to be current amplified by the following current
amplifier circuit.</span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Second Stage Amplifier" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/Second%20stage%20amplifier.jpg" title="" /> </span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></span></span></span></div>
<div style="line-height: 200%; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><img alt="Amplifier Circuit" class="imagecache wysiwyg_imageupload 0 imagecache imagecache-Original" src="http://www.engineersgarage.com/sites/default/files/imagecache/Original/wysiwyg_imageupload/28714/Amplifier%20Circuit.jpg" title="" /> </span></span></span> </span></span></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span> </span></span></span></div>
<span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"><span style="font-size: x-small;"><span style="font-family: Arial;"><span style="line-height: 200%;"> </span></span></span> </span></span></span></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0tag:blogger.com,1999:blog-3687293802563215682.post-43481460822215150302015-10-09T06:56:00.002-07:002015-10-09T07:10:26.314-07:00.NET Networking APIs for UWP Appswww.spiroprojects.com<br />
<br />
System.Net.Sockets <br />
<br />
With Windows 10 and .NET Core 5, System.Net.Sockets has been added into the API surface for UWP app developers. This was a highly requested API for Windows Store apps (it was already available for Windows Phone Silverlight apps) and includes types such as System.Net.Sockets.Socket and System.Net.Sockets.SocketAsyncEventArgs, which are used by developers for asynchronous socket communication. The current API surface of System.Net.Sockets in .NET Core is based on that of Phone 8.1 Silverlight and continues to support most of the types, properties and methods (some APIs that are considered obsolete have been removed). Moving forward, we plan to expand the API surface to support more types from this namespace – please see the Looking ahead section below. <br />
<br />
The implementation underneath the System.Net.Sockets API has been significantly changed to eliminate dependencies on APIs that are not part of .NET Core, as well as to use the same underlying threading APIs as other WinRT APIs. Our goal is to ensure functional parity between the previous implementation and the new .NET Core version. Please send us your feedback on GitHub if you see any differences in behavior or performance as you port your Sockets code to UWP. <br />
System.Net.Http gets HTTP/2 <br />
<br />
Developers writing UWP apps on Windows 10 and .NET Core 5 will get HTTP/2 support in System.Net.Http.HttpClient. HTTP/2 is the latest version of the HTTP protocol and provides much lower latency in web access by minimizing the number of connections and round-trip messages. Adding this support into the HttpClient API means that server responses come back much faster, leading to an app that feels more fluid at the same network speed. And the best part is – this feature on by default, so there is zero code change required to leverage this. For more details on how HTTP/2 provides faster web access to apps, see this talk from Build 2015. The talk also features a simple photo downloading app that shows approximately 200% improvement in latency upon switching to HTTP/2 (demo video). <br />
<br />
The following code snippet shows how to query the HTTP version preference on the client as well as the actual HTTP version being used for the connection: var myClient = new HttpClient();<br />
var myRequest = new HttpRequestMessage(HttpMethod.Get, "http://www.contoso.com");<br />
// This property represents the client preference for the HTTP protocol version.<br />
// The default value for UWP apps is 2.0.<br />
Debug.WriteLine(myRequest.Version.ToString());<br />
var response = await myClient.SendAsync(myRequest);<br />
// This tells if you if the client-server communication is actually using HTTP/2<br />
Debug.WriteLine(response.Version.ToString());<br />
<br />
Notes: <br />
<br />
Setting the Request.Version property to 2.0 is not supported on other .NET platforms and will throw a System.ArgumentException when trying to send such a request. The default version on .NET platforms other than UWP is 1.1. <br />
<br />
The Request.Version property represents the client API preference to use HTTP/2. The actual HTTP version used will depend on the client OS, server and intermediate proxies. HTTP/2 is a negotiated protocol that will automatically fall back to HTTP 1.1 if the server or intermediaries do not support HTTP/2.<br />
<h3>
System.Net.Http</h3>
In Windows 8.1, the implementation of <code>HttpClient</code> was based on a managed HTTP stack comprising of types such as <code>System.Net.HttpWebRequest</code> and <code>System.Net.ServicePointManager</code>.
In .NET Core for UWP apps, this has been replaced by a completely new,
lightweight wrapper on top of native Windows OS HTTP components such as <code>Windows.Web.Http</code>, which is based on WinINet.
This allows us to leverage all the latest features (e.g. HTTP/2) from
the OS and we are able to provide these new features much faster to .NET
developers than we previously could. It also helps lower the memory
consumption of .NET apps running on Windows 10, thereby giving the user a
more fluid experience running multiple apps simultaneously. The
available set of APIs from System.Net.Http documented here remains unchanged.<br />
The new implementation has been tested to ensure functional parity
with the previous Windows 8.1 implementation so that you, the developer,
do not see any differences in API behavior as you port your HTTP client
code to UWP. However, if you do see any issues/bugs, please file a bug
on GitHub.<br />
<h3>
System.Net.Requests</h3>
This library contains types related to <code>System.Net.HttpWebRequest</code> and <code>System.Net.HttpWebResponse</code>
classes that allow developers to implement the client role of the HTTP
protocol. The API surface for .NET Core 5 is the same as that available
for Windows 8.1 apps and is very limited compared to the surface in the
.NET Framework. This is intentional and we highly encourage switching to
the HttpClient API instead – that is where our energy and innovation
will be focused going forward. Other parts of .NET Core 5 such as
Windows Communication Foundation (WCF) have already migrated to
HttpClient in their .NET Core implementation as well, as outlined here.<br />
This library is provided purely for backward compatibility and to
unblock usage of .NET libraries that use these older APIs. For .NET
Core, the implementation of <code>HttpWebRequest</code> is actually based on <code>HttpClient</code>
(reversing the dependency order from .NET Framework). As mentioned
above, the reason for this is to avoid usage of the managed .NET HTTP
stack in a UWP app context and move towards HttpClient as a single HTTP
client role API for .NET developers.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpXvlwGpfgnaqUj1IV29BnUKkTnXrFGmH62btVwaqI6AhDdT5OaCOBoyel-afqofUMtJHbiv4MDmGGT8TNNuvrpDGTavwOnx7ouCtCflhBgi2CCI-FulkWzl6JNglYqJx0XpWQdwLZWExW/s1600/1_migrateSlToUwp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpXvlwGpfgnaqUj1IV29BnUKkTnXrFGmH62btVwaqI6AhDdT5OaCOBoyel-afqofUMtJHbiv4MDmGGT8TNNuvrpDGTavwOnx7ouCtCflhBgi2CCI-FulkWzl6JNglYqJx0XpWQdwLZWExW/s320/1_migrateSlToUwp.png" width="320" /></a></div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com1tag:blogger.com,1999:blog-3687293802563215682.post-27559726517080655582015-10-09T06:50:00.001-07:002015-10-09T06:50:39.422-07:00How To Pass Parameters to Threads in Windows Forms Applications—and Get Results www.spiroprojects.com<br />
<div id="stcpDiv" style="left: -1988px; position: absolute; top: -1999px;">
he
.NET framework makes it easy to start code execution on a new
thread—improving user interface design by letting you execute lengthy
procedures on one thread while leaving the UI thread active and
available to handle user interaction. <br /><br />
Starting a new thread is simple in VB.NET—you add the System.Threading
namespace to your module to simplify naming, create a new thread using a
delegate to tell it which method to start in, and then call its <span class="pf">Start</span> method to begin execution.<br /><br />
For example, suppose you have a button on a form; when the user presses
the button, you want to launch a separate thread that performs some
task. For this article, a simple counter method suffices to simulate a
long-running procedure. - See more at:
http://www.devx.com/dotnet/Article/11358#sthash.EQ5lLgWd.dpuf</div>
<br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">.NET framework makes it easy to
start code execution on a new thread—improving user interface design by letting
you execute lengthy procedures on one thread while leaving the UI thread active
and available to handle user interaction. <br />
<br />
Starting a new thread is simple in VB.NET—you add the System.Threading
namespace to your module to simplify naming, create a new thread using a
delegate to tell it which method to start in, and then call its Start method to
begin execution.<br />
<br />
For example, suppose you have a button on a form; when the user presses the
button, you want to launch a separate thread that performs some task. For this
article, a simple counter method suffices to simulate a long-running procedure.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Sub Count() </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Dim i As Integer </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">' loop 25 times </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">For i = 1 To 25 </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">' show the counter value</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Console.WriteLine(i.ToString)</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>' sleep 100 milliseconds </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Thread.CurrentThread.Sleep(100)</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Next </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">End Sub</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">But rather than showing the user an
hourglass cursor and disabling the button while the task executes, you want to
let the user continue to interact with the program. Create a new Windows Form
with a button named btnLaunchThread and set its Text property to <b>Launch
Thread</b>. Next, create a Count() method that counts from 1 to 25, writing the
current counter value to the Output window. Because that would normally happen
very quickly, the code also uses the Thread.CurrentThread method to get the
currently executing thread, and causes it to sleep for 100 milliseconds, which
simulates a lengthy process better. Here's the code.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">' At the top of the form </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Imports System.Threading </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">' Inside the class </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Private Sub btnLaunchThread_Click( </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>ByVal sender As System.Object, </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">ByVal e As System.EventArgs)</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Handles btnLaunchThread.Click </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">' create the thread using a Count
delegate </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Dim t As Thread = New
Thread(AddressOf Count) </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">' start the thread t.Start() End Sub
<br style="mso-special-character: line-break;" />
<br style="mso-special-character: line-break;" />
</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";">Run the code and click the Launch
Thread button. You'll see the output window slowly fill with numbers from 1 to
25. Click the button again—in fact, click it several times. What happens? Each
time you click the button, the application launches a new thread, which then
starts displaying numbers in the output window. To make things a little
clearer, you can assign each thread a name and display that as well. The sample
Form1.vb file contains the altered code: </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";">Option
Strict On</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Imports System.Threading</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Public Class Form1</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Inherits System.Windows.Forms.Form</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Dim threadCount As Integer</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>' omitted -- Windows Form Designer generated
code "</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Private Sub btnLaunchThread_Click( _</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>ByVal sender As System.Object, _</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>ByVal e As System.EventArgs) _</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Handles btnLaunchThread.Click</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Dim t As Thread = New Thread(AddressOf
Count)</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>threadCount += 1</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>t.Name = "Thread " &
threadCount.ToString</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>t.Start()</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>End Sub</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Sub Count()</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Dim i As Integer</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>For i = 1 To 25</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;">
</span>Console.WriteLine(Thread.CurrentThread.Name & _</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>": " & i.ToString)</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Thread.CurrentThread.Sleep(100)</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>Next</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>End Sub</span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman";"><span style="mso-spacerun: yes;"> </span>End Class</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman";"><br />
After changing the code, when you click the button several times, you'll see
each thread's name appear in front of the counter value. That's straightforward
enough. Each button click launches an individual thread that counts from 1 to
25. But what if you didn't <i>know</i> how many times to loop? What if you
wanted the user to specify a value for the number of counter iterations, and
pass <i>that</i> to the new thread?<br />
<br />
Here's where the simplicity breaks down a little. The Thread class constructor
accepts only a ThreadStart delegate (the delegate that represents the method in
which to start the thread), and there's no overloaded Thread.Start() method
that accepts parameter values. </span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDcsdBN_d504a0yAHy2y1DimAfuihTaihQYXD7wRKV9JlO4tYFKc1j9uMWIupCEdz_ClqUVnvKfYrsroDPVOzV2rkLjjJgHR2MUQe9wc9-5vyx2bibRPs94ZX15wssamRszv_D4PLlodQW/s1600/freeThreading.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDcsdBN_d504a0yAHy2y1DimAfuihTaihQYXD7wRKV9JlO4tYFKc1j9uMWIupCEdz_ClqUVnvKfYrsroDPVOzV2rkLjjJgHR2MUQe9wc9-5vyx2bibRPs94ZX15wssamRszv_D4PLlodQW/s320/freeThreading.png" width="320" /></a></div>
<br />
<div id="stcpDiv" style="left: -1988px; position: absolute; top: -1999px;">
he
.NET framework makes it easy to start code execution on a new
thread—improving user interface design by letting you execute lengthy
procedures on one thread while leaving the UI thread active and
available to handle user interaction. <br /><br />
Starting a new thread is simple in VB.NET—you add the System.Threading
namespace to your module to simplify naming, create a new thread using a
delegate to tell it which method to start in, and then call its <span class="pf">Start</span> method to begin execution.<br /><br />
For example, suppose you have a button on a form; when the user presses
the button, you want to launch a separate thread that performs some
task. For this article, a simple counter method suffices to simulate a
long-running procedure. - See more at:
http://www.devx.com/dotnet/Article/11358#sthash.EQ5lLgWd.dpuf</div>
<div id="stcpDiv" style="left: -1988px; position: absolute; top: -1999px;">
he
.NET framework makes it easy to start code execution on a new
thread—improving user interface design by letting you execute lengthy
procedures on one thread while leaving the UI thread active and
available to handle user interaction. <br /><br />
Starting a new thread is simple in VB.NET—you add the System.Threading
namespace to your module to simplify naming, create a new thread using a
delegate to tell it which method to start in, and then call its <span class="pf">Start</span> method to begin execution.<br /><br />
For example, suppose you have a button on a form; when the user presses
the button, you want to launch a separate thread that performs some
task. For this article, a simple counter method suffices to simulate a
long-running procedure. - See more at:
http://www.devx.com/dotnet/Article/11358#sthash.EQ5lLgWd.dpuf</div>
Anonymoushttp://www.blogger.com/profile/01542429410466868222noreply@blogger.com0