压缩感知模型及稀疏信号的生成
程序员文章站
2022-07-12 12:02:39
...
压缩感知最经典的模型就是一个非线性逆问题:
y = A x
其中y为观测值,A为观测矩阵,x为稀疏矢量。A的维度为M*N,M<N,y为M行列向量,x为N行列向量,所谓的逆问题是指,y和A为已知量,x为未知量,当A为方阵且满秩的时候,A逆乘x,但是A在这里并非方阵,由x到y的变化是不可逆的。
以下matlab代码用于生成上述模型:
N = 1024;
M = 512;
K = 10;
x = zeros(N,1);
T = 5*randn(K,1);
index_k = randperm(N);
x(index_k(1:K)) = T;
A = rand(M,N);
A = sqrt(1/M)*A;
A = orth(A')';
y = A*x;
上述代码中,A矩阵为512*1024,它将一个1024行的向量x变为了512行的y向量,“压缩”即体现于此。
其中的几个函数:
1.randn()用于生成标准正态分布的随机数
2.randperm(N)将1~N的数字随机打散。
3.K为稀疏度,稀疏度指的是非零值的个数
4.orth()函数用于正交化
上一篇: [M链表] lc19. 删除链表的倒数第N个节点(链表+经典)
下一篇: 感知机 简介
推荐阅读