Important: Use custom search function to get better results from our thousands of pages

Use " " for compulsory search eg:"electronics seminar" , use -" " for filter something eg: "electronics seminar" -"/tag/" (used for exclude results from tag pages)
Tags: echo, cancellation, using, matlab, echo cancellation, echo cancellation ppt, echo cancellation pdf, echo cancellation skype, echo cancellation asterisk, echo cancellation cisco, echo cancellation trixbox, echo cancellation matlab, echo cancellation hardware, echo cancellation algorithm, echo cancellation microphone, echo cancellation software,
Ask More Info Of  A Seminar Ask More Info Of A Project Post Reply  Follow us on Twitter
28-06-2010, 07:20 AM
Post: #1
echo cancellation using matlab
ABSTRACT
The term echo cancellation is used in telephony to describe the process of removing echo from a voice communication in order to improve voice quality on a telephone call. In addition to improving subjective quality, this process increases the capacity achieved through silence suppression by preventing echo from traveling across a network.



Two sources of echo have primary relevance in telephony:
acoustic echo and
hybrid echo.
Echo cancellation involves first recognizing the originally transmitted signal that re-appears, with some delay, in the transmitted or received signal. Once the echo is recognized, it can be removed by 'subtracting' it from the transmitted or received signal. This technique is generally implemented using a digital signal processor (DSP), but can also be implemented in software. Echo cancellation is done using either echo suppressors or echo cancellers, or in some cases both.
History
In telephony, "Echo" is very much like what one would experience yelling in a canyon. Echo is the reflected copy of the voice heard some time later and a delayed version of the original. On a telephone, if the delay is fairly significant (more than a few hundred milliseconds), it is considered annoying. If the delay is very small (10's of milliseconds or less), the phenomena is called sidetone and while not objectionable to humans, can interfere with the communication between data modems.
In the earlier days of telecommunications, echo suppression was used to reduce the objectionable nature of echos to human users. In essence these devices rely upon the fact that most telephone conversations are half-duplex. That is one person speaks while the other listens. An echo suppressor attempts to determine which is the primary direction and allows that channel to go forward. In the reverse channel, it places attenuation to block or "suppress" any signal on the assumption that the signal is echo. Naturally, such a device is not perfect. There are cases where both ends are active, and other cases where one end replies faster than an echo suppressor can switch directions to keep the echo attenuated but allow the remote talker to reply without attenuation.
Echo cancellers are the replacement for earlier echo suppressors that were initially developed in the 1950s to control echo caused by the long delay on satellite telecommunications circuits. Initial echo canceller theory was developed at AT&T Bell Labs in the 1960s, but the first commercial echo cancellers were not deployed until the late 1970s owing to the limited capability of the electronics of the era. The concept of an echo canceller is to synthesize an estimate of the echo from the talker's signal, and subtract that synthesis from the return path instead of switching attenuation into/out of the path. This technique requires adaptive signal processing to generate a signal accurate enough to effectively cancel the echo, where the echo can differ from the original due to various kinds of degradation along the way.
Rapid advances in the implementation of digital signal processing allowed echo cancellers to be made smaller and more cost-effective. In the 1990s, echo cancellers were implemented within voice switches for the first time (in the Northern Telecom DMS-250) rather than as standalone devices. The integration of echo cancellation directly into the switch meant that echo cancellers could be reliably turned on or off on a call-by-call basis, removing the need for separate trunk groups for voice and data calls. Today's telephony technology often employs echo cancellers in small or handheld communications devices via a software voice engine, which provides cancellation of either acoustic echo or the residual echo introduced by a far-end PSTN gateway system; such systems typically cancel echo reflections with up to 64 milliseconds delay.
Voice messaging and voice response systems which accept speech for caller input use echo cancellation while speech prompts are played to prevent the systems own speech recognition from falsely recognizing the echoed prompts.
Acoustic echo

Acoustic echo arises when sound from a loudspeaker”for example, the earpiece of a telephone handset”is picked up by the microphone in the same room”for example, the mic in the very same handset. The problem exists in any communications scenario where there is a speaker and a microphone. Examples of acoustic echo are found in everyday surroundings such as:
¢ Hands-free car phone systems
¢ A standard telephone or cellphone in speakerphone or hands-free mode
¢ Dedicated standalone "conference phones"
¢ Installed room systems which use ceiling speakers and microphones on the table
¢ Physical coupling (vibrations of the loudspeaker transfer to the microphone via the handset casing)
In most of these cases, direct sound from the loudspeaker (not the person at the far end, otherwise referred to as the Talker) enters the microphone almost unaltered. This is called direct acoustic path echo. The difficulties in cancelling acoustic echo stem from the alteration of the original sound by the ambient space. This colours the sound that re-enters the microphone. These changes can include certain frequencies being absorbed by soft furnishings, and reflection of different frequencies at varying strength. These secondary reflections are not strictly referred to as echo, but rather are "reverb".
Acoustic echo is heard by the far end talkers in a conversation. So if a person in Room A talks, they will hear their voice bounce around in Room B. This sound needs to be cancelled, or it will get sent back to its origin. Due to the slight round-trip transmission delay, this acoustic echo is very distracting.
Acoustic Echo Cancellation

Since invention at AT&T Bell Labs echo cancellation algorithms have been improved and honed. Like all echo cancelling processes, these first algorithms were designed to anticipate the signal which would inevitably re-enter the transmission path, and cancel it out.
The Acoustic Echo Cancellation (AEC) process works as follows:
1. A far-end signal is delivered to the system.
2. The far-end signal is reproduced by the speaker in the room.
3. A microphone also in the room picks up the resulting direct path sound, and consequent reverberant sound as a near-end signal.
4. The far-end signal is filtered and delayed to resemble the near-end signal.
5. The filtered far-end signal is subtracted from the near-end signal.
6. The resultant signal represents sounds present in the room excluding any direct or reverberated sound produced by the speaker.
Challenges for AEC (Acoustic Echo Cancellation)
The primary challenge for an echo canceler is determining the nature of the filtering to be applied to the far-end signal such that it resembles the resultant near-end signal. The filter is essentially a model of the speaker, microphone and the room's acoustical attributes.
To configure the filter, early echo cancellation systems required training with impulse or pink noise, and some used this as the only model of the acoustic space. Later systems used this training only as a basis to start from, and the canceller then adapted from that point on. By using the far-end signal as the stimulus, modern systems can 'converge' from nothing to 55 dB of cancellation in around 200 ms.
Full Bandwidth Cancellation
Until recently echo cancellation only needed to apply to the voice bandwidth of telephone circuits. PSTN calls transmit frequencies between 300 Hz and 3 kHz, the range required for human speech intelligibility.
Videoconferencing is one area where full bandwidth audio is transceived. In this case, specialised products are employed to perform echo cancellation.
Hybrid echo

Hybrid echo is generated by the public switched telephone network (PSTN) through the reflection of electrical energy by a device called a hybrid (hence the term hybrid echo). Most telephone local loops are two-wire circuits while transmission facilities are four-wire circuits. Each hybrid produces echoes in both directions, though the far end echo is usually a greater problem for voiceband.
Retaining echo suppressors

Echo suppression may have the side-effect of removing valid signals from the transmission. This can cause audible signal loss that is called "clipping" in telephony, but the effect is more like a "squelch" than amplitude clipping. In an ideal situation then, echo cancellation alone will be used. However this is insufficient in many applications, notably software phones on networks with long delay and meager throughput. Here, echo cancellation and suppression can work in conjunction to achieve acceptable performance.
Modems

Echo control on voice-frequency data calls that use dial-up modems may cause data corruption. Some telephone devices disable echo suppression or echo cancellation when they detect the 2100 or 2225 Hz "answer" tones associated with such calls, in accordance with ITU-T recommendation G.164 or G.165.
In the 1990s most echo cancellation was done inside modems of type v.32 and later. In voiceband modems this allowed using the same frequencies in both directions simultaneously, greatly increasing the data rate. As part of connection negotiation, each modem sent line probe signals, measured the echoes, and set up its delay lines. Echoes in this case did not include long echoes caused by acoustic coupling, but did include short echoes caused by impedance mismatches in the 2-wire local loop to the telephone exchange.
After the turn of the century, DSL modems also made extensive use of automated echo cancellation. Though they used separate incoming and outgoing frequencies, these frequencies were beyond the voiceband for which the cables were designed, and often suffered attenuation distortion due to bridge taps and incomplete impedance matching. Deep, narrow frequency gaps often resulted, that could not be made usable by echo cancellation. These were detected and mapped out during connection negotiation.
Audio feedback

Audio feedback (also known as the Larsen effect after the Danish scientist, Søren Larsen, who first discovered its principles) is a special kind of feedback which occurs when a sound loop exists between an audio input (for example, a microphone or guitar pickup) and an audio output (for example, a loudspeaker). In this example, a signal received by the microphone is amplified and passed out of the loudspeaker. The sound from the loudspeaker can then be received by the microphone again, amplified further, and then passed out through the loudspeaker again. This is a good example of positive feedback. The frequency of the resulting sound is determined by resonant frequencies in the microphone, amplifier, and loudspeaker, the acoustics of the room, the directional pick-up and emission patterns of the microphone and loudspeaker, and the distance between them.


History and theory

The conditions for feedback follow the Barkhausen stability criterion, namely that, with sufficiently high gain, a stable oscillation can (and usually will) occur in a feedback loop whose frequency is such that the phase delay is an integer multiple of 360 degrees and the gain at that frequency is equal to 1. If the gain is increased until it is greater than 1 for some frequency, then it will be equal to 1 at a nearby frequency, and the system will start to oscillate at that frequency at the merest input excitation, that is to say: sound will be produced without anyone actually playing. This is the principle upon which electronic oscillators are based; although in that case the feedback loop is purely electronic, the principle is the same. If the gain is large, but slightly less than 1, then high-pitched slowly decaying feedback tones will be created, but only with some input sound.
The first academic work on acoustical feedback was done by Dr. C. Paul Boner, PhD., beginning in 1962. Dr. Boner reasoned that when feedback happened, it did so at one precise frequency. He also reasoned that you could stop it by inserting a very narrow notch filter at that frequency in the loudspeaker's signal chain. He worked with Gifford White, founder of White Instruments to hand craft notch filters for specific feedback frequencies in specific rooms. Dr. Boner was responsible for establishing basic theories of acoustic feedback, room-ring modes, and room-sound system equalizing techniques.
Prevention
Most audio feedback results in a high-pitched squealing noise familiar to those who have listened to bands at house parties, and other locations where the sound setup is less than ideal. Usually this occurs when live microphones are pointed in the general direction of the output speakers.
Distance
To keep the maximal loop gain under 1, the amount of sound energy that is fed back to the microphones has to be as small as possible. As sound pressure falls off with 1/r with respect to the distance r in free space or up to a distance known as reverberation distance in closed spaces (and the energy density with 1/r²), it is important to keep the microphones at a large enough distance from the speaker systems.
Directivity

Additionally, the loudspeakers and microphones should have non-uniform directivity and should stay out of the maximum sensitivity of each other, ideally at a direction of cancellation. Public address speakers often achieve directivity in the mid and treble region (and good efficiency) via horn systems. Sometimes the woofers have a cardioid characteristic.
Professional setups circumvent feedback by placing the main speakers a far distance from the band or artist, and then having several smaller speakers known as monitors pointing back at each band member, but in the opposite direction to that in which the microphones are pointing. This allows independent control of the sound pressure levels for the audience and the performers.
If monitors are oriented at 180 degrees to the microphones that are their sources, the microphones should have a cardioid pickup pattern. Super- or hypercardioid patterns are suitable if the monitor speakers are located at a different angle on the back side of the microphones, they also better cancel reverberations coming from elsewhere. Almost all microphones for sound reinforcement are directional.
Frequency response
Almost always, the natural frequency responses of sound-reinforcement systems is not ideally flat. This leads to acoustical feedback at the frequency with the highest loop gain, which may be much higher than the average gain over all frequencies (resonance). It is therefore helpful to apply some form of equalizer to reduce the gain of this frequency.
Feedback can be reduced manually by "ringing out" a microphone. The sound engineer can increase the level of a microphone or guitar pickup until feedback occurs. The engineer can then turn down frequency on a band equalizer preventing feedback at that pitch but allowing maximum volume. Professional sound engineers can "ring out" microphones and pick-ups by ear but most use a real time analyzer connected to a microphone to show the ringing frequency.
To avoid feedback, automatic anti-feedback devices can be used. (In the marketplace these go by the name "feedback destroyer" or "feedback eliminator".) Some of these work by shifting the frequency slightly, resulting in a "chirp"-sound instead of a howling sound due to the upshifting the frequency of the feedback. Other devices use sharp notch-filters to filter out offending frequencies. Adaptive algorithms are often used to automatically tune these notch filters.
Deliberate uses
Early examples in popular music
While audio feedback is usually undesirable, it has entered into musical history as a desired effect beginning in the 1950s with Albert Collins, Johnny "Guitar" Watson and Guitar Slim who all independently recorded and published music featuring that effect.[ According to All Music Guide's Richie Unterberger, the very first use of feedback on a rock record is the song "I Feel Fine" by The Beatles, recorded in 1964. The Who's 1965 hits "Anyway, Anyhow, Anywhere" and "My Generation" featured feedback manipulation by Pete Townshend, with an extended solo in the former and the shaking of his guitar in front of the amplifier to create a throbbing noise in the latter. Canned Heat's Fried Hockey Boogie (off of their 1968 album Boogie with Canned Heat) also featured guitar feedback produced by Henry Vestine during his solo to create a highly amplified distorted boogie style of feedback.
Feedback was used extensively after 1965 by The Monks, Jefferson Airplane, The Velvet Underground and the Grateful Dead, who included in many of their live shows a segment named Feedback, a several-minutes long feedback-driven improvisation. Feedback has since become a striking characteristic of rock music, as electric guitar players such as Jeff Beck, Pete Townshend and Jimi Hendrix deliberately induced feedback by holding their guitars close to the amplifier. Lou Reed created his 1975 album Metal Machine Music entirely from loops of feedback played at various speeds.
Examples in modern classical music
Though closed circuit feedback was a prominent feature in many early experimental electronic music compositions, it was contemporary American composer Robert Ashley who first used acoustic feedback as sound material in his work The Wolfman (1964). Steve Reich makes extensive use of audio feedback in his work Pendulum Music (1968) by swinging a series of microphones back and forth in front of their corresponding amplifiers.
Contemporary uses
Audio feedback became a signature feature of many underground rock bands during the 1980s. American noise-rockers Sonic Youth melded the rock-feedback tradition with a compositional/classical approach (notably covering Reich's "Pendulum Music"), and guitarist/producer Steve Albiniâ„¢s group Big Black also worked controlled feedback into the makeup of their songs. With the alternative rock movement of the 1990s, feedback again saw a surge in popular usage by suddenly mainstream acts like Nirvana and Rage Against the Machine Another alternative rock band famous for using feedback are The Smashing Pumpkins who often used feedback during solos and intros of their songs.
Marketing
The principle of feedback is used in many guitar sustain devices. Examples include handheld devices like the Ebow, built-in guitar pickups that increase the instrument's sonic sustain, string drivers mounted on a stand such as the Guitar Resonator, and sonic transducers mounted on the head of a guitar. Intended closed-circuit feedback can also be created by an effects unit, such as a delay pedal or effect fed back into a mixing console. The feedback can be controlled by using the fader to determine a volume level.
Notes
1. Rage Against the Machine's guitarist Tom Morello performs an entire guitar solo by purposefully creating audio feedback on the song "Sleep Now in the Fire" with the aid of a tremolo bar and toggle switch. Used in this fashion, one has some control over the feedback's frequency and amplitude as the guitar strings (or other stringed instrument) form a filter within the feedback path and one can easily and rapidly "tune" this filter, producing wide ranging effects. A more extreme example can be found on the album Absolutego by the Japanese band Boris, featuring a full 65 minutes of heavy guitar feedback and bass drone.
Adaptive feedback cancellation
From Wikipedia, the free encyclopedia
Jump to: navigation, search
Adaptive feedback cancellation is a common method of cancelling audio feedback in a variety of electro-acoustic systems such as digital hearing aids. The time varying acoustic feedback leakage paths can only be eliminated with adaptive feedback cancellation. When an electro-acoustic system with an adaptive feedback canceller is presented with a correlated input signal, a recurrent distortion artifact, entrainment is generated. There is a difference between the system identification and feedback cancellation.
Adaptive feedback cancellation has its application in echo cancellation. The error between the desired and the actual output is taken and given as feedback to the adaptive processor for adjusting its coefficients to minimize the error.
Echo suppressor
From Wikipedia, the free encyclopedia
Jump to: navigation, search
An echo suppressor (sometimes "acoustic echo suppressor" / AES) is a telecommunications device used to reduce the echo heard on long telephone circuits, particularly circuits that traverse satellite links. Echo suppressors were first developed in the 1950s in response to the first use of satellites for telecommunications, but they have since been largely supplanted by better performing cancellers Acoustic Echo Cancelling
Echo suppressors work by detecting if there is a voice signal going in one direction on a circuit, and then inserting a great deal of loss in the other direction. Usually the echo suppressor at the far-end of the circuit adds this loss when it detects voice coming from the near-end of the circuit. This added loss prevents the speaker from hearing his own voice.
While effective, this approach leads to several problems:
¢ Double-talk: It is fairly normal in conversation for both parties to speak at the same time, at least briefly. Because each echo suppressor will then detect voice energy coming from the far-end of the circuit, the effect would ordinarily be for loss to be inserted in both directions at once, effectively blocking both parties. To prevent this, echo suppressors can be set to detect voice activity from the near-end speaker and to fail to insert loss (or insert a smaller loss) when both the near-end speaker and far-end speaker are talking. This, of course, temporarily defeats the primary effect of having an echo suppressor at all.
¢ Clipping: Since the echo suppressor is alternately inserting and removing loss, there is frequently a small delay when a new speaker begins talking that results in clipping the first syllable from that speaker's speech.
¢ Dead-set: If the far-end party on a call is in a noisy environment, the near-end speaker will hear that background noise while the far-end speaker is talking, but the echo suppressor will suppress this background noise when the near-end speaker starts talking. The sudden absence of the background noise gives the near-end user the impression that the line has gone dead.
Echo suppressors cause effects that are frustrating for both parties to a call, although they do effectively deal with the echo. In response to this, AT&T Bell Labs developed echo canceler theory in the early 1960s, which then resulted in laboratory echo cancelers in the late 1960s and commercial echo cancelers in the 1970s.
In modern times, the main use of an AES (over an AEC) lies in the VoIP sector. This is primarily because AECs require a fast hardware (MHz), usually in the from of a Digital signal processor (DSP). For the PC market, and especially for the embedded VoIP market, this cost in MHZ comes at a premium. On embedded platforms, it is not-unusual to find a Wideband CODEC (such as AMR-WB / G.722) incorporated in place of an AEC. This said, many (embedded) VoIP solutions do have a fully functional AEC.
Examples of AES in VoIP include: "X-Ten Eyebeam", X-Lite and Skype.
History
In telephony, "Echo" is very much like what one would experience yelling in a canyon. Echo is the reflected copy of the voice heard some time later and a delayed version of the original. On a telephone, if the delay is fairly significant (more than a few hundred milliseconds), it is considered annoying. If the delay is very small (10's of milliseconds or less), the phenomena is called sidetone and while not objectionable to humans, can interfere with the communication between data modems.[citation needed]
In the earlier days of telecommunications, echo suppression was used to reduce the objectionable nature of echos to human users. In essence these devices rely upon the fact that most telephone conversations are half-duplex. That is one person speaks while the other listens. An echo suppressor attempts to determine which is the primary direction and allows that channel to go forward. In the reverse channel, it places attenuation to block or "suppress" any signal on the assumption that the signal is echo. Naturally, such a device is not perfect. There are cases where both ends are active, and other cases where one end replies faster than an echo suppressor can switch directions to keep the echo attenuated but allow the remote talker to reply without attenuation.
Echo cancellers are the replacement for earlier echo suppressors that were initially developed in the 1950s to control echo caused by the long delay on satellite telecommunications circuits. Initial echo canceller theory was developed at AT&T Bell Labs in the 1960s,[1] but the first commercial echo cancellers were not deployed until the late 1970s owing to the limited capability of the electronics of the era. The concept of an echo canceller is to synthesize an estimate of the echo from the talker's signal, and subtract that synthesis from the return path instead of switching attenuation into/out of the path. This technique requires adaptive signal processing to generate a signal accurate enough to effectively cancel the echo, where the echo can differ from the original due to various kinds of degradation along the way.
Rapid advances in the implementation of digital signal processing allowed echo cancellers to be made smaller and more cost-effective. In the 1990s, echo cancellers were implemented within voice switches for the first time (in the Northern Telecom DMS-250) rather than as standalone devices. The integration of echo cancellation directly into the switch meant that echo cancellers could be reliably turned on or off on a call-by-call basis, removing the need for separate trunk groups for voice and data calls. Today's telephony technology often employs echo cancellers in small or handheld communications devices via a software voice engine, which provides cancellation of either acoustic echo or the residual echo introduced by a far-end PSTN gateway system; such systems typically cancel echo reflections with up to 64 milliseconds delay.
Voice messaging and voice response systems which accept speech for caller input use echo cancellation while speech prompts are played to prevent the systems own speech recognition from falsely recognizing the echoed prompts.
Acoustic echo
Acoustic echo arises when sound from a loudspeakerfor example, the earpiece of a telephone handsetis picked up by the microphone in the same roomfor example, the mic in the very same handset. The problem exists in any communications scenario where there is a speaker and a microphone. Examples of acoustic echo are found in everyday surroundings such as: Hands-free car phone systems A standard telephone or cellphone in speakerphone or hands-free mode Dedicated standalone "conference phones" Installed room systems which use ceiling speakers and microphones on the table Physical coupling (vibrations of the loudspeaker transfer to the microphone via the handset casing) In most of these cases, direct sound from the loudspeaker (not the person at the far end, otherwise referred to as the Talker) enters the microphone almost unaltered. This is called direct acoustic path echo. The difficulties in cancelling acoustic echo stem from the alteration of the original sound by the ambient space. This colours the sound that re-enters the microphone. These changes can include certain frequencies being absorbed by soft furnishings, and reflection of different frequencies at varying strength. These secondary reflections are not strictly referred to as echo, but rather are "reverb".
Acoustic echo is heard by the far end talkers in a conversation. So if a person in Room A talks, they will hear their voice bounce around in Room B. This sound needs to be cancelled, or it will get sent back to its origin. Due to the slight round-trip transmission delay, this acoustic echo is very distracting.



Acoustic Echo Cancellation
Since invention at AT&T Bell Labs echo cancellation algorithms have been improved and honed. Like all echo cancelling processes, these first algorithms were designed to anticipate the signal which would inevitably re-enter the transmission path, and cancel it out.
The Acoustic Echo Cancellation (AEC) process works as follows:
A far-end signal is delivered to the system.
The far-end signal is reproduced by the speaker in the room.
A microphone also in the room picks up the resulting direct path sound, and consequent reverberant sound as a near-end signal. The far-end signal is filtered and delayed to resemble the near-end signal. The filtered far-end signal is subtracted from the near-end signal. The resultant signal represents sounds present in the room excluding any direct or reverberated sound produced by the speaker. Challenges for AEC (Acoustic Echo Cancellation) The primary challenge for an echo canceler is determining the nature of the filtering to be applied to the far-end signal such that it resembles the resultant near-end signal. The filter is essentially a model of the speaker, microphone and the room's acoustical attributes.To configure the filter, early echo cancellation systems required training with impulse or pink noise, and some used this as the only model of the acoustic space. Later systems used this training only as a basis to start from, and the canceller then adapted from that point on. By using the far-end signal as the stimulus, modern systems can 'converge' from nothing to 55 dB of cancellation in around 200 ms. Full Bandwidth Cancellation
Until recently echo cancellation only needed to apply to the voice bandwidth of telephone circuits. PSTN calls transmit frequencies between 300 Hz and 3 kHz, the range required for human speech intelligibility.
Videoconferencing is one area where full bandwidth audio is transceived. In this case, specialised products are employed to perform echo cancellation.
Hybrid echo
Hybrid echo is generated by the public switched telephone network (PSTN) through the reflection of electrical energy by a device called a hybrid(hence the term hybrid echo). Most telephone local loops are two-wire circuits while transmission facilities are four-wire circuits. Each hybrid produces echoes in both directions, though the far end echo is usually a greater problem for voiceband. Retaining echo suppressors
Echo suppression may have the side-effect of removing valid signals from the transmission. This can cause audible signal loss that is called "clipping" in telephony, but the effect is more like a "squelch" than amplitude clipping.
Echo_cancellation
Acoustic Echo Cancellation
Since invention at AT&T Bell Labs[1] echo cancellation algorithms have been improved and honed. Like all echo cancelling processes, these first algorithms were designed to anticipate the signal which would inevitably re-enter the transmission path, and cancel it out.
The Acoustic Echo Cancellation (AEC) process works as follows:
A far-end signal is delivered to the system.

The far-end signal is reproduced by the speaker in the room.

A microphone also in the room picks up the resulting direct path sound, and consequent reverberant sound as a near-end signal.

The far-end signal is filtered and delayed to resemble the near-end signal.

The filtered far-end signal is subtracted from the near-end signal.

The resultant signal represents sounds present in the room excluding any direct or reverberated sound produced by the speaker.

Challenges for AEC (Acoustic Echo Cancellation)
The primary challenge for an echo canceler is determining the nature of the filtering to be applied to the far-end signal such that it resembles the resultant near-end signal. The filter is essentially a model of the speaker, microphone and the room's acoustical attributes.
To configure the filter, early echo cancellation systems required training with impulse or pink noise, and some used this as the only model of the acoustic space. Later systems used this training only as a basis to start from, and the canceller then adapted from that point on. By using the far-end signal as the stimulus, modern systems can 'converge' from nothing to 55 dB of cancellation in around 200 ms. Full Bandwidth Cancellation
Until recently echo cancellation only needed to apply to the voice bandwidth of telephone circuits. PSTN calls transmit frequencies between 300 Hz and 3 kHz, the range required for human speech intelligibility.
Videoconferencing is one area where full bandwidth audio is transceived. In this case, specialised products are employed to perform echo cancellation. Hybrid echo
Hybrid echo is generated by the public switched telephone network (PSTN) through the reflection of electrical energy by a device called a hybrid (hence the term hybrid echo). Most telephone local loops are two-wire circuits while transmission facilities are four-wire circuits. Each hybrid produces echoes in both directions, though the far end echo is usually a greater problem for voiceband. Retaining echo suppressors
Echo suppression may have the side-effect of removing valid signals from the transmission. This can cause audible signal loss that is called "clipping" in telephony, but the effect is more like a "squelch" than amplitude clipping. In an ideal situation then, echo cancellation alone will be used. However this is insufficient in many applications, notably software phones on networks with long delay and meager throughput. Here, echo cancellation and suppression can work in conjunction to achieve acceptable performance.
Modems
Echo control on voice-frequency data calls that use dial-up modems may cause data corruption. Some telephone devices disable echo suppression or echo cancellation when they detect the 2100 or 2225 Hz "answer" tones associated with such calls, in accordance with ITU-T recommendation G.164 or G.165
In the 1990s most echo cancellation was done inside modems of type v.32 and later. In voiceband modems this allowed using the same frequencies in both directions simultaneously, greatly increasing the data rate. As part of connection negotiation, each modem sent line probe signals, measured the echoes, and set up its delay lines. Echoes in this case did not include long echoes caused by acoustic coupling, but did include short echoes caused by impedance mismatches in the 2-wire local loop to the telephone exchange
After the turn of the century, DSL modems also made extensive use of automated echo cancellation. Though they used separate incoming and outgoing frequencies, these frequencies were beyond the voiceband for which the cables were designed, and often suffered attenuation distortion due to bridge taps and incomplete impedance matching. Deep, narrow frequency gaps often resulted, that could not be made usable by echo cancellation. These were detected and mapped out during connection negotiation. See also Signal reflection Voice engine Audio feedback Least mean squares References This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. Please improve this article by introducing more precise citations where appropriate. (November 2009) External links
Echo Cancellation and Noise Cancellation for VoIP (SoliCall)
Echo Cancellation and Noise Cancellation for Hands-Free Applications (Acoustic Technologies)
World-Class Echo Cancellation Algorithms (Adaptive Digital Technologies)
Acoustic and line echo cancellation for hands-free applications and telephony (Digital Speech Algorithms)
Echo cancellation and Voice Quality Enhancement Solutions (Octasic)
Echo cancellation (International Engineering Consortium on-line education topic)
Echo cancellation technology (IBM)
Echo basics tutorial, including echo cancellers and echo's effect on QoS (Ditech Networks)
Basics of line echo cancellers implementation, including sample C source code (David Rowe, Open Source Line Echo Canceller)
Sophisticated Acoustic Echo Cancellation and Speech Enhancement for Automotive (QNX Software Systems)
Echo Cancellation and Noise Cancellation (DSP INNOVATIONS INC)
Categories: Communication circuits | Telephony Hidden categories: All articles with unsourced statements | Articles with unsourced statements from September 2008| Articles lacking in-text citations from November 2009 | All articles lacking in-text citations
Acoustic Echo Cancellation
The term echo cancellation is used in telephony to describe the process of removing echo from a voice communication in order to improve voice quality on a telephone call. In addition to improving subjective quality, this process increases the capacity achieved through silence suppression by preventing echo from traveling across a network.
Two sources of echo have primary relevance in telephony: acoustic echo and hybrid echo.
Echo cancellation involves first recognizing the originally transmitted signal that re-appears, with some delay, in the transmitted or received signal. Once the echo is recognized, it can be removed by 'subtracting' it from the transmitted or received signal. This technique is generally implemented using a digital signal processor (DSP), but can also be implemented in software. Echo cancellation is done using either echo suppressors or echo cancellers, or in some cases both.
Contents



Full Bandwidth Cancellation
Until recently echo cancellation only needed to apply to the voice bandwidth of telephone circuits. PSTN calls transmit frequencies between 300 Hz and 3 kHz, the range required for human speech intelligibility.
Videoconferencing is one area where full bandwidth audio is transceived. In this case, specialised products are employed to perform echo cancellation.
Hybrid echo
Hybrid echo is generated by the public switched telephone network (PSTN) through the reflection of electrical energy by a device called a hybrid (hence the term hybrid echo). Most telephone local loops are two-wire circuits while transmission facilities are four-wire circuits. Each hybrid produces echoes in both directions, though the far end echo is usually a greater problem for voiceband.
Retaining echo suppressors
Echo suppression may have the side-effect of removing valid signals from the transmission. This can cause audible signal loss that is called "clipping" in telephony, but the effect is more like a "squelch" than amplitude clipping. In an ideal situation then, echo cancellation alone will be used. However this is insufficient in many applications, notably software phones on networks with long delay and meager throughput. Here, echo cancellation and suppression can work in conjunction to achieve acceptable performance.
Modems
Echo control on voice-frequency data calls that use dial-up modems may cause data corruption. Some telephone devices disable echo suppression or echo cancellation when they detect the 2100 or 2225 Hz "answer" tones associated with such calls, in accordance with ITU-T recommendation G.164 or G.165.
In the 1990s most echo cancellation was done inside modems of type v.32 and later. In voiceband modems this allowed using the same frequencies in both directions simultaneously, greatly increasing the data rate. As part of connection negotiation, each modem sent line probe signals, measured the echoes, and set up its delay lines. Echoes in this case did not include long echoes caused by acoustic coupling, but did include short echoes caused by impedance mismatches in the 2-wire local loop to the telephone exchange.
After the turn of the century, DSL modems also made extensive use of automated echo cancellation. Though they used separate incoming and outgoing frequencies, these frequencies were beyond the voiceband for which the cables were designed, and often suffered attenuation distortion due to bridge taps and incomplete impedance matching. Deep, narrow frequency gaps often resulted, that could not be made usable by echo cancellation. These were detected and mapped out during connection negotiation.
See also Signal reflection Voice engine Audio feedback Least mean squares References This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. Please improve this article by introducing more precise citations where appropriate

INTRODUCTION OF MATLAB

MATLAB is a high-performance language for technical computing. It
integrates computation, visualization, and programming in an easy-to-use
environment where problems and solutions are expressed in familiar
mathematical notation. Typical uses include
¢ Math and computation
¢ Algorithm development
¢ Data acquisition
¢ Modeling, simulation, and prototyping
¢ Data analysis, exploration, and visualization
¢ Scientific and engineering graphics
¢ Application development, including graphical user interface building
MATLAB is an interactive system whose basic data element is an array that
does not require dimensioning. This allows you to solve many technical
computing problems, especially those with matrix and vector formulations,
in a fraction of the time it would take to write a program in a scalar
noninteractive language such as C or Fortran.
The name MATLAB stands for matrix laboratory. MATLAB was originally
written to provide easy access to matrix software developed by the INPACK
and EISPACK projects. Today, MATLAB engines incorporate the LAPACK and BLAS libraries, embedding the state of the art in software for matrix computation.
MATLAB has evolved over a period of years with input from many users. In
university environments, it is the standard instructional tool for introductory
and advanced courses in mathematics, engineering, and science. In industry,
MATLAB is the tool of choice for high-productivity research, development,
and analysis.
MATLAB features a family of add-on application-specific solutions called
toolboxes. Very important to most users of MATLAB, toolboxes allow you
to learn and apply specialized technology. Toolboxes are comprehensive
collections of MATLAB functions (M-files) that extend the MATLAB
environment to solve particular classes of problems. Areas in which toolboxes are available include signal processing, control systems, neural networks, fuzzy logic, wavelets, simulation, and many others.

The MATLAB System
The MATLAB system consists of five main parts:
Desktop Tools and Development Environment
This is the set of tools and facilities that help you use MATLAB functions
and files. Many of these tools are graphical user interfaces. It includes the
MATLAB desktop and Command Window, a command history, an editor and debugger, a code analyzer and other reports, and browsers for viewing help, the workspace, files, and the search path.

The MATLAB Mathematical Function Library
This is a vast collection of computational algorithms ranging from elementary functions, like sum, sine, cosine, and complex arithmetic, to more sophisticated functions like matrix inverse, matrix eigenvalues, Bessel functions, and fast Fourier transforms.
The MATLAB Language
This is a high-level matrix/array language with control flow statements,
functions, data structures, input/output, and object-oriented programming
features. It allows both programming in the small to rapidly create quick
and dirty throw-away programs, and programming in the large to create
large and complex application programs.

Graphics
MATLAB has extensive facilities for displaying vectors and matrices as
graphs, as well as annotating and printing these graphs. It includes high-level
functions for two-dimensional and three-dimensional data visualization,
image processing, animation, and presentation graphics. It also includes
low-level functions that allow you to fully customize the appearance of
graphics as well as to build complete graphical user interfaces on your
MATLAB applications.


The MATLAB External Interfaces/API
This is a library that allows you to write C and Fortran programs that interact
with MATLAB. It includes facilities for calling routines from MATLAB
(dynamic linking), calling MATLAB as a computational engine, and for
reading and writing MAT-files.

Starting MATLAB
On Windows platforms, start MATLAB by double-clicking the MATLAB
shortcut icon on your Windows desktop. On UNIX platforms, start MATLAB by typing matlab at the operating system prompt.
You can customize MATLAB startup. For example, you can change the
directory in which MATLAB starts or automatically execute MATLAB
statements in a script file named startup.m.

MATLAB Desktop
When you start MATLAB, the MATLAB desktop appears, containing tools
(graphical user interfaces) for managing files, variables, and applications
associated with MATLAB.
The following illustration shows the default desktop. You can customize the
arrangement of tools and documents to suit your needs. For more information about the desktop tools, see Chapter 6, Desktop Tools and Development Environment.

Matrices and Magic Squares
In MATLAB, a matrix is a rectangular array of numbers. Special meaning
is sometimes attached to 1-by-1 matrices, which are scalars, and to matrices
with only one row or column, which are vectors. MATLAB has other ways of storing both numeric and nonnumeric data, but in the beginning, it is usually best to think of everything as a matrix. The operations in MATLAB are designed to be as natural as possible. Where other programming languages work with numbers one at a time, MATLAB allows you to work with entire matrices quickly and easily. A good example matrix, used throughout this book, appears in the Renaissance engraving Melencolia I by the German artist and amateur mathematician Albrecht Dürer.

This image is filled with mathematical symbolism, and if you look carefully,
you will see a matrix in the upper right corner. This matrix is known as a
magic square and was believed by many in Dürer™s time to have genuinely
magical properties. It does turn out to have some fascinating characteristics
worth exploring.

Entering Matrices
The best way for you to get started with MATLAB is to learn how to handle
matrices. Start MATLAB and follow along with each example.
You can enter matrices into MATLAB in several different ways:
¢ Enter an explicit list of elements.
¢ Load matrices from external data files.
¢ Generate matrices using built-in functions.
¢ Create matrices with your own functions in M-files.
Start by entering Dürer™s matrix as a list of its elements. You only have to
follow a few basic conventions:
¢ Separate the elements of a row with blanks or commas.
¢ Use a semicolon, ; , to indicate the end of each row.
¢ Surround the entire list of elements with square brackets, [ ].

To enter Dürer™s matrix, simply type in the Command Window
A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

MATLAB displays the matrix you just entered:
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

This matrix matches the numbers in the engraving. Once you have entered
the matrix, it is automatically remembered in the MATLAB workspace. You
can refer to it simply as A. Now that you have A in the workspace, take a look at what makes it so interesting. Why is it magic

sum, transpose, and diag
You are probably already aware that the special properties of a magic square
have to do with the various ways of summing its elements. If you take the
sum along any row or column, or along either of the two main diagonals,
you will always get the same number. Let us verify that using MATLAB.
The first statement to try is
sum(A)
MATLAB replies with
ans =
34 34 34 34
When you do not specify an output variable, MATLAB uses the variable ans,
short for answer, to store the results of a calculation. You have computed a
row vector containing the sums of the columns of A. Sure enough, each of the columns has the same sum, the magic sum, 34.
How about the row sums MATLAB has a preference for working with the
columns of a matrix, so one way to get the row sums is to transpose the
matrix, compute the column sums of the transpose, and then transpose the
result. For an additional way that avoids the double transpose use the
dimension argument for the sum function.

MATLAB has two transpose operators. The apostrophe operator (e.g., A')
performs a complex conjugate transposition. It flips a matrix about its main
diagonal, and also changes the sign of the imaginary component of any
complex elements of the matrix. The apostrophe-dot operator (e.g., A'.),
transposes without affecting the sign of complex elements. For matrices
containing all real elements, the two operators return the same result.

How to quit Matlab
The answer to the most popular question concerning any program is this: leave a Matlab session by typing
quit
or by typing
exit
to the Matlab prompt.
Matlab has many types of matrices which are built into the system. A 7 by 7 matrix with random entries is produced by typing
rand(7)
You can generate random matrices of other sizes and get help on the rand command within matlab:
rand(2,5)

help rand
A 5 by 5 magic square is given by the next command:
magic(5)
help magic
A magic square is a square matrix which has equal sums along all its rows and columns. We'll use matrix multiplication to check this property a bit later.
Some of the standard matrices from linear algebra are easily produced:
eye(6)
zeros(4,7)
ones(5)
You can also build matrices of your own with any entries that you may want.
[1 2 3 5 7 9]
[1, 2, 3; 4, 5, 6; 7, 8, 9]
[eye(2);zeros(2)]
[eye(2);zeros(3)]
[eye(2),ones(2,3)]
Did any of the last three examples produce error messages What is the problem
Variables:
Matlab has built-in variables like pi, eps, and ans. You can learn their values from the Matlab interpreter.
pi
At any time you want to know the active variables you can use who:
who
help who
The variable ans will keep track of the last output which was not assigned to another variable.
magic(6)
ans
x = ans
x = [x, eye(6)]
x
Since you have created a new variable, x, it should appear as an active variable.
who
To remove a variable, try this:
clear x
x
who
Functions:
a = magic(4)
Take the transpose of a:
a'
Note that if the matrix A has complex numbers as entries then the Matlab function taking A to A' will compute the transpose of the conjugate of A rather than the transpose of A.
Other arithmetic operations are easy to perform.
3*a
-a
a+(-a)
b = max(a)
max(b)
Some Matlab functions can return more than one value. In the case of max the interpreter returns the maximum value and also the column index where the maximum value occurs.
[m, i] = max(b)
min(a)
b = 2*ones(a)
a*b
a
We can use matrix multiplication to check the "magic" property of magic squares.
A = magic(5)
b = ones(5,1)
A*b
v = ones(1,5)
v*A
Matlab has a convention in which a dot in front of an operation usually changes the operation. In the case of multiplication, a.*b will perform entry-by-entry multiplication instead of the usual matrix multiplication.
a.*b (there is a dot there!)
x = 5
x^2
a*a
a^2
a.^2 (another dot)
diag(a)
diag(diag(a))
c=rand(4,5)
size©
[m,n] = size©
m
d=.5-c
There are many functions which we apply to scalars which Matlab can apply to both scalars and matrices.
sin(d)
exp(d)
log(d)
abs(d)
Matlab has functions to round floating point numbers to integers. These are round, fix, ceil, and floor. The next few examples work through this set of commands and a couple more arithmetic operations.
f=[-.5 .1 .5]
round(f)
fix(f)
ceil(f)
floor(f)
sum(f)
prod(f)
Relations and Logical Operations
In this section you should think of 1 as "true" and 0 as "false." The notations &, |, ~ stand for "and,""or," and "not," respectively. The notation == is a check for equality.
a=[1 0 1 0]
b=[1 1 0 0]
a==b
a<=b
~a
a&b
a & ~a
a | b
a | ~a
There is a function to determine if a matrix has at least one nonzero entry, any, as well as a function to determine if all the entries are nonzero, all.
a
any(a)
c=zeros(1,4)
d=ones(1,4)
any©
all(a)
all(d)
e=[a',b',c',d']
any(e)
all(e)
any(all(e))
Colon Notation:
Matlab offers some powerful methods for creating arrays and for taking them apart.
x=-2:1
length(x)
-2:.5:1
-2:.2:1
a=magic(5)
a(2,3)
Now we will use the colon notation to select a column of a.
a(2,Smile
a(:,3)
a
a(2:4,Smile
a(:,3:5)
a(2:4,3:5)
a(1:2:5,Smile
You can put a vector into a row or column position within a.
a(:,[1 2 5])
a([2 5],[2 4 5])
You can also make assignment statements using a vector or a matrix.
b=rand(5)
b([1 2],Smile=a([1 2],Smile
a(:,[1 2])=b(:,[3 5])
a(:,[1 5])=a(:,[5 1])
a=a(:,5:-1:1)
When you a insert a 0-1 vector into the column position then the columns which correspond to 1's are displayed.
v=[0 1 0 1 1]
a(:,v)
a(v,Smile
This has been a sample of the basic MATLAB functions and the matrix manipulation techniques. At the end of the tutorial there is a listing of functions. The functions that you have available will vary slightly from version to version of MATLAB. By typing
help
you will get access to descriptions of all the Matlab functions.

Elementary matrices and matrix manipulation.
Elementary matrices.
zeros - Zeros matrix.
ones - Ones matrix.
eye - Identity matrix.
rand - Uniformly distributed random numbers.
randn - Normally distributed random numbers.
linspace - Linearly spaced vector.
Trigonometric.
sin - Sine.
sinh - Hyperbolic sine.
asin - Inverse sine.
asinh - Inverse hyperbolic sine.
cos - Cosine.
cosh - Hyperbolic cosine.
acos - Inverse cosine.
acosh - Inverse hyperbolic cosine.
tan - Tangent.
tanh - Hyperbolic tangent.
atan - Inverse tangent.
atan2 - Four quadrant inverse tangent.
atanh - Inverse hyperbolic tangent.
sec - Secant.
sech - Hyperbolic secant.
asec - Inverse secant.
asech - Inverse hyperbolic secant.
csc - Cosecant.
csch - Hyperbolic cosecant.
acsc - Inverse cosecant.
acsch - Inverse hyperbolic cosecant.
cot - Cotangent.
coth - Hyperbolic cotangent.
acot - Inverse cotangent.
acoth - Inverse hyperbolic cotangent.

Exponential.
exp - Exponential.
log - Natural logarithm.
log10 - Common logarithm.
sqrt - Square root.

Complex.
abs - Absolute value.
angle - Phase angle.
conj - Complex conjugate.
imag - Complex imaginary part.
real - Complex real part.



Managing commands and functions.
help - On-line documentation.
lookfor - Keyword search through the HELP entries.
demo - Run demos.

Managing variables and the workspace.
who - List current variables.
whos - List current variables, long form.
load - Retrieve variables from disk.


Polynomial and interpolation functions.

Polynomials.
roots - Find polynomial roots.
poly - Construct polynomial with specified roots.
polyval - Evaluate polynomial.
polyvalm - Evaluate polynomial with matrix argument.
residue - Partial-fraction expansion (residues).
polyfit - Fit polynomial to data.
polyder - Differentiate polynomial.
conv - Multiply polynomials.
deconv - Divide polynomials.

Operators and special characters.

Char Name HELP topic

+ Plus arith
- Minus arith
* Matrix multiplication arith
.* Array multiplication arith
^ Matrix power arith
.^ Array power arith
\ Backslash or left division slash
/ Slash or right division slash
./ Array division slash
: Colon colon
( ) Parentheses paren
[ ] Brackets paren
. Decimal point punct
, Comma punct
; Semicolon punct
% Comment punct
' Transpose and quote punct
= Assignment punct
== Equality relop
<,> Relational operators relop
& Logical AND relop
| Logical OR relop
~ Logical NOT relop
xor Logical EXCLUSIVE OR xor


Elementary X-Y graphs.
plot - Linear plot.
loglog - Log-log scale plot.
semilogx - Semi-log scale plot.
semilogy - Semi-log scale plot.
fill - Draw filled 2-D polygons.

Graph annotation.
title - Graph title.
xlabel - X-axis label.
ylabel - Y-axis label.
zlabel - Z-axis label for 3-D plots.
grid - Grid lines.
axis - Axis scaling and appearance.

Systems of equations :
Now consider a linear equation
ax + by = p
cx + dy = q

We can write this more compactly as
AX = B

where the coefficient matrix A is
a b
c d

the vector of unknowns is
x
y

and the vector on the right-hand side is
p
q
If A is invertible, X = (1/A)B, or, using Matlab notation, X = A\B. Lets try this out by solving ax = b with a as before and b = [ 1; 0 ]. Note that b is a column vector.
>> b = [ 1; 0 ]
>> a\b

Loops
Finally, we will do a little piece of programming. Let a be the matrix
0.8 0.1
0.2 0.9
and let x be the column vector
1
0
We regard x as representing (for example) the population state of an island. The first entry (1) gives the fraction of the population in the west half of the island, the second entry (0) give the fraction in the east half. The state of the population T units of time later is given by the rule y = ax. This expresses the fact that an individual in the west half stays put with probability 0.8 and moves east with probability 0.2 (note 0.8 + 0.2 = 1), and the fact that in individual in the east stays put with probability 0.9 and moves west with probability 0.1. Thus, successive population states can be predicted/computed by repeated matrix multiplication. This can be done by the following Matlab program:
>> a = [ 0.8 0.1; 0.2 0.9 ]
>> x = [ 1; 0 ]
>> for i = 1:20, x = a*x, end

About NI

National Instruments transforms the way engineers and scientists around the world design, prototype, and deploy systems for test, control, and embedded design applications. Using NI open graphical programming software and modular hardware, customers at more than 25,000 companies annually simplify development, increase productivity, and dramatically reduce time to market. From testing next-generation gaming systems to creating breakthrough medical devices, NI customers continuously develop innovative technologies that impact millions of people.
Application Areas
Measurements and Instrumentation
See how, from temperature to dynamic signal measurements, NI offers a complete family of data acquisition devices for desktop, portable, and networked teaching and research applications.
Circuit Design
Experience seamless integration among NI Multisim, NI LabVIEW, and NI ELVIS to design, simulate, prototype, and test circuits.
Control Design and Simulation
Research and teach control design concepts including controller design, dynamic system simulation, system identification, and real-time implementation with NI control products.
Signal and Image Processing
Explore signal processing concepts from interactive digital filter design to hands-on prototyping of DSPs with a complete platform from NI.
RF and Communications
Combine graphical and intuitive software with the latest precision measurement hardware to deliver a high-performance platform for hands-on learning and pioneering research in wireless communications.
Embedded Systems
Use a comprehensive collection of NI add-on tools to make embedded systems with FPGAs, DSPs, MPUs, or any 32-bit microprocessors easy and affordable.

With the National Instruments LabVIEW graphical development environment, you have several options for working with The MathWorks, Inc. MATLAB software and ...

MATLAB

It stands for MATrix LABoratory
It is developed by The Mathworks, Inc. (http://www.mathworks.com)
It is an interactive, integrated, environment
o for numerical computations
o for symbolic computations (via Maple)
o for scientific visualizations
It is a high-level programming language
Program runs in interpreted, as opposed to compiled, mode
Characteristics of MATLAB
Programming language based (principally) on matrices.
o Slow (compared with fortran or C) because it is an interpreted language, i.e. not pre-compiled. Avoid for loops; instead use vector form (see section on vector technique below) whenever possible.
o Automatic memory management, i.e., you don't have to declare arrays in advance.
o Intuitive, easy to use.
o Compact (array handling is fortran90-like).
o Shorter program development time than traditional programming languages such as Fortran and C.
o Can be converted into C code via MATLAB compiler for better efficiency.
Many application-specific toolboxes available.
Coupled with Maple for symbolic computations.
On shared-memory parallel computers such as the SGI Origin2000, certain operations processed in parallel autonomously -- when computation load warrants.
Rules on Variable and Function Names
Variable/Function name
o begins with a LETTER, e.g., A2z.
o can be a mix of letters, digits, and underscores (e.g., vector_A, but not vector-A (since "-" is a reserved char).
o is case sensitive, e.g., NAME, Name, name are 3 distinct variables.
o must not be longer than 31 characters.

File name
Files that contain MATLAB commands should be named with a suffix of ".m", e.g., something.m. These include, but not restricted to, script m-files and function m-files. (See "Files Types" for details)
CODING
[code]clear all;
clc;
clf;
close all;
%**************************************************************************
% Initialize all the values for the block implementation
N = 64;
L = 16;
P = L;
M = 32;
R = 10;
B = N+M-L;
%**************************************************************************
% Find the FFT and IFFT matrices
F = fft(eye(M)); % MxM matrix
Finv = ifft(eye(M)); % MxM matrix
G1 = [zeros(M-L,M-L) zeros(M-L,L)
zeros(L,M-L) eye(L,L)];
%**************************************************************************
% Intialize the constarined or unconstarined condition
G2 = F*[eye(P) zeros(P,M-P)
zeros(M-P,P) zeros(M-P,M-P)]*Finv; % size = MxM , constrained
%**************************************************************************
% Intialize the coefficients vector
K = 0; % Gain factor
w(1:N,1) = K*[ones(N,1)]; % Nx1 vector , intialize the coefficients vector
for p = 0Sad(N/P)-1)
W_p(1:M,p+1) = F*[w((p*P)+1 : (p+1)*(P),1) % Mx1 vector , find the frequency domain equivalent
zeros(M-P,1)]; % Split into N/P parts , length is Px1 and zero pad with (M-P)x1 zeros
end % Size of W_p = Mx1
%**************************************************************************
% Time sampling for collecting data
% %noise signal
% noise = .2*randn(1,length(t));
% x1 = randn(1,length(t));
% b = fir1(63,[.35 .65]);
% %sample original signal x
% f1 = filter(b,1,x1);
[x1] = wavread('C:\Documents and Settings\deccanespl\My Documents\MATLAB\AEC\alokwave.wav',64);
[s] = wavread('C:\Documents and Settings\deccanespl\My Documents\MATLAB\AEC\mewave.wav',64);
t = 0:length(x1);
%assume additive white gaussian noise and add to s
xw = x1;
k = 0;
%here s = sin(3*t)
%s = k*(10*sin(.5*t) + 20*cos(5*t));
% d = xw + s
d = xw + s ;
%**************************************************************************
% Taking data , size = the lowest power of 2 available data
TB = floor(log2(length(t)));
TBL = 2^TB;
%**************************************************************************
%plot x d and s to be able to see them together
figure(1);
plot(t(1:TBL),x1(1:TBL));
hold on;
plot(t(1:TBL),d(1:TBL),'r-');
xlabel ('NUMBER OF SAMPLES');
ylabel('AMPLITUDE');
axis tight;
plot(t(1:TBL),s(1:TBL),'g+');
legend('ORIGINAL SIGNAL, x','d = s + (w*x)','NEW SIGNAL, s');
%close ;
%plot noise
figure(2);
plot(xw(1:TBL));
axis tight;
title('SIGNALS FROM LOUDSPEAKER');
xlabel ('NUMBER OF SAMPLES');
ylabel('AMPLITUDE');
%close ;
%**************************************************************************
x = [zeros(1,(N + M - 2*L))' x1]; % Zero pad with N + M - 2*L zeros
%**************************************************************************
for a = 1:TBL/L
dd(1:L,1) = d(((a-1)*L + 1) Sada*L))'; % L samples of desired element
d_l(1:M,1) = [zeros(M-L,1)
dd ];
% Desired data matric Mx1 matrix , fixed for the
xhold(1:B,1) = [x(((a-1)*L +1) : ((a-1)*L + B))]' ; % every L sample (N+M-L)x1
for p = 0:1SadN/P)-1
x_p(1:M,p+1) = xhold((B - p*P - M +1)SadB - p*P),1); % take the first L samples and the previous N samples
X_p(1:M,p+1) = F*x_p(1:M,p+1); % create blocks of length M starting from the latest sample
% and going backwards.
end
%Del = calculate_step_size(X_p,M,N/P,type);
Del = size(X_p,M);
for r = 1:R % Start the recursion
if r == 1
W_p_r(1:M,1SadN/P),r) = W_p(1:M,1SadN/P)); % store the filter weights in a new array indexed
end % for including the R iterations
temp = 0; % Initialize for summation
for p = 0:1SadN/P)-1
temp = temp + [((diag(X_p(1:M,p+1)))*W_p_r(1:M,p+1,r))]; % Find the summation of X_p*w_p
end
y(1:M,r) = real(G1*Finv*temp)./P; % estimate of


Attached File(s)
.doc  echo cancellation.doc (Size: 133 KB / Downloads: 364)

Please Use Search http://seminarprojects.com/search.php wisely To Get More Information About A Seminar Or Project Topic
07-02-2011, 08:02 PM
Post: #2
RE: echo cancellation using matlab
plz send me the simulink diagram with explination ...... i will be very thankfull to u ....
09-03-2012, 10:59 AM
Post: #3
RE: echo cancellation using matlab
to get information about the topic echo cancellation full report ppt and related topic refer the link bellow

http://seminarprojects.com/Thread-echo-c...ull-report

http://seminarprojects.com/Thread-echo-c...ing-matlab

http://seminarprojects.com/Thread-echo-c...r-software

http://seminarprojects.com/Thread-echo-c...municetion
27-09-2012, 08:50 AM
Post: #4
RE: echo cancellation using matlab
hi while running this program it shows error in this lines
[x1] = wavread('C:\Documents and Settings\deccanespl\My Documents\MATLAB\AEC\alokwave.wav',64);
[s] = wavread('C:\Documents and Settings\deccanespl\My Documents\MATLAB\AEC\mewave.wav',64);
t = 0:length(x1);
please send those two wav so that i can run this program
my mail id is nethaj01[at]gmail.com
please send me
18-10-2012, 04:59 PM
Post: #5
RE: echo cancellation using matlab
hi
u will store the wav file on ur matlab document and command directory u will select that file and execute
Rating echo cancellation using matlab Options
Share echo cancellation using matlab To Your Friends :- Seminar Topics Bookmark
Post Reply 

Marked Categories : amr wb, matlab code for feedback cancellation in digital hearing aids, matlab calculate echo delay, echo removal with matlab, script matlab noise and silence suppressor, acoustic echo cancellation matlab code, matlab tutorial for echo cancellation, echo cancellation project report, suppression echo matlab, matlab supprimer echo, echo cancellation using matlab, matlab program for echo cancellation, echo cancellation matlab source code, echo cancellation code matlab, simulink demos echo, echo cancelling matlab, echo cancellation system using matlab codes, echo cancellation matlab code, m file matlab project of electrical, echo cancellation matlab code project,

[-]
Quick Reply
Message
Type your reply to this message here.


Image Verification
Image Verification
(case insensitive)
Please enter the text within the image on the left in to the text box below. This process is used to prevent automated posts.

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  Modelling, analysis & speed control of DC machine with the help of MATLAB simulation: seminar code 0 21 Yesterday 02:28 PM
Last Post: seminar code
  modeling of dry type transfomer using MATLAB seminar code 0 24 Yesterday 09:47 AM
Last Post: seminar code
  Heart beat monitor using gsm , zigbee and matlab seminar code 0 15 30-10-2014 02:28 PM
Last Post: seminar code
  Image Processing for face recognition using MATLAB seminar code 0 16 29-10-2014 02:30 PM
Last Post: seminar code
  MATLAB based karaoke sound system seminar code 0 20 29-10-2014 01:54 PM
Last Post: seminar code
  matlab based controlling seminar code 0 18 29-10-2014 01:53 PM
Last Post: seminar code
  Active Noise Cancellation System seminar code 0 13 29-10-2014 12:27 PM
Last Post: seminar code
  vehicle license plate recognition using matlab seminar code 0 29 28-10-2014 02:46 PM
Last Post: seminar code
  Mathematical Analysis of antenna using MATLAB seminar code 0 11 27-10-2014 12:51 PM
Last Post: seminar code
  Ball Follower Robot Using Matlab project maker 0 19 24-10-2014 02:28 PM
Last Post: project maker
This Page May Contain What is echo cancellation using matlab And Latest Information/News About echo cancellation using matlab,If Not ...Use Search to get more info about echo cancellation using matlab Or Ask Here

Options: