Minimum mean-squared error (MMSE) filtering is a powerful and widely used technique that uses the available data to design an optimum set of filter weights. Choosing weights based on the data allows the weights to be adjusted or adapted to maintain an optimal solution in the presence of time-varying characteristics in the input data. You Read More

## Solving for the Minimum Mean-Squared Error Weights

The minimum mean-squared error (MMSE) criterion optimizes the filter weights based on the input signals. Here you will learn how to find the optimum weights. You will use the method of completing the square to write the mean-squared error as a perfect square in the weights, which allows you to identify the optimum weights by Read More

## Solving Least-Squares Problems with Gradient Descent: the Least Mean-Square Algorithm

The least mean-square (LMS) algorithm solves the MMSE filter or least squares problem using a very simple iterative scheme. The current solution is updated by taking a step in the direction of the negative gradient of the instantaneous squared error. You will find this very simple algorithm to be a powerful tool for MMSE filtering and Read More

## Convergence, Tracking, and the LMS Algorithm Step Size

There is only one parameter in the LMS algorithm that is chosen by you: the step size. You need to understand how the step-size parameter impacts the performance characteristics of the LMS algorithm in order to use it effectively. The step-size parameter determines whether the algorithm converges or diverges and how fast. It also determines Read More

## Problems for Foundations

The benefit you derive from these exercises is proportional to the effort you put into them. Here are my suggestions: Try to work the problems without looking at the solution. Don't give up easily. Feel free to refer back to the lessons covering this material. If/when you become stuck, then look at the solution, but Read More

## Impulse Response and LTI Systems - Part II

Linear time-invariant (LTI) systems are the most widely used systems in signal processing. In this lesson you will develop a deeper understanding for the role of the impulse response of LTI systems. You will learn how linearity and time invariance result in the convolution sum for expressing the output of an LTI system in terms Read More

## Impulse Response Properties and Convolution

The benefit you derive from these exercises is proportional to the effort you put into them. Here are my suggestions: Try to work the problems without looking at the solution. Don't give up easily. Feel free to refer back to the lessons covering this material. If/when you become stuck, then look at the solution, but Read More

## Graphical Evaluation of Discrete-Time Convolution

Blog post: Convolution of Signals: Why? Convolution expresses the output of a linear time-invariant system in terms of the system's impulse response and the input. In this lesson you will learn a graphical approach to evaluating convolution. Learning how to interpret convolution graphically will develop your intuition for understanding how the impulse response characteristics impact Read More

## Graphical Evaluation of Continuous-Time Convolution

Convolution expresses the output of a linear time-invariant system in terms of the system's impulse response and the input. In this lesson you will learn a graphical approach to evaluating convolution for continuous-time systems. Learning how to interpret convolution graphically will develop your intuition for understanding how the impulse response characteristics impact the system output. Read More

## Difference Equations: Solving System Responses with Stored Energy

Difference equations are one of the few descriptions for linear time-invariant (LTI) systems that can incorporate the effects of stored energy - that is, describe systems which are not at rest when the input is applied. In this lesson you will learn how the output of a LTI system described by a difference equation can be expressed as Read More

## Characteristics of Systems Described by Difference Equations

Difference equations are often used to compute the output of a system from knowledge of the input. They are an important and widely used tool for representing the input-output relationship of linear time-invariant systems. In this lesson you will learn how the characteristics of the system are related to the coefficients in the difference equation. You will Read More

## Difference- and Differential-Equation Descriptions for Systems

The benefit you derive from these exercises is proportional to the effort you put into them. Here are my suggestions: Try to work the problems without looking at the solution. Don't give up easily. Feel free to refer back to the lessons covering this material. If/when you become stuck, then look at the solution, but Read More

## Differential Equations: Solving System Responses with Stored Energy

Differential equation descriptions for continuous-time linear time-invariant systems are unique in that they allow analysis of the effect of stored energy on the system output. You will learn how to represent the output of such a system as a sum of a steady-state and a transient component. The steady-state component is of the same form as Read More

## Review of Time-Domain Descriptions for Systems

This set of problems is drawn from a subset of topics related to time-domain descriptions for systems. It serves a summative purpose - if you've mastered the prerequisite material, you should be able to work through these problems. The benefit you derive from these exercises is proportional to the effort you put into them. Here are Read More

## Signals Everywhere

Signals and signal processing are a constant part of your everyday experience. This lesson introduces you to the incredible breadth of signal-processing applications. An overview of some of the key historical factors that have led to the proliferation of signal processing is also given. This lesson will prepare and motivate you for continued study of this exciting field.