%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Copyright (C) 2020 Zaiwen Wen, Haoyang Liu, Jiang Hu % % This program is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program. If not, see . % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Change log: % % 2017.6.10 (Chao Ma): % First version % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 信号采集函数 % 对于输入的信号 $x$利用编码衍射模型,得到其信号采集 % % $$ \displaystyle b_j=\left| \sum_{t=0}^{n-1}x_t\bar{b}_\ell(t)e^{-i2\pi kt/n} % \right|^2,\quad j=(l,k),0\le k\le n-1,1\le\ell\le L,$$ % % 其中 $b_j$ 表示采集的波形 $d_\ell$下信号 $\{x_t\}$的衍射图的模长。通过改变 $\ell$和对应的波形 % $d_\ell$我们生成一系列编码衍射图。 %% 函数主体 % 函数要求给定信号 $x$ 和信号采集次数 $L$, 返回记录波形的矩阵 % $A\in\mathcal{C}^{n,L}=(d_1,d_2,\dots,d_L)$ 和采集到的信号 % $y\in\mathcal{C}^{nL}$。 function [ y, A ] = gen_y_C( x, L ) n=size(x,1); A=zeros(n,L); y=zeros(n*L,1); %%% % $L$ 为信号采集的次数。 $c_1$ 分别依概率 $\frac{1}{4}$ 取 $+1$, $-1$, $+i$, $-i$。 for k=1:L b1=zeros(n,1);b2=b1; b=rand(n,1); b1(b<0.25)=1; b1(b>=0.25 & b<0.5)=-1; b1(b>=0.5 & b<0.75)=-1i; b1(b>=0.75)=1i; %%% % $c_2$ 依概率 $\frac{4}{5}$ 取 $\frac{\sqrt{2}}{2}$,依概率 $\frac{1}{5}$ 取 % $\sqrt{3}$。 b=rand(n,1); b2(b<0.8)=sqrt(2)/2; b2(b>=0.8)=sqrt(3); %%% % 以独立同分布的随机向量 $d_\ell,\ell=0,1,\dots,L$模拟实际场景中的波形, % 其中 $d_\ell(t)=c_1c_2$。 % % 信号采集,利用快速傅里叶变换 % % 函数计算以波形 $d_\ell$ % 完成上文给定的信号采集,并记录在 $y_{((k-1)n+1,kn)}$中。 A(:,k)=b1.*b2; y((k-1)*n+1:k*n)=abs(fft(x.*conj(A(:,k)))).^2; end end %% 参考页面 % 该函数实现编码衍射模型的信号采集过程,我们在 % 中展示该模型的一个实例。 % % 此页面的源代码请见: <../download_code/phase_LM/gen_y_C.m gen_y_C.m>。 %% 版权声明 % 此页面为《最优化:建模、算法与理论》、《最优化计算方法》配套代码。 % 代码作者:文再文、刘浩洋、户将,代码整理与页面制作:杨昊桐。 % % 著作权所有 (C) 2020 文再文、刘浩洋、户将