"Antigoni " <projects_in_web@yahoo.gr> wrote in message <khnp43$cv2$1@newscl01ah.mathworks.com>...
> Hi all!
>
> Suppose you have an equation f(w,x) which involves frequency (w) and space (x) variables and it is solved for various values of these variables between specific ranges. After the solution, I come up with a 2D matrix whose rows represent frequency and columns represent space. I apply an inverse Fourier transform to this matrix using IFFT, in order to construct a matrix in time (rows) and space (columns).
> My problem starts when I'm trying to increase the number of points used in frequency dimension. To be more specific, I run two different cases:
>
> Case A: I solve f(w,x) for 256 points in w and 512 points in x. The range of w is between (-2.5e6 , 2.5e6) Hz, which means that I use a frequency step of df=19607.843. The solution seems ok and when I do the IFFT, everything seems fine. Now I want to increase the points...
>
> Case B: So, I increase the points in frequency and I solve f(w,x) for 2048 points in w and 512 points in x (are kept constant). The range of w remains the same, although the frequency step is reduced to df=2442.599. The solution in [frequency,space] domain is correct - the number of points is increased along frequency dimension. This means that when I look at a complete period of my signal I have more points along the signal than I had in case A. However, when I apply the IFFT, it seems llike it zooms out the result, keeping the number of points constant along a complete period.
>
> How can I keep the range constant and increase the accuracy of the output signal from ifft?
> Any related answer is welcome.
The time/frequency fft relates a time function on
t = dt*(0:N-1) = 0:dt:T-dt, dt = 1/Fs, T = N*dt (the period)
with the transform on
f = df*(0:N-1) = 0:df:Fs-df, df = 1/T = Fs/N
Now if Fs remains constant while N is increased and df is decreased:
dt = 1/Fs remains constant but T = N*dt =1/df increases.
If you want to increase time resolution, you have to increase the maximum frequency
of fftshift(fft(x)) which is Fs/2.
If you do not have higher frequency measurements, you can always zero pad and get an interpolation of the time function. Make sure half of the zero padding is below -Fs/2 and the other half is above +Fs/2 .
Hope this helps
Greg
> Hi all!
>
> Suppose you have an equation f(w,x) which involves frequency (w) and space (x) variables and it is solved for various values of these variables between specific ranges. After the solution, I come up with a 2D matrix whose rows represent frequency and columns represent space. I apply an inverse Fourier transform to this matrix using IFFT, in order to construct a matrix in time (rows) and space (columns).
> My problem starts when I'm trying to increase the number of points used in frequency dimension. To be more specific, I run two different cases:
>
> Case A: I solve f(w,x) for 256 points in w and 512 points in x. The range of w is between (-2.5e6 , 2.5e6) Hz, which means that I use a frequency step of df=19607.843. The solution seems ok and when I do the IFFT, everything seems fine. Now I want to increase the points...
>
> Case B: So, I increase the points in frequency and I solve f(w,x) for 2048 points in w and 512 points in x (are kept constant). The range of w remains the same, although the frequency step is reduced to df=2442.599. The solution in [frequency,space] domain is correct - the number of points is increased along frequency dimension. This means that when I look at a complete period of my signal I have more points along the signal than I had in case A. However, when I apply the IFFT, it seems llike it zooms out the result, keeping the number of points constant along a complete period.
>
> How can I keep the range constant and increase the accuracy of the output signal from ifft?
> Any related answer is welcome.
The time/frequency fft relates a time function on
t = dt*(0:N-1) = 0:dt:T-dt, dt = 1/Fs, T = N*dt (the period)
with the transform on
f = df*(0:N-1) = 0:df:Fs-df, df = 1/T = Fs/N
Now if Fs remains constant while N is increased and df is decreased:
dt = 1/Fs remains constant but T = N*dt =1/df increases.
If you want to increase time resolution, you have to increase the maximum frequency
of fftshift(fft(x)) which is Fs/2.
If you do not have higher frequency measurements, you can always zero pad and get an interpolation of the time function. Make sure half of the zero padding is below -Fs/2 and the other half is above +Fs/2 .
Hope this helps
Greg