DSPRelated.com
Forums

computing large scale partial fourier operation

Started by Sylvia October 24, 2008
Suppose A is a partial Fourier operator of dimension MxN with M<N, we can
generate this via dftmtx command in MATLAB; how to compute (A'*A) for large
scale problems (1000x1000 for example)? as MATLAB goes out of memory?

Sylvia
Sylvia wrote:
> Suppose A is a partial Fourier operator of dimension MxN with M<N, we can > generate this via dftmtx command in MATLAB; how to compute (A'*A) for large > scale problems (1000x1000 for example)? as MATLAB goes out of memory?
I can do that calculation in my head for any dimension, eg 700bln x 700bln. Hint: the result is a diagonal matrix ...
Sylvia wrote:

> Suppose A is a partial Fourier operator of dimension MxN with > M<N, we can generate this via dftmtx command in MATLAB; how to > compute (A'*A) for large scale problems (1000x1000 for example)?
The question is probably meant to make you realize that you can find the result in your head, and the dftmtx documentation implicitly tells how. Martin -- What is it: is man only a blunder of God, or God only a blunder of man? --Friedrich Nietzsche
On 24 Okt, 20:02, "Sylvia" <sylvia.za...@gmail.com> wrote:
> Suppose A is a partial Fourier operator of dimension MxN with M<N, we can > generate this via dftmtx command in MATLAB; how to compute (A'*A) for large > scale problems (1000x1000 for example)? as MATLAB goes out of memory?
Homework? The key is to realize that A (or W as it is usually called in the literature) is Unitary. The question becomes far more interesting if you adjust it to "how to compute A*x when M << N?" This corresponds to a long data sequence (or at least a long DFT) where you are only interested in a small section of the frequency band. Rune