信号采集函数

对于输入的信号 $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$

信号采集,利用快速傅里叶变换 fft 函数计算以波形 $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

参考页面

该函数实现编码衍射模型的信号采集过程,我们在 实例:编码衍射模型 中展示该模型的一个实例。

此页面的源代码请见: gen_y_C.m

版权声明

此页面为《最优化:建模、算法与理论》、《最优化计算方法》配套代码。 代码作者:文再文、刘浩洋、户将,代码整理与页面制作:杨昊桐。

著作权所有 (C) 2020 文再文、刘浩洋、户将