⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gendataecc.m

📁 一种基于压缩感知技术的图像重建程序
💻 M
字号:
function GenDataECC(n,R,kMin,kMax,fOut);% GenDataECC: BER performance of Error-Correcting Codes with StOMP.Rn = R*n;kArr = floor(linspace(kMin,kMax,40));numTrials = 5;delta = R-1/R;sigma_z = 1;S = 10;BER_FAR = zeros(size(kArr));BER_FDR = zeros(size(kArr));BER_PDCO = zeros(size(kArr));BER_OMP = zeros(size(kArr));t_FAR = zeros(size(kArr));t_FDR = zeros(size(kArr));t_PDCO = zeros(size(kArr));t_OMP = zeros(size(kArr));for ki = 1:length(kArr)    k = kArr(ki);    for ti = 1:numTrials        disp(['ki = ' num2str(ki), ', ti = ' num2str(ti)]);                % Create digital signal to be encoded        theta = SparseVector(n,n,'Signs');        % Create encoding matrix        G = randn(Rn);        [Q,R] = qr(G);        E = Q(:,1:n);        D = Q(:,(n+1):Rn)';        % Encoding stage        tx = E*theta;        % Transmission stage: Add sparse noise        z = SparseVector(Rn,k,'Gaussian',1) .* sigma_z;        rx = tx+z;        % Decoding stage: Solve with ITSP        y = D*rx;        a_0 = delta .* (1-k/(delta.*n)) ./ S;        tic        [xFAR, iters] = SolveStOMP(D, y, Rn, 'FAR', a_0, S);        t_FAR(ki) = t_FAR(ki) + toc;        thetaFAR = sign(E'*(rx-xFAR));        BER_FAR(ki) = BER_FAR(ki) + sum(thetaFAR ~= theta) ./ n;        q = min((delta.*n - k)./k,0.5);        tic        [xFDR, iters] = SolveStOMP(D, y, Rn, 'FDR', q, S);        t_FDR(ki) = t_FDR(ki) + toc;        thetaFDR = sign(E'*(rx-xFDR));        BER_FDR(ki) = BER_FDR(ki) + sum(thetaFDR ~= theta) ./ n;        tic        xPDCO = SolveBP(D, y, Rn, 15, 0, 1e-2);        t_PDCO(ki) = t_PDCO(ki) + toc;        thetaPDCO = sign(E'*(rx-xPDCO));        BER_PDCO(ki) = BER_PDCO(ki) + sum(thetaPDCO ~= theta) ./ n;        tic        xOMP = SolveOMP(D, y, Rn);        t_OMP(ki) = t_OMP(ki) + toc;        thetaOMP = sign(E'*(rx-xOMP));        BER_OMP(ki) = BER_OMP(ki) + sum(thetaOMP ~= theta) ./ n;    end        t_FDR(ki) = t_FDR(ki) ./ numTrials;    t_FAR(ki) = t_FAR(ki) ./ numTrials;    t_PDCO(ki) = t_PDCO(ki) ./ numTrials;    t_OMP(ki) = t_OMP(ki) ./ numTrials;    BER_FDR(ki) = BER_FDR(ki) ./ numTrials;    BER_FAR(ki) = BER_FAR(ki) ./ numTrials;    BER_PDCO(ki) = BER_PDCO(ki) ./ numTrials;    BER_OMP(ki) = BER_OMP(ki) ./ numTrials;endsave(fOut,'n','kArr','numTrials','t_FAR','t_FDR','t_PDCO','t_OMP','BER_FDR','BER_FAR','BER_PDCO','BER_OMP');%% Copyright (c) 2006. David Donoho, Iddo Drori, and Yaakov Tsaig%  %% Part of SparseLab Version:100% Created Tuesday March 28, 2006% This is Copyrighted Material% For Copying permissions see COPYING.m% Comments? e-mail sparselab@stanford.edu%

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -