Please post your questions and comments below. Thank you.
This entry was posted
on Thursday, May 27th, 2010 at 6:15 pm and is filed under Uncategorized.
You can follow any responses to this entry through the RSS 2.0 feed.
You can skip to the end and leave a response. Pinging is currently not allowed.
A partial random circulant matrix can be formed as [Downsample]*[Circulant Matrix], where in code both the downsample and circulant matrices are formed implicitly. Below are some types of circulant matrices and downsampling schemes.
[Circulant Matrix] Types:
1. Random 1st row: Gaussian, Bernoulli, …
2. F*DF where F is a Fourier matrix and D is a diagonal matrix.
2A: diag(D) is random
2B: diag(D) has a uniform amplitude and random phases
diag(D) can be conjugate symmetric (yielding real F*DF) or not (yielding complex F*DF).
[Downsample] Types:
1. First m rows
2. Equally-spaced m rows
3. Randomly picked m rows
They can give different performances. See Rice CAAM TR10-01 for a comparison.
If the circulant matrix is generated of Type 2 above and all the entries of diag(D) have amplitude 1, then the circulant ensember A = P*C satisfies A*A’ = I. So, the rows of A are orthogonal each other, and one should set
opts.nonorth = 0
to take the full advantage of YALL1.