Matrix pseudo-inverse to do inverse discrete fourier transform

In summary, the conversation discusses two different approaches to computing the inverse discrete Fourier transform (DFT) in matrix form using the matrices M and Mi. The first approach uses the inverse DFT matrix while the second approach uses the pseudoinverse. The discussion also mentions that the two methods do not always produce the same results due to the matrix M being rectangular and badly conditioned. The conversation ends with a question about the efficiency and speed of using the pseudoinverse method compared to other methods like Gaussian elimination.
  • #1
thefly
7
0
Hello,
can anyone help me with the following problem:
The discrete Fourier transform (DFT) in matrix form can be done as follows
F=M*f
where f are the space domain samples, F are the spatial frequency domain samples and M is the DFT matrix containing the exp(j*...) terms.
To compute the inverse DFT, always in matrix form, the following can be used:
f=Mi*F
where Mi is the inverse DFT matrix containing the exp(-j*...) terms.
In general, applying common linear algebra concepts, the inverse could also be obtained as:
f=pinv(M)*F
where pinv is the pseudoinverse.
Playing around with these two ways of doing the inverse DFT I found that they don't always provide equal results. In particular I'm trying to perform DFT and inverse DFT of samples on a 2D spatial domain and the inverse using pinv as serious numeric problems since M is badly conditioned.
Can someone help to understan the difference of the two approaches to the inverse DFT? Are there some hypothesis under which the two give same results?
Thank you in advance for your help
 
Physics news on Phys.org
  • #2
Is your matrix M a square matrix and non singular? If it is then I think you will always get the same results.
 
  • #3
Thanks for the reply. Unfortunately, the matrix M is usually:
- rectangular because the number of space domain samples is different from frequency domain samples
- badly conditioned
 
  • #4
thefly said:
Hello,
can anyone help me with the following problem:
The discrete Fourier transform (DFT) in matrix form can be done as follows
F=M*f

To compute the inverse DFT, always in matrix form, the following can be used:
f=Mi*F
where Mi is the inverse DFT matrix containing the exp(-j*...) terms.
In general, applying common linear algebra concepts, the inverse could also be obtained as:
f=pinv(M)*F
where pinv is the pseudoinverse.

Can someone help to understan the difference of the two approaches to the inverse DFT? Are there some hypothesis under which the two give same results?
Thank you in advance for your help

Sorry that I'm not that helpful. This is the first time I seen the term pseudoinverse. Just curious with the idea of computing the inverse of a badly conditioned matrix. How easy and how fast is this method compare to say the Gaussian elimination method ?
 

FAQ: Matrix pseudo-inverse to do inverse discrete fourier transform

What is a matrix pseudo-inverse?

A matrix pseudo-inverse is a generalization of the inverse of a square matrix to non-square matrices. It is used to solve systems of linear equations when the matrix is not invertible.

What is the inverse discrete fourier transform (IDFT)?

The inverse discrete fourier transform is a mathematical operation that converts a signal from the frequency domain back to the time domain. It is the reverse of the discrete fourier transform (DFT).

Why is the matrix pseudo-inverse used for the IDFT?

The matrix pseudo-inverse is used for the IDFT because the DFT can be represented as a matrix multiplication of the input signal with a Fourier matrix. The pseudo-inverse of this matrix can be used to reverse the process and obtain the original signal in the time domain.

How is the matrix pseudo-inverse calculated?

The matrix pseudo-inverse can be calculated using various methods such as the singular value decomposition (SVD) or the Moore-Penrose inverse. These methods involve decomposing the matrix into smaller matrices and using these to obtain the pseudo-inverse.

What are the applications of the matrix pseudo-inverse in the IDFT?

The matrix pseudo-inverse is widely used in signal processing, image processing, and data compression. It is also used in solving inverse problems and in the reconstruction of signals from incomplete or noisy data.

Similar threads

Back
Top