# Optimization Lab for Communication and Signal Processing Using MATLAB (OptiLab)

This Lab is about learning how to recognize, model and solve optimization problems. Covered topics include but are not limited to:
• Linear Programming
• Quadratic Programming and Least-Squares Problems
• Regularized Approximation and Estimation
• Second-order Cone Programming
• Semidefinite Programming

## Requirements

Students are expected to have basic Matlab knowledge to take this lab. If you have never used Matlab before, the pace of the lab will almost certainly be too fast for you. In order to ensure that each participant has the required Matlab level, there will be a multiple choice test about the basics of Matlab at the beginning of the first session (10.04.2014) of the lab.

The following basic knowledge is expected:

I) General Matlab knowledge
• a) Basic variables: scalars, vectors, matrices
• b) Basic syntax: for, while, if then else
• c) Basic operations: addition, multiplication, logical operators
• d) Basic functions: sqrt, log, min, max, round, sum, rand, randn
• e) Graphical representation: plot, surf
II) Linear Algebra with Matlab
• a) Vector/matrix multiplication
• b) Built-in functions: inverse, eigenvalues, diag
• c) Special matrices: identity matrix, zeros matrix, ones matrix

In each session, you will receive a reading assignment (from 5 to 20 pages) for the subsequent session. At the beginning of each session, there will be a multiple choice test to check if you read and understood the material covered in the reading assignment.

## Material

1 | Preliminaries I: Linear algebra and vector analysis
You will need the following three .mat files: [channel_imp_response.mat], [single_sensor_failure.mat] and [double_sensor_failure.mat].

2 | Preliminaries II: Convex optimization
You will need the Matlab function combn, which you can find at the Mathworks website: [combn].
To initialize CVX you should put the following line at the beginning of each MATLAB script in which you want to use it.
`run ~/matlab/startup.m`