aboutsummaryrefslogtreecommitdiff
path: root/Measurements/At_f.m
blob: 9addfe37ca760f91d89f19cedc5dcda60b61c2f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
% At_f.m
%
% Adjoint for "scrambled Fourier" measurements.
%
% Usage: x = At_f(b, N, OMEGA, P)
%
% b - K vector = [real part; imag part]
%
% N - length of output x
%
% 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 embedded.
%     Default = 1:N (no scrambling).
%
% Written by: Justin Romberg, Caltech
% Created: October 2005
% Email: jrom@acm.caltech.edu
%


function x = At_f(b, N, OMEGA, P)

if (nargin < 4),  P = 1:N;  end

K = length(b);
fx = zeros(N,1);
fx(OMEGA) = sqrt(2)*b(1:K/2) + i*sqrt(2)*b(K/2+1:K);
x = zeros(N,1);
x(P) = sqrt(N)*real(ifft(fx));