Skip to main content

Orthogonal Matching Pursuit (OMP) in Compressive Sensing


Orthogonal Matching Pursuit (OMP) in Compressive Sensing

1. Introduction

Compressive Sensing (CS) aims to recover a sparse signal from a small number of measurements. In many systems, the measurement process can be expressed as:

y = Q hb + n

where:

  • y: Measurement vector (observed data)
  • Q: Known sensing matrix or dictionary
  • hb: Sparse vector (unknown signal to estimate)
  • n: Noise

Orthogonal Matching Pursuit (OMP) is a greedy algorithm that reconstructs hb by iteratively selecting the columns of Q that best match the measurements y.



2. OMP Algorithm Overview

The OMP process proceeds as follows:

  1. Initialization: Set residual r(0) = y and selected index set S = ∅.
  2. Correlation: Compute correlations of all columns with the current residual:
    ci = qiT r(k)
  3. Select: Choose the column with the maximum absolute correlation:
    i(k+1) = argmax |ci|
  4. Update Support: Add the selected index to the set S.
  5. Least Squares Estimate: Solve for the coefficients of the selected columns:
    hb(k+1) = (Q(S)T Q(S))-1 Q(S)T y
  6. Residual Update:
    r(k+1) = y - Q(S) hb(k+1)
  7. Stopping Criterion: Stop when the residual norm is small or when the desired sparsity level is reached.


3. Example from Slides

Consider the example matrix:

Q = ⎡1 0 1 0 0 1⎤
⎡0 1 1 1 0 0⎤
⎡1 0 1 0 1 0⎤
⎡0 1 0 1 1 1⎤

and measurement vector:

y = [0 2 3 5]T

Iteration 1

  • Compute correlations c = QTy.
  • The column with the largest correlation is q5, so i(1) = 5.
  • Estimate coefficient using least squares with Q(1) = [q5].

Iteration 2

  • Compute new residual r(1) and new correlations.
  • Next selected column: i(2) = 2.
  • Submatrix:
    Q(2) = [q5 q2] = ⎡0 0⎤
    ⎡0 1⎤
    ⎡1 0⎤
    ⎡1 1⎤
  • Compute new coefficients:
    hb(2) = (Q(2)T Q(2))-1 Q(2)T y = [3 2]T

Final Sparse Vector

Ä¥b = [0 2 0 0 3 0]T

The reconstructed signal has only two nonzero elements → the signal is sparse.



4. Interpretation of Q

In this example, the matrix Q is not the actual channel matrix. Rather, it represents how the sparse channel vector is mapped to the received signal. In mmWave MIMO systems:

y = (XT ⊗ WH) (At* ⊗ Ar) hb + n

Here:

  • At – Transmit array response (dictionary of transmit directions)
  • Ar – Receive array response
  • X – Transmit pilot matrix
  • W – Receive combiner matrix

Thus, we define:

Q = (XT ⊗ WH) (At* ⊗ Ar)

Therefore, Q depends on the beamforming and pilot structure, not on the channel itself. The channel is represented by hb, which is sparse in the beamspace domain.



5. Summary

QuantityMeaning
HPhysical MIMO channel matrix
hbSparse beamspace channel vector
QSensing (measurement) matrix derived from array and pilot structure
y = QhbMeasurement equation used in OMP
OMPGreedy algorithm selecting the most correlated columns of Q iteratively

In summary, OMP reconstructs the sparse vector hb from the measurements y by selecting the most relevant columns of Q in each iteration. In mmWave systems, this allows efficient estimation of the sparse channel using a small number of pilots.


Further Reading


Contact Us

Name

Email *

Message *

Popular Posts

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...(MATLAB Code + Simulator)

Bit Error Rate (BER) & SNR Guide Analyze communication system performance with our interactive simulators and MATLAB tools. 📘 Theory 🧮 Simulators 💻 MATLAB Code 📚 Resources BER Definition SNR Formula BER Calculator MATLAB Comparison 📂 Explore M-ary QAM, PSK, and QPSK Topics ▼ 🧮 Constellation Simulator: M-ary QAM 🧮 Constellation Simulator: M-ary PSK 🧮 BER calculation for ASK, FSK, and PSK 🧮 Approaches to BER vs SNR What is Bit Error Rate (BER)? The BER indicates how many corrupted bits are received compared to the total number of bits sent. It is the primary figure of merit f...

UGC NET Electronic Science Previous Year Question Papers with Solutions

Home / Engineering & Other Exams / UGC NET 2022 PYQ ⬇️ Download Papers and Solutions 📋 Exam Pattern 💡 Preparation Tips ❓ FAQs 📥 Download UGC NET Electronics PDFs Complete collection of previous year question papers, answer keys and explanations for Subject Code 88. Start Downloading UGC-NET (Electronics Science, Subject code: 88) Subject_Code : 88; Department : Electronic Science; 📂 View All Question Papers Q. UGC Net Electronic Science Question Paper [June 2025] A. UGC Net Electronic Science Question Paper With Answer Key Download Pdf [June 2025] with full explanation Q. UGC Net Electronic Science Question Paper [December 2024] A. UGC Net Electronic Science Question Paper With Answer Key Download Pdf [December 2024] ...

Constellation Diagrams of ASK, PSK, and FSK (with MATLAB Code + Simulator)

Constellation Diagrams: ASK, FSK, and PSK Comprehensive guide to signal space representation, including interactive simulators and MATLAB implementations. 📘 Overview 🧮 Simulator ⚖️ Theory Q-function 📚 Resources 📂 Other Topics: M-ary PSK & QAM Diagrams ▼ 🧮 Simulator for M-ary PSK Constellation 🧮 Simulator for M-ary QAM Constellation BASK (Binary ASK) Modulation Transmits one of two signals: 0 or -√Eb, where Eb​ is the energy per bit. These signals represent binary 0 and 1. BFSK (Binary FSK) Modulation Transmits one of two signals: +√Eb​ (On the y-axis, the phas...

MATLAB Code for ASK, FSK, and PSK (with Online Simulator)

MATLAB Code for ASK, FSK, and PSK Comprehensive implementation of digital modulation and demodulation techniques with simulation results. 📘 Theory 📡 ASK Code 📶 FSK Code 🎚️ PSK Code 🕹️ Simulator 📚 Further Reading Amplitude Shift Frequency Shift Phase Shift Live Simulator ASK, FSK & PSK HomePage MATLAB Code MATLAB Code for ASK Modulation and Demodulation COPY % The code is written by SalimWireless.Com clc; clear all; close all; % Parameters Tb = 1; fc = 10; N_bits = 10; Fs = 100 * fc; Ts = 1/Fs; samples_per_bit = Fs * Tb; rng(10); binar...

Online Simulator for ASK, FSK, and PSK

Interactive Digital Signal Processing (DSP) Tutorial and Simulator for ASK, FSK, and BPSK modulation techniques. Try our new Digital Signal Processing Simulator!   •   Interactive ASK, FSK, and BPSK tools updated for 2025. Start Now Digital Modulation Visualizer: ASK, FSK, & BPSK Simulator Learn and visualize binary modulation techniques (ASK, FSK, BPSK) in real-time with adjustable carrier and sampling parameters. Perfect for DSP students and engineers. 📡 ASK Simulator 📶 FSK Simulator 🎚️ BPSK Simulator 📚 More Topics ASK Modulator FSK Modulator BPSK Modulator More Topics 1. ASK (Amplitude Shift Keying) Simulat...

MATLAB code for BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ...(with Online Simulator)

🧮 MATLAB Code for BPSK, M-ary PSK, and M-ary QAM Together 🧮 MATLAB Code for M-ary QAM 🧮 MATLAB Code for M-ary PSK 📚 Further Reading MATLAB Script for BER vs. SNR for M-QAM, M-PSK, QPSK, BPSK % Written by Salim Wireless clc; clear; close all; snr_db = -5:2:25; psk_orders = [2, 4, 8, 16, 32]; qam_orders = [4, 16, 64, 256]; ber_psk_results = zeros(length(psk_orders), length(snr_db)); ber_qam_results = zeros(length(qam_orders), length(snr_db)); for i = 1:length(psk_orders) ber_psk_results(i, :) = berawgn(snr_db, 'psk', psk_orders(i), 'nondiff'); end for i = 1:length(qam_orders) ber_qam_results(i, :) = berawgn(snr_db, 'qam', qam_orders(i)); end figure; semilogy(snr_db, ber_psk_results(1, :), 'o-', 'LineWidth', 1.5, 'DisplayName', 'BPSK'); hold on; for i = 2:length(psk_orders) semilogy(snr_db, ber_psk_results(i, :), 'o-', 'DisplayName', sprintf('%d-PSK', psk_or...

BER performance of QPSK with BPSK, 4-QAM, 16-QAM, 64-QAM, 256-QAM, etc (MATLAB + Simulator)

📘 Overview 📚 QPSK vs BPSK and QAM: A Comparison of Modulation Schemes in Wireless Communication 📚 Real-World Example 🧮 MATLAB Code 📚 Further Reading   QPSK provides twice the data rate compared to BPSK. However, the bit error rate (BER) is approximately the same as BPSK at low SNR values when gray coding is used. On the other hand, QPSK exhibits similar spectral efficiency to 4-QAM and 16-QAM under low SNR conditions. In very noisy channels, QPSK can sometimes achieve better spectral efficiency than 4-QAM or 16-QAM. In practical wireless communication scenarios, QPSK is commonly used along with QAM techniques, especially where adaptive modulation is applied. Modulation Bits/Symbol Points in Constellation Usage Notes BPSK 1 2 Very robust, used in weak signals QPSK 2 4 Balanced speed & reliability 4-QAM ...

Q-function in BER vs SNR Calculation

Q-function in BER vs. SNR Calculation In the context of Bit Error Rate (BER) and Signal-to-Noise Ratio (SNR) calculations, the Q-function plays a significant role, especially in digital communications and signal processing . What is the Q-function? The Q-function is a mathematical function that represents the tail probability of the standard normal (Gaussian) distribution. Specifically, it is defined as: Q(x) = (1 / sqrt(2Ï€)) ∫â‚“∞ e^(-t² / 2) dt In simpler terms, the Q-function gives the probability that a standard normal random variable exceeds a value x . It is the complementary cumulative distribution function (CCDF) of the standard Gaussian distribution. The Role of the Q-function in BER vs. SNR The Q-function is the standard tool for calculating the Bit Error Rate (BER) in digital communication systems like Binary Phase Shift Keying (BPSK) or Quadrature Phase Shift Keying (QPSK) , where noise follows a Gaussian dis...