Initially known for its successes in telecommunications, signal processing is now part of all domains of data processing that require to analyse, extract and transform numerical information. This course is an introduction to the field of signal processing and as such requires basic knowledge of analysis (Fourier Transform), probabilities (random variables, random process) and linear algebra.

The course begins with a presentation of Fourier analysis and analog filtering with some applicative examples such as modulation and Fourier optics in astronomy. Next we will introduce signal sampling and digital signal filtering that has
become the de-facto standard in practical applications. We will study the very important Fast Fourier Transform (FFT) algorithm and discuss some examples of filtering in image processing. Next we will study the random/stochastic aspects of signals and the optimal linear filtering of signal and noise when modeled as as stochastic processes. The modeling of speech with will also be taken as an example for the study of auto-regressive models. Finally the last part of the course will briefly introduce several signal representations commonly used such as the Discrete Cosine Transform (DCT), and wavelet transforms used in JPEG encoding and image reconstruction. The short time Fourier transform will also be introduced to model non-stationary signals. Finally some recent approaches based on machine learning such as dictionary learning and deep learning signal reconstruction will be presented.

The course will be completed by practical sessions in Python/Numpy that will allow the students to implement the methods seen in the course on practical problems such as audio signal generation and filtering.

Course overview:

* Fourier analysis and analog filtering
      * Fourier Transform
      * Convolution and filtering
      * Applications of analog signal processing
* Digital signal processing
      * Sampling and properties of discrete signals
      * z Transform and transfer function
      * Fast Fourier Transform
      * Applications to signal and image processing
* Random signals
      * Correlation and spectral representation of random signals
      * Filtering and prediction of stationary random signals
      * Autoregressive model and Wiener filtering
* Signal representation and dictionary learning
       * Non stationary signals and short time FT
       * Common signal representations (Fourier, wavelets)
       * Source separation and dictionary learning
       * Machine learning for signal processing

This course will be given in french or english depending on the public with lecture material in english. A working knowledge of Python/Numpy is strongly recommended for the practical sessions.

**Evaluation** : practical session reports and final theoretical+practical exam.