Re: Wanting to take a FFT transform of a irregularly spaced sample

"ashwin .D" <[email protected]> Mon, 16 May 2022 17:24:03 +0530
Newsgroups gmane.comp.python.scientific.user
Message-ID <CAH0LXy6uQKaEOdHTK9mWkL5-o9OqH0JB61ZxEBvOfpM4R9ixCA@mail.gmail.com>
--===============1314912784144735956==
Content-Type: multipart/alternative; boundary="000000000000e3c66005df1faed5"

--000000000000e3c66005df1faed5
Content-Type: text/plain; charset="UTF-8"

Robert,
                When you write "you may want to reduce the number of points
you sample at first for visualization, then you can zoom in at the full
frequency resolution to an area of interest if there is lots of dead
space." are you referring to the
https://en.wikipedia.org/wiki/Welch%27s_method and implemented by
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.welch.html
? This provides for  an efficient noise reduction .

On Tue, Apr 12, 2022 at 6:48 PM Robert Kern <[email protected]> wrote:

> On Tue, Apr 12, 2022 at 3:32 AM ashwin .D <[email protected]> wrote:
>
>> Hi Robert,
>>                   Thanks for your prompt response. I am going to try
>> both. Regarding this answer that you recommended -
>> https://stackoverflow.com/questions/34428886/discrete-fourier-transformation-from-a-list-of-x-y-points/34432195#34432195
>>
>> what would be my angular frequencies from this API -
>> https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.lombscargle.html
>> ?
>>
>> The x and y arguments are straightforward and are available to me from
>> the CSV file. What about the third one ?
>>
>
> That's the angular frequencies at which you want to evaluate the
> periodogram at. In your case (otherwise-regular time series but with
> missing values), I would recommend using the angular frequencies that you
> would have had if you had computed a normal periodogram using the FFT on
> the whole time series, e.g. `np.linspace(0, np.pi/300.0, 8928//2)`
> (assuming your `x` is in seconds). The running time is
> O(len(x)*len(freqs)), though, so that may take a long time. You may want to
> reduce the number of points you sample at first for visualization, then you
> can zoom in at the full frequency resolution to an area of interest if
> there is lots of dead space.
>
> --
> Robert Kern
> _______________________________________________
> SciPy-User mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/scipy-user.python.org/
> Member address: [email protected]
>

--000000000000e3c66005df1faed5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Robert,<div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 When you write &quot;you may want to reduce the number of points=
 you sample at first for visualization, then you can zoom in at the full fr=
equency resolution to an area of interest if there is lots of dead space.&q=
uot; are you referring to the=C2=A0<a href=3D"https://en.wikipedia.org/wiki=
/Welch%27s_method">https://en.wikipedia.org/wiki/Welch%27s_method</a> and i=
mplemented by=C2=A0<a href=3D"https://docs.scipy.org/doc/scipy/reference/ge=
nerated/scipy.signal.welch.html">https://docs.scipy.org/doc/scipy/reference=
/generated/scipy.signal.welch.html</a>=C2=A0 ? This provides for=C2=A0 an e=
fficient noise reduction .=C2=A0</div></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Tue, Apr 12, 2022 at 6:48 PM Rober=
t Kern &lt;<a href=3D"mailto:[email protected]">[email protected]</=
a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><d=
iv dir=3D"ltr"><div dir=3D"ltr">On Tue, Apr 12, 2022 at 3:32 AM ashwin .D &=
lt;<a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]=
om</a>&gt; wrote:<br></div><div class=3D"gmail_quote"><blockquote class=3D"=
gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(20=
4,204,204);padding-left:1ex"><div dir=3D"ltr">Hi Robert,<div>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Thanks for your prompt res=
ponse. I am going to try both. Regarding this answer that you recommended -=
=C2=A0<a href=3D"https://stackoverflow.com/questions/34428886/discrete-four=
ier-transformation-from-a-list-of-x-y-points/34432195#34432195" target=3D"_=
blank">https://stackoverflow.com/questions/34428886/discrete-fourier-transf=
ormation-from-a-list-of-x-y-points/34432195#34432195</a></div><div><br></di=
v><div>what would be my angular frequencies from this API -=C2=A0<a href=3D=
"https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.lombscar=
gle.html" target=3D"_blank">https://docs.scipy.org/doc/scipy/reference/gene=
rated/scipy.signal.lombscargle.html</a> ?=C2=A0</div><div><br></div><div>Th=
e x and y arguments are straightforward and are available to me from the CS=
V file. What about the third one ?=C2=A0</div></div></blockquote><div><br><=
/div><div>That&#39;s the angular frequencies at which you want to evaluate =
the periodogram at. In your case (otherwise-regular time series but with mi=
ssing values), I would recommend using the angular frequencies that you wou=
ld have had if you had computed a normal periodogram using the FFT on the w=
hole time series,=C2=A0e.g. `np.linspace(0, np.pi/300.0, 8928//2)` (assumin=
g your `x` is in seconds). The running time is O(len(x)*len(freqs)), though=
, so that may take a long time. You may want to reduce the number of points=
 you sample at first for visualization, then you can zoom in at the full fr=
equency resolution to an area of interest if there is lots of dead space.</=
div></div><div><br></div>-- <br><div dir=3D"ltr">Robert Kern</div></div>
_______________________________________________<br>
SciPy-User mailing list -- <a href=3D"mailto:[email protected]" target=
=3D"_blank">[email protected]</a><br>
To unsubscribe send an email to <a href=3D"mailto:[email protected]=
rg" target=3D"_blank">[email protected]</a><br>
<a href=3D"https://mail.python.org/mailman3/lists/scipy-user.python.org/" r=
el=3D"noreferrer" target=3D"_blank">https://mail.python.org/mailman3/lists/=
scipy-user.python.org/</a><br>
Member address: <a href=3D"mailto:[email protected]" target=3D"_blank">win=
[email protected]</a><br>
</blockquote></div>

--000000000000e3c66005df1faed5--

--===============1314912784144735956==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
SciPy-User mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/scipy-user.python.org/
Member address: [email protected]

--===============1314912784144735956==--