www.gusucode.com > matlab写的贝叶斯的压缩感知的代码 > BCS_CODE\bcs_ver0.1\l1magic\Measurements\A_f.m

    % A_f.m
%
% Takes "scrambled Fourier" measurements.
%
% Usage: b = A_f(x, OMEGA, P)
%
% x - N vector
%
% b - K vector = [real part; imag part]
%
% OMEGA - K/2 vector denoting which Fourier coefficients to use
%         (the real and imag parts of each freq are kept).
%
% P - Permutation to apply to the input vector.  Fourier coeffs of
%     x(P) are calculated.
%     Default = 1:N (no scrambling).
%
% Written by: Justin Romberg, Caltech
% Created: October 2005
% Email: jrom@acm.caltech.edu
%

function b = A_f(x, OMEGA, P)

N = length(x);
if (nargin < 3), P = 1:N;  end

fx = 1/sqrt(N)*fft(x(P));
b = [sqrt(2)*real(fx(OMEGA)); sqrt(2)*imag(fx(OMEGA))];