压缩感知入门①从零开始压缩感知

article/2025/8/20 7:32:35

  • 压缩感知系列博客:
  • 压缩感知入门①从零开始压缩感知
  • 压缩感知入门②信号的稀疏表示和约束等距性
  • 压缩感知入门③基于ADMM的全变分正则化的压缩感知重构算法
  • 压缩感知入门④基于总体最小二乘的扰动压缩感知重构算法

文章目录

  • 1. Problem Formulation
  • 2. Simulation
  • 3. Algorithm

1. Problem Formulation


考虑一个线性方程组求解问题:
A x = b (1) A x = b \tag{1} Ax=b(1)

其中, A ∈ R m × n A \in\mathbb R^{m\times n} ARm×n x ∈ R n × 1 x \in\mathbb R^{n\times 1} xRn×1 b ∈ R m × 1 b \in\mathbb R^{m\times 1} bRm×1 m ≪ n m \ll n mn

这是一个欠定方程组,即该问题有无穷多解,那么如何添加一些约束,使得能够在这组无穷多解中找到一个最优的呢?

试试考虑一下稀疏性。

什么是稀疏性?通俗来讲,如果一个信号中仅有少量的大值,其余都是零,那么这个信号是稀疏的(或者说仅有少量的值相对于其他的值明显大得多)。稀疏性意味着信号是可压缩的,因为在数据表达时只需要考虑大值信号的位置和大小。

回到这个欠定方程组求解问题,如果待求解信号 x x x是稀疏的,那么无穷多组解中找到最稀疏的那个解即为所求。该问题可以表达为一个 l 0 l _0 l0范数优化问题,即
m i n ∥ x ∥ 0 s . t . A x = b (2) min \parallel x \parallel_0 \quad s.t. \ Ax=b \tag{2} minx0s.t. Ax=b(2)

其中 ∥ x ∥ 0 \parallel x \parallel_0 x0表示 x x x的0范数,即为 x x x中非零值的个数,该问题是一个NP-hardness问题1,求解相当困难。

幸运的是,当 A A A b b b满足RIP条件时2,问题 (2) 可以等价于求解一个 l 1 l_1 l1范数优化问题,即
m i n ∥ x ∥ 1 s . t . A x = b (3) min \parallel x \parallel_1 \quad s.t. \ Ax=b \tag{3} minx1s.t. Ax=b(3)

其中 ∥ x ∥ 1 \parallel x \parallel_1 x1表示 x x x的1范数,即为 x x x中元素的绝对值之和。这是一个 l 1 l_1 l1范数的凸优化问题(基追踪问题),存在最优解。

l 1 l_1 l1范数优化问题可以转化为一个标准的线性规划问题进行求解3,即
m i n c T θ s . t . Φ θ = s (5) min\ \ c^T\theta \quad s.t. \ \Phi \theta=s \tag{5} min  cTθs.t. Φθ=s(5)

其中 c T = [ 1 , 1 , . . . , 1 ] ∈ R 1 × 2 n , θ = [ u ; v ] ∈ R 2 n × 1 , Φ = [ A , − A ] ∈ R m × 2 n , s = b ∈ R m × 1 c^T=[1,1,...,1]\in\mathbb R^{1\times2n},\;\theta=[u;v]\in \mathbb R^{2n \times1},\; \Phi=[A, -A]\in \mathbb R^{m \times2n},\;s=b\in\mathbb R^{m\times1} cT=[1,1,...,1]R1×2n,θ=[u;v]R2n×1,Φ=[A,A]Rm×2n,s=bRm×1

最后 x = u − v x=u-v x=uv

2. Simulation


CS仿真图片

3. Algorithm


clear
close all
M = 40;
N = 100;
K = 10;
x = zeros(N,1);
ind = randperm(N);  
x(ind(1:K)) = 10*randn(K,1);
A = randn(M,N);
b = A * x;
%% signal reconstruction
x0 = CS_linprog(A,b);
%% error analysis
plot(x);hold on
plot(x0,'*')
function x=CS_linprog(A,b)len=size(A,2);Phi=[A,-A];s=b;c=ones(1,2*len);lb=zeros(1,2*len);theta = linprog(c,[],[],Phi,s,lb);x=theta(1:len)-theta(len+1:2*len);
end
https://github.com/dwgan/Compressed-Sensing-Basic-Pursuit.git

参考4


  1. https://www.jianshu.com/p/58fea4d97b2a ↩︎

  2. D. L. Donoho, “Compressed sensing,” IEEE Transactions on Information Theory, vol. 52, no. 4, pp. 1289-1306, 2006, doi: 10.1109/TIT.2006.871582. ↩︎

  3. S. S. Chen, D. L. Donoho, and M. A. Saunders, “Atomic Decomposition by Basis Pursuit,” SIAM Review, vol. 43, no. 1, pp. 129-159, 2001/01/01 2001, doi: 10.1137/S003614450037906X. ↩︎

  4. https://blog.csdn.net/jbb0523/article/details/51986554#t5 ↩︎


http://chatgpt.dhexx.cn/article/uHvmGyRR.shtml

相关文章

形象易懂讲解算法II——压缩感知

作者:咚懂咚懂咚 链接:https://zhuanlan.zhihu.com/p/22445302 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 之前曾经写过一篇关于小波变换的回答( 能不能通俗的讲解下傅立叶分析…

CS(压缩感知)总结

CS(压缩感知)总结 1.符号说明2.理论内容2.1 压缩感知2.2 名词介绍2.3 压缩感知过程2.4 压缩感知问题 为满足笔者自身的需求,遂写了这篇博客,目的是总结一下对压缩感知的理解,记录有关压缩感知的理论知识! 1…

压缩感知学习总结及Matlab代码实现

目录 前言一、压缩感知基本原理二、代码仿真1. CVX工具箱求解L1范数2. CVX学习视频3. 仿真实现 三、 重点参考 前言 压缩感知(Compressive Sensing,CS)与传统的香农采样定理(奈奎斯特采样定理)有着明显区别,香农采样定…

声纹识别背景学习

声纹识别背景学习 REFERENCE前言基础:Verification vs Identification方法:Enrollment and verificationText-Dependent vs Text-Independent技术分水岭全民智能终端的冲击迁移学习Speaker ClusteringSpeaker Diarization有用的链接 REFERENCE 1.Voicep…

第二课 声纹识别

可以将".sph"转换成".wav"格式文件 SPHERE Conversion Tools | Linguistic Data ConsortiumThe Linguistic Data Consortium is an international non-profit supporting language-related education, research and technology development by creating a…

linux搭建声纹识别,声纹识别SDK-FreeSR

FreeSR (A Free Library for Speaker Recognition),免费的声纹识别/性别识别SDK,支持Android/Windows/Linux等平台。 https://github.com/NonDay/FreeSR 1.实现算法: gmm-ubm/i-vector/x-vector 2.功能 说话人识别(验证),包括注册…

声纹识别概述(3)声纹识别系统

文章目录 1. 声纹识别系统框架1.0 声纹识别系统1.0.1 不太清晰的两个阶段:训练阶段和测试阶段1.0.2 只讲了一个阶段:测试/应用阶段(包括注册和验证)1.0.3 声纹识别系统的三个阶段 1.1 特征提取1.2 模型建立1.3 打分判决1.3.1 判决…

[声纹识别]基于MFCC的声纹识别算法

Mel频率倒谱系数(melfrequency cepstral coefficients,MFCC)是声音的短期功率谱的表示,基于非线性频谱上的对数功率谱的线性余弦变换。在自动语音识别领域,MFCC是使用最广泛的特征之一,同时,它也广泛应用于声纹识别领域…

声纹识别小总结

文章目录 1.声纹识别基础知识A.识别任务分类:1、固定文本:注册与验证内容相同;2、半固定文本:注册与验证内容一样但顺序不同,且文本属于固定集合;3、自由文本B.常见预处理特征:MFCC/FBank。C.常…

声纹识别概述

转载自https://blog.csdn.net/weixin_44278406/article/details/103787143 声纹识别绪论 前言 指纹信息、人脸信息和声纹(voice-print)信息作为人体固有的生物信息,是智能电子设备私有化部署及辅助辨认个体的媒介。目前,指纹和…

基于Pytorch实现的EcapaTdnn声纹识别模型

前言 本项目使用了EcapaTdnn模型实现的声纹识别,不排除以后会支持更多模型,同时本项目也支持了多种数据预处理方法,损失函数参考了人脸识别项目的做法PaddlePaddle-MobileFaceNets ,使用了ArcFace Loss,ArcFace loss:…

常用应用层协议的报文格式

常见应用层协议的报文格式 1.常用应用程序的端口号2.HTTP的报文格式 1.常用应用程序的端口号 名称应用层协议端口运输层协议说明超文本传输协议HTTP80TCP域名解析系统DNS53UDP/TCP长度超过512字节,使用TCP动态主机配置协议DHCP67/68UDP简单网络管理协议SNMP161/162UDP文件传输…

15-传输层协议和应用层协议

PS:针对上一篇tcp协议中说到的端到端服务,这里我们再通过传输层协议和应用层协议之间的关系来加深端到端服务的学习和理解。 1. 传输层协议和应用层层协议的关系 在应用层,我们知道有很多协议,比如常见的有http,tfp&am…

应用层协议(HTTP协议)

目录 HTTP 简介 URL urlencode&urldecode HTTP请求协议格式 HTTP响应格式 HTTP的常见方法 HTTP状态码 HTTP常见的Header HTTP 简介 HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务…

应用层常见协议——知识点

这里总结了三种常见的应用层协议:HTTP、FTP、SMTP。供自己复习使用,也供大家参考! 一、HTTP协议 1、HTTP简介 —超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW World Wide Web)服务器之间互相通信的…

应用层协议

应用层协议定义了什么 应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递消息。特别是定义了: 交换的消息类型,如请求消息和响应消息。 各种消息类型的语法,如消息中的各个字段及其详细描述。 字段的语义,即包含在字段中的信息的…

传输层协议、应用层协议

传输层协议、应用层协议 一、传输层协议 1、传输层概述 (1)传输层的作用 IP层提供点到点的连接 传输层提供端到端的连接 (2)传输层的协议 TCP(Transmission Control Protocol)传输控制协议 可靠的、面向连接的协议;传输效率低 UDP(User Datagram Protocol)用户数据报…

应用层协议和传输层协议

数字是离散的,模拟是连续的,对连续的信号进行采样就会变成数字信号(A/D转换) 在意念传输发明出来之前,计算机之间传输信息,总是需要介质的!要么有线传输,要么无线电波传输。你能接收…

传输层协议和应用层协议及它们之间的关系(端口)

一、传输层的两个协议 1、TCP协议 ①TCP协议的作用:TCP为应用层协议提供可靠传输,发送端按顺序发送,接收端按顺序接收,其间发生的丢包、乱序,TCP会负责其重传和排序,另外TCP还可实现流量空制和拥塞避免等…

基于TCP或UDP协议的应用层协议

TCP和UDP都是传输层协议,上面是应用层,下面是网络层 TCP与UDP区别: TCP(传输控制协议)提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,…