L i?|ddlZddlZddlmZmZmZmZmZm Z ddl Z ddl m Z ddl mZddlmZddlmZmZmZmZddlmZddlmZmZmZmZmZmZmZm Z dd l!m"Z"dd l#m$Z$dd l%m&Z'dd l%m(Z)Gd dZ*GddZ+GddZ,GddZ-GddZ.GddZ/GddZ0GddZ1y)N)assert_assert_allcloseassert_array_equal assert_equalassert_array_almost_equal_nulpsuppress_warnings)raises)signal)xp_assert_close)fftfreqrfftfreqfftirfft) trapezoid) periodogramwelch lombscargle coherencecsd spectrogram check_COLA check_NOLA)hann)_spectral_helper) stft_compare) istft_comparecDeZdZdZdZdZdZdZdZdZ dZ d Z e jjej d kd d Ze jjej d kd dZdZdZdZdZdZdZdZdZdZdZdZy)TestPeriodogramctjd}d|d<t|\}}t|tjdddtj d}d|d<|dxxdzcc<|dz}t||y) Nr? @npzerosrrlinspaceonesselfxfpqs f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/signal/tests/test_spectral.pytest_real_onesided_evenz'TestPeriodogram.test_real_onesided_evensr HHRL!1~12;;q#q12 GGAJ! "  Q1ctjd}d|d<t|\}}t|tjddz tj d}d|d<|dz}t||d y) Nr!r @.@r&?V瞯<atol)r(r)rraranger+r,s r2test_real_onesided_oddz&TestPeriodogram.test_real_onesided_odd$sg HHRL!1~1299S>$./ GGAJ! X 15)r4ctjd}d|d<t|d\}}t|t ddtj dd}d|d<t||y)Nr r!rFreturn_onesided??)r(r)rrr fullr,s r2test_real_twosidedz"TestPeriodogram.test_real_twosided.s\ HHRL!1e4172s+, GGB !1r4ctjd}d|d<t|d\}}t|d\}}t|tjdddt||d z y) Nr r!rspectrumscalingdensityr"r#g0@)r(r)rrr*)r-r.r/r0gr1s r2test_real_spectrumz"TestPeriodogram.test_real_spectrum7s] HHRL!1j111i012;;q#q121T6"r4ctjdt}d|d<t|\}}t |tj dddtj d}d|d<|dxxdzcc<|d z}t ||y) Nr dtyper!rr"r#r$r%r&)r(r)intrrr*r+r,s r2test_integer_evenz!TestPeriodogram.test_integer_even?su HHRs #!1~12;;q#q12 GGAJ! "  Q1r4ctjdt}d|d<t|\}}t |tj ddz tj d}d|d<|dz}t ||d y) Nr6rNr!rr7r8r&r9r:r;)r(r)rPrrr=r+r,s r2test_integer_oddz TestPeriodogram.test_integer_oddJsj HHRs #!1~1299S>$./ GGAJ! X 15)r4ctjdt}d|d<t|d\}}t |t ddtj dd}d|d<t ||y) Nr rNr!rFr@rBrC)r(r)rPrrr rDr,s r2test_integer_twosidedz%TestPeriodogram.test_integer_twosidedTs_ HHRs #!1e4172s+, GGB !1r4ctjdtj}d|d<t|d\}}t |t ddtj dd}d|d<t ||y)Nr ?@rFr@rB?)r(r) complex128rrr rDr,s r2 test_complexzTestPeriodogram.test_complex]sc HHR '!1e4172s+, GGB !!1r4cvttttjdtj dy)NfoorH) assert_raises ValueErrorrr(r)rYr-s r2test_unk_scalingz TestPeriodogram.test_unk_scalingfs"j+rxx2==/I r4lzOn some 32-bit tolerance issue)reasonctjdtj}|jd}d|dddddf<t |\}}t |j dt|ddddf|ddddfdt |ddddf\}}t|tjddf|dddfdy) NrNr! rBrrfr!r!<) r(r)float64reshaperrshapernewaxisr-r.r/r0f0p0s r2test_nd_axis_m1zTestPeriodogram.test_nd_axis_m1js HHRrzz * IIh !Aa%1~1177I.&q1Qx1Qq52>Qq1uX&B&r"**Q,'71Q3Dr4cbtjdtj}|jd}d|dddddf<t |d\}}t |j dt|ddddf|ddddfd t |ddddf\}}t||ddddfy) NrdrNrgrfr!rBraxisrirfr!r!rj)r(r)rkrlrrrmrros r2test_nd_axis_0zTestPeriodogram.test_nd_axis_0xs HHRrzz * IIh !Aa%11%1177G,&q1Qx1Qq52>Qq1uX&B&r1QqU84r4c.tjd}d|d<t|dd\}}tjdd}t|d|\}}t ||t ||tjdd}t tt|d|y)Nr r!rrgr )r(r)rr get_windowrr^r_r-r.r/r0winfepewin_errs r2test_window_externalz$TestPeriodogram.test_window_externals HHRL!1b&)1+QC(B&q"-&q"-##FB/j+q' #r4ctjd}d|d<t|\}}t|d\}}t||dddt||dddt |j dy)Nr r!rrznfftrf))r(r)rrrrm)r-r.r/r0fppps r2test_padded_fftzTestPeriodogram.test_padded_fftsg HHRL!1~1QR(B2cc7#2cc7#288U+r4c tg\}}t|jdt|jddD]O}ttj|\}}t|j|t|j|QyNrrrrrf)rrrmr(emptyr-r/r0rms r2test_empty_inputz TestPeriodogram.test_empty_inputsl21177D)177D)+ /Erxx/DAq qww . qww . /r4cdD]Q}ttj|d\}}t|j|t|j|SyNrrr!ru)rr(rrrmr-rmr/r0s r2test_empty_input_other_axisz+TestPeriodogram.test_empty_input_other_axissE% /ErxxQ7DAq qww . qww . /r4c tjd}d|d<t|d\}}t|tjdddtj d}d|d<|dxxd zcc<|d z}t||y) Nr!rr rr"r#r$r%r&r'r,s r2test_short_nfftzTestPeriodogram.test_short_nfftu HHRL!12&12;;q#q12 GGAJ! "  Q1r4c tjd}d|d<t|d\}}t|tjdddtj d}d|d<|dxxdzcc<|d z}t||y) Nr r!rrr"r#r$r%r&r'r,s r2test_nfft_is_xshapez#TestPeriodogram.test_nfft_is_xshaperr4cNtjdd}d|d<t|\}}t|tjdddtj dd}d|d<|dxxdzcc<|d z}t||t |j|jk(y) Nr r/r!rr"r#r$r%r&)r(r)rrr*r+rrOr,s r2test_real_onesided_even_32z*TestPeriodogram.test_real_onesided_even_32s HHR !1~12;;q#q12 GGAsO! "  Q1177"#r4c:tjdd}d|d<t|\}}t|tjddz tj dd}d|d<|dz}t||d t |j|jk(y) Nr6r/r!rr7r8r&r9Hz>r;)r(r)rrr=r+rrOr,s r2test_real_onesided_odd_32z)TestPeriodogram.test_real_onesided_odd_32s HHR !1~1299S>$./ GGAsO! X 14(177"#r4ctjdd}d|d<t|d\}}t|t ddtj ddd}d|d<t||t |j|jk(y) Nr r/r!rFr@rBrCr(r)rrr rDrrOr,s r2test_real_twosided_32z%TestPeriodogram.test_real_twosided_32sv HHR !1e4172s+, GGB $!1177"#r4ctjdd}d|d<t|d\}}t|t ddtj ddd }d|d<t||t |j|jk(y) Nr FrWrFr@rBrXr/rr,s r2test_complex_32zTestPeriodogram.test_complex_32sv HHR !1e4172s+, GGB# &!1177"#r4ctjd}d|d<tjdd}d}t t |5t ||dddy#1swYyxYw) Nr r!rrrgzOthe size of the window must be the same size of the input on the specified axismatchwindow)r(r)r r{r^r_r)r-r.r} expected_msgs r2test_shorter_window_errorz)TestPeriodogram.test_shorter_window_errorsZ HHRL!+= :\ : ' # & ' ' 's AA$N)__name__ __module__ __qualname__r3r>rErLrQrSrUrZrapytestmarkskipifsysmaxsizerrrxrrrrrrrrrrrr4r2rrs *# * [[ u/E E [[ u/5 5 #,//   $ $$$'r4rceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#y")# TestWelchctjd}d|d<d|d<t|d\}}t|tjdddtj gd}t||d d y Nr r!rr&npersegr"riKGUU?gS8?#q?r#q?rr<rtolr(r)rrr*arrayr,s r2r3z!TestWelch.test_real_onesided_evensi HHRL!!Q"12;;q#q12 HH" #14d3r4ctjd}d|d<d|d<t|d\}}t|tjddz tj gd }t||d d y Nr r!rr&r#r@"@g9?g?p 0?rrrr)r(r)rrr=rr,s r2r>z TestWelch.test_real_onesided_oddsi HHRL!!Q"1299S>#-. HH" #14d3r4ctjd}d|d<d|d<t|dd\}}t|t ddtj gd}t||d d y Nr r!rr&FrrArBrS8?rrrrrrrr)r(r)rrr rr,s r2rEzTestWelch.test_real_twosided sf HHRL!!Q59171c?+ HHF G14d3r4ctjd}d|d<d|d<t|dd\}}t|tjdddtj gd }t||d d y Nr r!rr&rG)rrIr"r)g?g-UU?.iqUU?rg-UU?rrrr,s r2rLzTestWelch.test_real_spectrumsk HHRL!!Q:612;;q#q12 HH" #14d3r4ctjdt}d|d<d|d<t|d\}}t |tj dddtj gd }t ||d d y Nr rNr!rr&rr"rrrr)r(r)rPrrr*rr,s r2test_integer_onesided_evenz$TestWelch.test_integer_onesided_evensl HHRs #!!Q"12;;q#q12 HH" #14d3r4ctjdt}d|d<d|d<t|d\}}t |tj dd z tj gd }t ||d d y Nr rNr!rr&r#rrrrrr)r(r)rPrrr=rr,s r2test_integer_onesided_oddz#TestWelch.test_integer_onesided_odd(sl HHRs #!!Q"1299S>#-. HH" #14d3r4ctjdt}d|d<d|d<t|dd\}}t |t ddtj gd }t ||d d y Nr rNr!rr&FrrBrrr)r(r)rPrrr rr,s r2rUzTestWelch.test_integer_twosided2si HHRs #!!Q59171c?+ HHF G14d3r4ctjdtj}d|d<d|d<t|dd\}}t |t ddtj gd}t ||d d y Nr rWrr&FrrB)g&>?#q?n)t?rrrrrrr)r(r)rYrrr rr,s r2rZzTestWelch.test_complex<sm HHR '!!Q59171c?+ HHF G14d3r4cxttttjdtj ddyNr\r])rIr)r^r_rr(r)rYr`s r2razTestWelch.test_unk_scalingFs$j%!R]])C#Q 0r4ctjdtjdz}t|dd\}}t |tj |dyNrgrN{Gz?linearrdetrendr:r;r(r=rkrr zeros_liker-r.r/r0s r2test_detrend_linearzTestWelch.test_detrend_linearJsB IIb +d 2QH512==+%8r4ctjdtjdz}t|dd\}}t|dd\}}t ||dt ||dy) NrgrNrFrc|SNrr.s r2z.TestWelch.test_no_detrending..Rsr4r:r;)r(r=rkrrr-r.f1p1f2p2s r2test_no_detrendingzTestWelch.test_no_detrendingOsW IIb +d 2q"e4Bq"k:BBU+BU+r4ctjdtjdz}t|dd\}}t |tj |dy)NrgrNrc0tj|dSNl)typer rsegs r2rz1TestWelch.test_detrend_external..Y#)Fr4rr:r;rrs r2test_detrend_externalzTestWelch.test_detrend_externalVsF IIb +d 2QFH12==+%8r4ctjdtjdz}|jd}t |dd\}}t |tj |d y) N(rNrrfrfrgrgc0tj|dSrrrs r2rz7TestWelch.test_detrend_external_nd_m1..`rr4rr:r;)r(r=rkrlrrrrs r2test_detrend_external_nd_m1z%TestWelch.test_detrend_external_nd_m1\sT IIb +d 2 IIh QFH12==+%8r4c tjdtjdz}|jd}tj|dd}t |ddd \}}t |tj|d y) NrdrNrrerfrrgc2tj|ddSNrr)rvrrrs r2rz6TestWelch.test_detrend_external_nd_0..hs!#)Nr4rrvrr:r;)r(r=rkrlmoveaxisrrrrs r2test_detrend_external_nd_0z$TestWelch.test_detrend_external_nd_0csh IIb +d 2 IIh  KK1a QNP12==+%8r4ctjdtjdz}|jd}t |d\}}t |j dt|ddddf|d dddfd d t |ddddfd\}}t|tjddf|d ddfd d y NrdrNrrergrrhrr!vIh%<=r) r(r=rkrlrrrmrrnros r2rrzTestWelch.test_nd_axis_m1ks IIb +d 2 IIh Q#1177I.!Aa%!AaE(UCq1Qx,B2::a<(!AaC&u5Ir4c`tjdtjdz}|jd}t |dd\}}t |j dt|ddddf|ddd dfd d t |ddddfd \}}t||ddd dfd d y NrdrNrrtrgr)rrvrwr!rrr)r(r=rkrlrrrmrros r2rxzTestWelch.test_nd_axis_0ts IIb +d 2 IIh Q+1177G,!Aa%!AaE(UCq1Qx,BAa!eH5u=r4ctjd}d|d<d|d<t|ddd\}}tjdd}t|d|d\}}t ||t ||t |jdt |jdttt|d|d tjdd }ttt|d|dy) Nr r!rr&rgrrrr\rz) r(r)rr r{rrrmr^r_r|s r2rzTestWelch.test_window_external}s HHRL!!QFA.1*q"c40B&q"-&q"-288T*288T*j%#q *##FB/j%'4 1r4c tg\}}t|jdt|jddD]O}ttj|\}}t|j|t|j|Qyr)rrrmr(rrs r2rzTestWelch.test_empty_inputslRy1177D)177D)+ /E%)DAq qww . qww . /r4cdD]Q}ttj|d\}}t|j|t|j|Syr)rr(rrrmrs r2rz%TestWelch.test_empty_input_other_axissE% /E%q1DAq qww . qww . /r4cdtjd}d|d<t5}|jtdt |d\}}t |dd\}}dddt |d \}}t |t |t |t |y#1swYJxYw) Nr&r!rz$nperseg=256 is greater than signal.*rrrrr)r(r)rfilter UserWarningrr r-r.supr/r0rrrrs r2test_short_datazTestWelch.test_short_datas HHQK!  9C JJ{$J K&)DAq1FC8FB 9q!$B22BB 9 9s 8B&&B/c ttttjddtj gdttttjddtj djdyNr\r!)r!r!r!r!r!ri)rfr)r^r_rr(r)rr=rlr`s r2test_window_long_or_ndz TestWelch.test_window_long_or_ndsQj%!a+9NOj%!aiil**51 3r4ctjd}d|ddd<t|dd\}}tjgd}t ||d y N@r!r&r r\rnoverlap) rgUUUUUU?UUUUUU?皙?r'r(r'r(gUUUUUU?g-q=r;)r(r)rrrr,s r2test_nondefault_noverlapz"TestWelch.test_nondefault_noverlapsM HHRL#A#QQ/1 HH 15)r4c \ttttjdddddyNr\r!rrf)r^r_rr(r)r`s r2test_bad_noverlapzTestWelch.test_bad_noverlapsj%!aAFr4cZttttjdddyN rr\)rr)r^r_rr(r+r`s r2test_nfft_too_shortzTestWelch.test_nfft_too_shortsj%1aHr4c8tjdd}d|d<d|d<t|d\}}t|tjdddtj gd d}t||d d t |j|jk(y Nr r/r!rr&rr"rrrr)r(r)rrr*rrrOr,s r2rz$TestWelch.test_real_onesided_even_32s HHR !!Q"12;;q#q12 HH"#& (14d3177"#r4c:tjdd}d|d<d|d<t|d\}}t|tjdd z tj gd d}t||d d t |j|jk(y Nr r/r!rr&r#rrr)gx:?gyѲI?rgw0?rrr)r(r)rrr=rrrOr,s r2rz#TestWelch.test_real_onesided_odd_32s HHR !!Q"1299S>#-. HH"#& (14d3177"#r4c$tjdd}d|d<d|d<t|dd\}}t|t ddtj gd d}t||d d t |j|jk(y Nr r/r!rr&FrrBrrrr(r)rrr rrrOr,s r2rzTestWelch.test_real_twosided_32s HHR !!Q59171c?+ HH"#& ( 14d3177"#r4cZtjdd}d|d<d|d<t|dd\}}t|t ddtj gd d }t||d d t |j|jk(d |jd|jyNr rrWrr&FrrB)g%?A2q?d^?r<g~?r<r<r;r/rrzdtype mismatch, , r8r,s r2rzTestWelch.test_complex_32s HHR !!Q59171c?+ HHFGJ L14d3177""177)2aggY7 9r4ctjd}d}t|dd|dzdz}|dxxdzcc<t|d|\}}t|d |\}}t ||t ||d }t|dd|dzdz}t|d|\}}t|d |\}}t ||t ||y Nr0rBrfr!r$rrrri)r(r)r rr)r-r.rr/fodd_fevens r2test_padded_freqszTestWelch.test_padded_freqss HHRL D# za * " 140aAD1q4 5! D# ~A .140aAD1q4 5!r4c d}d}t|dz}d}t||z|z}tj||z }|tjdtjz|z|zz}dD]}t ||||d\} } t ||||d \} } t | ||dzd z t tjt| | |tjdzdz d y) Nrdg@rg,rf)rbartlett)tukey皙?flattoprG)fsrrrIrJr%gMbP?r) rPr(r=sinpirrsqrtr) r-ArMrfsigiittr.rrDp_specfreqp_denss r2test_window_correctionz TestWelch.test_window_corrections  b"f+ gr! " YYr]2  bffQruuWT\"_% %E 'FaB&02IAv r76)24LD& F2J1S 1 BGGIfd$;rErLrrrUrZrarrrrr rrrxrrrrr!r)r-r1rrrrrFrYrkrqrxrr4r2rrs4444444409 ,9 99J>1"//  3 *GI $ $ $ 9"$',F" 60r4rceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%y$)%TestCSDc"tjd}tjd}tjddd}tjdtj}t ||d\}}t ||t ||y)Nr&r0rr"r,rNrr(r)r*rYrrr-r.yr/crc1s r2test_pad_shorter_xzTestCSD.test_pad_shorter_x=sh HHQK HHRL KK3 " HHQR]] +Q2&B22r4c"tjd}tjd}tjddd}tjdtj}t ||d\}}t ||t ||y)Nr0r&rr"r,rNrr|r}s r2test_pad_shorter_yzTestCSD.test_pad_shorter_yHsh HHRL HHQK KK3 " HHQR]] +Q2&B22r4cltjgdd}tt|dd}t j |tj |fi|d}t j ||ddfi|d}t j |dd|fi|d}t||dz t||dz y) zTest zero-padding for input `x.shape[axis] != y.shape[axis]` for 1d arrays. This test ensures that issue 23036 is fixed. )r\rrr\boxcar)rMrrr!Nr&rf)r(tilerslenr rcopyr )r-r.kwX0X1X2s r2test_unequal_length_input_1Dz$TestCSD.test_unequal_length_input_1DSs GGM1 % SVHa 8 ZZ2771: , ,Q / ZZ1Ra5 'B ' * ZZ"1q 'B ' *BF#BF#r4cd}tjd|zjd|d}||dddddf<t|d|dd }t j ||j fi|d}t j ||ddddddffi|d}t j |ddddddf|fi|d}t||t||y) zTest zero-padding for input `x.shape[axis] != y.shape[axis]` for 3d arrays. This test ensures that issue 23036 is fixed. r&rirfrNrrr!)rMrrrrv)r(r)rlrsr rrr )r-nr.rrrrs r2test_unequal_length_input_3Dz$TestCSD.test_unequal_length_input_3Das  HHUQY  ' '1a 0!Q' QxDq I ZZ1668 *r *1 - ZZ1QAX; -" -a 0 ZZ!RaR( Q -" -a 0BBr4ctjd}d|d<d|d<t||d\}}t|tjdddtj gd}t||d d yrr(r)rrr*rr,s r2r3zTestCSD.test_real_onesided_evenqsk HHRL!!1a#12;;q#q12 HH" #14d3r4ctjd}d|d<d|d<t||d\}}t|tjddz tj gd }t||d d yr)r(r)rrr=rr,s r2r>zTestCSD.test_real_onesided_odd{sk HHRL!!1a#1299S>#-. HH" #14d3r4ctjd}d|d<d|d<t||dd\}}t|t ddtj gd}t||d d yr)r(r)rrr rr,s r2rEzTestCSD.test_real_twosidedsh HHRL!!1aE:171c?+ HHF G14d3r4ctjd}d|d<d|d<t||dd\}}t|tjdddtj gd }t||d d yrrr,s r2rLzTestCSD.test_real_spectrumsm HHRL!!1aJ712;;q#q12 HH" #14d3r4ctjdt}d|d<d|d<t||d\}}t |tj dddtj gd }t ||d d yr)r(r)rPrrr*rr,s r2rz"TestCSD.test_integer_onesided_evensn HHRs #!!1a#12;;q#q12 HH" #14d3r4ctjdt}d|d<d|d<t||d\}}t |tj dd z tj gd }t ||d d yr)r(r)rPrrr=rr,s r2rz!TestCSD.test_integer_onesided_oddsn HHRs #!!1a#1299S>#-. HH" #14d3r4ctjdt}d|d<d|d<t||dd\}}t |t ddtj gd }t ||d d yr)r(r)rPrrr rr,s r2rUzTestCSD.test_integer_twosidedsk HHRs #!!1aE:171c?+ HHF G14d3r4ctjdtj}d|d<d|d<t||dd\}}t |t ddtj gd}t ||d d yr)r(r)rYrrr rr,s r2rZzTestCSD.test_complexso HHR '!!1aE:171c?+ HHF G14d3r4c ttttjdtj tj dtj ddyr)r^r_rr(r)rYr+r`s r2razTestCSD.test_unk_scalings6j#rxx2=='Agga/ Kr4ctjdtjdz}t||dd\}}t |tj |dyrr(r=rkrrrrs r2rzTestCSD.test_detrend_linearsD IIb +d 21aX612==+%8r4ctjdtjdz}t||dd\}}t||dd\}}t ||dt ||dy) NrgrNrFrc|Srrrs r2rz,TestCSD.test_no_detrending..sr4r:r;)r(r=rkrrrs r2rzTestCSD.test_no_detrendings[ IIb +d 2Q2u5BQ2{;BBU+BU+r4ctjdtjdz}t||dd\}}t |tj |dy)NrgrNrc0tj|dSrrrs r2rz/TestCSD.test_detrend_external..v~~c'Dr4rr:r;rrs r2rzTestCSD.test_detrend_externalsH IIb +d 21aDF12==+%8r4ctjdtjdz}|jd}t ||dd\}}t |tj |d y) NrrNrrrgc0tj|dSrrrs r2rz5TestCSD.test_detrend_external_nd_m1..rr4rr:r;)r(r=rkrlrrrrs r2rz#TestCSD.test_detrend_external_nd_m1sV IIb +d 2 IIh 1aDF12==+%8r4ctjdtjdz}|jd}tj|dd}t ||ddd \}}t |tj|d y) NrdrNrrerfrrgc2tj|ddSr rrs r2rz4TestCSD.test_detrend_external_nd_0..sv~~c'Lr4r r:r;)r(r=rkrlr rrrrs r2r z"TestCSD.test_detrend_external_nd_0sj IIb +d 2 IIh  KK1a 1a!LN12==+%8r4ctjdtjdz}|jd}t ||d\}}t |j dt|ddddf|d dddfd d t |ddddf|ddddfd\}}t|tjddf|d ddfd d yr) r(r=rkrlrrrmrrnros r2rrzTestCSD.test_nd_axis_m1s IIb +d 2 IIh 1a$1177I.!Aa%!AaE(UCQq1uXq1Qx4B2::a<(!AaC&u5Ir4cttjdtjdz}|jd}t ||dd\}}t |j dt|ddddf|ddd dfd d t |ddddf|ddddfd \}}t||ddd dfd d yr)r(r=rkrlrrrmrros r2rxzTestCSD.test_nd_axis_0s IIb +d 2 IIh 1a!,1177G,!Aa%!AaE(UCQq1uXq1Qx4BAa!eH5u=r4c Rtjd}d|d<d|d<t||ddd\}}tjdd}t||d|d\}}t ||t ||t |jdt |jdttt||d|d tjdd }ttt||d|dtjtd 5t||dddddy#1swYyxYw) Nr r!rr&rgrrrrrzzParameter nperseg=0.*r) r(r)rr r{rrrmr^r_rr r|s r2rzTestCSD.test_window_externals HHRL!!1aVQ'1*Q2sD1B&q"-&q"-288T*288T*j#q!#s ,##FB/j#q!'4 ) ]]:-D E $ 1a # $ $ $s DD&ctgtjd\}}t|jdt|jdttjdg\}}t|jdt|jddD]c}ttj |tj |\}}t|j|t|j|ettj dtj d\}}t|jdt|jdttj dtj d\}}t|jdt|jdy)Nrgrr)rr)rr(r)rrmrr+rs r2rzTestCSD.test_empty_input s/2bhhrl#1177D)177D)288B<#1177D)177D)+ /Erxx8DAq qww . qww . / 2772;01177E*177E*288E?BGGBK01177E*177E*r4cddD]e}ttj|tj|d\}}t|j|t|j|gttjdtj dd\}}t|jdt|jdttjdtj dd\}}t|jdt|jdy)Nrr!ru)rgrgr)rgrr!)rgrr)rr(rrrmr)rs r2rz#TestCSD.test_empty_input_other_axis!s% /Erxxa@DAq qww . qww . / 288I&(:C1177H-177H-288H%rxx ':C1177H-177H-r4cjtjd}d|d<t5}|jtdt ||d\}}t ||dd\}}dddt ||d \}}t |t |t |t |y#1swYKxYw) Nr&r!rz+nperseg=256 is greater than signal length.*rrrrr)r(r)rrrrrrs r2rzTestCSD.test_short_data/s HHQK!  ;C JJ{$Q Rq!F+DAqAfc:FB ;Q1%B22BB ; ;s :B))B2c jttttjdtj ddtj gdttttjdtj ddtjdjdyr ) r^r_rr(r)r+rr=rlr`s r2r!zTestCSD.test_window_long_or_nd?shj#rxx{BGGAJhh{+ -j#rxx{BGGAJiil**51 3r4ctjd}d|ddd<t||dd\}}tjgd}t ||d yr#)r(r)rrrr,s r2r)z TestCSD.test_nondefault_noverlapEsO HHRL#A#1aa01 HH 15)r4c ttttjdtj dddddyr+)r^r_rr(r)r+r`s r2r-zTestCSD.test_bad_noverlapMs+j#rxx{BGGAJ6 r4cttttjdtj dddyr/)r^r_rr(r+r)r`s r2r1zTestCSD.test_nfft_too_shortQs'j#rwwr{BHHRLq !r4ctjtd5tt j dt j dddddy#1swYyxYw)Nzx and y cannot be broadcast.*r)r!r&r!)rfr&r\r)rr r_rr(r+r`s r2test_incompatible_inputsz TestCSD.test_incompatible_inputsUsG ]]:-L M @  "BGGFOQ ? @ @ @s 5AA#c:tjdd}d|d<d|d<t||d\}}t|tjdddtj gd d}t||d d t |j|jk(yr3)r(r)rrr*rrrOr,s r2rz"TestCSD.test_real_onesided_even_32Zs HHR !!1a#12;;q#q12 HH"#& (14d3177"#r4c<tjdd}d|d<d|d<t||d\}}t|tjdd z tj gd d}t||d d t |j|jk(yr5)r(r)rrr=rrrOr,s r2rz!TestCSD.test_real_onesided_odd_32es HHR !!1a#1299S>#-. HH"#& (14d3177"#r4c&tjdd}d|d<d|d<t||dd\}}t|t ddtj gd d}t||d d t |j|jk(yr7r(r)rrr rrrOr,s r2rzTestCSD.test_real_twosided_32ps HHR !!1aE:171c?+ HH"#& ( 14d3177"#r4c\tjdd}d|d<d|d<t||dd\}}t|t ddtj gd d }t||d d t |j|jk(d |jd|jyr:rr,s r2rzTestCSD.test_complex_32|s HHR !!1aE:171c?+ HHFGJ L14d3177""177)2aggY7 9r4ctjd}tjd}d}t|dd|dzdz}|dxxdzcc<t ||d|\}}t ||d |\}}t ||t ||d }t|dd|dzdz}t ||d|\}}t ||d |\}}t ||t ||yr?)r(r)r+r rr)r-r.r~rr/rCrDrEs r2rFzTestCSD.test_padded_freqss HHRL GGBK D# za * " aAD1aq!QT2q4 5! D# ~A .aAD1aq!QT2q4 5!r4c*tjjd}|j}t ||ddd\}}t ||ddd\}}t ||t ||ddd\}}t ||ddd\}}t ||y)Nr$r&meanF)rrnrArm)r(r_rarrr)r-r.r~rDp_samep_copieds r2test_copied_datazTestCSD.test_copied_datas IIOOB  FFH1a(-/ 6!Q6*/1 8)1a(-/ 6!Q8*/1 8)r4N)&rrrrrrrr3r>rErLrrrUrZrarrrrr rrrxrrrrr!r)r-r1rrrrrrFrrr4r2rzrz<s   $ 44444444K9 ,9 99J>$&+, . 3 *!@ $ $ $ 9"&*r4rzceZdZdZdZy) TestCoherencectjjd}tj|}tjddd}tj d}t ||d\}}t||t||yNrdrr"rirgr)r(r_rarr*r+rrr-r.r~r/CrC1s r2test_identical_inputz"TestCoherence.test_identical_inputsf IIOOB  GGAJ KK3 " GGAJ1a,B22r4ctjjd}| }tjddd}tjd}t ||d\}}t ||t ||yr)r(r_rar*r+rrrs r2test_phase_shifted_inputz&TestCoherence.test_phase_shifted_inputs` IIOOB  B KK3 " GGAJ1a,B22r4N)rrrrrrr4r2rrs   r4rceZdZdZdZdZy)TestSpectrogramctjjd}d}d}d}d}t|||||\}}}t |||||\} } t || t tj |d| y)Nr\rBrJg?r rfr$ru)r(r_rarrrr) r-r.rMrrr&r/rDPfwPws r2test_average_all_segmentsz)TestSpectrogram.test_average_all_segmentssu IIOOD !  aVWh?1aq"fgx8B2+R0r4ctjjd}d}d}d}d}t|||||\}}}t j dd} t||| dd\} }} t | jdt | jdttt||| d t j dd } ttt||| d y) Nr\rBrr rfr%)r#)r#Ir&ri) r(r_rarr r{rrmr^r_) r-r.rMrrr&r/rDrr}r~Pers r2rz$TestSpectrogram.test_window_externals IIOOD !  aVWh?1a42sD1E Ar288T*288V,j+q#q *##OT:j+q'4 1r4ctjjd}d}t||d\}}}t 5}|j t dt||dd\}}}dddt||d \} }} t||d \} }} t|| t|| t| t| y#1swY^xYw) Nr\rBrrzInperseg = 1025 is greater than input length = 1024, using nperseg = 1024irrr)r(r_rarrrrr) r-r.rMr/rDr0rrrrrf3p3s r2rzTestSpectrogram.test_short_datas IIOOD ! aN;1a   2C JJ{. 0$Ar.,02IB2  2  2s3 Ar2t4 Ar22BB 2 2s *CCN)rrrrrrrr4r2rrs 11& r4rcreZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZy)TestLombscarglec d}d}dtjz}d}d}d}tjjd}|j |}tj dtjzd tjz|||k\} |tj || z|zz} tj dd |} t| | | } | d | d z } || tj| z | dz ksJt| | | tj| | j  } | d | d z } || tj| z | dz ksJy)zgTest if frequency location of peak corresponds to frequency of generated input signal. r%rBr"dffffff?#{Gz?$@r!rrNweightsN) r(rPr_ RandomStaterandr*rOrargmax ones_likerO)r-amplwphininnoutr0rngrtr~r/rdeltas r2test_frequencyzTestLombscargle.test_frequencysF  BEEk ii##G, HHSM KKRUU CIs 3AF ; 266!A#)$ $ KKc4 ( 1a !qt 1RYYq\?"eBh/0/ 1aaqww)G H!qt 1RYYq\?"eBh/0/r4cd}d}dtjz}d}d}d}tjjd}|j |}tj dtjzdtjz|||k\} |tj || z|zz} tj dd|} t| | | } tjd | z| jd z } t| | |k(|d y) Nr%rBr"rrrrrg@rrorN) r(rPr_rrr*rOrrQrmr) r-rrrrrr0rrrr~r/pgrams r2test_amplitudezTestLombscargle.test_amplitude"s  BEEk ii##G, HHSM KKRUU CIs 3AF ; 266!A#)$ $ KKc4 (Aq!$e aggaj01 ad T5r4cd}d}dtjz}d}d}d}d}tjjd}|j |} tj d tjzd tjz|| |k\} |tj || z|zz|z} tj d d |} t| | | d } t| | | jz | d }t| |t| | | d d } t| | | jz | d d }t| |y)Nr%rBr"rrrg333333?rrrT) precenterF)r floating_mean) r(rPr_rrr*rOrrr)r-rrrrrr0offsetrrrr~r/rpgram2s r2test_precenterzTestLombscargle.test_precenterCs(  BEEk ii##G, HHSM KKRUU CIs 3AF ; 266!A#)$ $v - KKc4 (Aq!t4QAFFH a5A v& Aq!t4HQAFFH a5PTU v&r4cd}d}dtjz}d}d}d}tjjd}|j |}tj dtjzd tjz|||k\} |tj || z|zz} tj dd |} t| | | } t| | | d } tj| t| jd z }|| z| zj}|}d || jd zz }t| |z| ttj| dy)Nr%rBr"rrrrrrT normalizerrf)r(rPr_rrr*rOrrfloatrmrtrmax)r-rrrrrr0rrrr~r/rrrYY_hatYY scale_to_uses r2test_normalizezTestLombscargle.test_normalizeks> BEEk ii##G, HHSM KKRUU CIs 3AF ; 266!A#)$ $ KKc4 (Aq!$Q15,,q/% "33A+/&&( "QWWQZ-(   ,f5v,r4c <tjddd}tjddd}tjddddz}ttt|||tj tj tjdddddd}tjddd}tjddddz}ttt|||tjddd}tj tj tjdddddd}tjddddz}ttt|||tjddd}tjddd}tj tj tjdddddzdd}ttt|||tjddd}tjddd}tjddddz}tj tj tjdddddd}ttt||||y)Nrr!rfrrKrur)r(r*r^r_rrepeat expand_dimsr-rr~r/rs r2test_wrong_shapez TestLombscargle.test_wrong_shapes KK1a  KK1a  KK1a 3 &j+q!Q7 IIbnnR[[Aq%91=qq I KK1a  KK1a 3 &j+q!Q7 KK1a  IIbnnR[[Aq%91=qq I KK1a 3 &j+q!Q7 KK1a  KK1a  IIbnnR[[Aq%91=CQQ Oj+q!Q7 KK1a  KK1a  KK1a 3 &))BNN2;;q!Q+?CQQOj+q!QHr4ctjdddd}tjd|z}tjddddd z}t|||d ztjzy) NrrgrF)endpointr\2irKrf)r(r*rOrrP)r-rr~r/s r2test_lombscargle_atan_vs_atan2z.TestLombscargle.test_lombscargle_atan_vs_atan2sZ KK2te 4 FF1Q3K KK2sU 3c 9Aq!A#bee)$r4ctjddd}tjddd}tjddddz}tjddd}ttt||||y)Nrr!rrKrfr)r(r*r^r_rrs r2test_wrong_shape_weightsz(TestLombscargle.test_wrong_shape_weightssc KK1a  KK1a  KK1a 3 &++aA&j+q!QHr4ctjd}tjd}tjd}tjd}ttt ||||yNr!rr(r)r+r^r_rrs r2test_zero_division_weightsz*TestLombscargle.test_zero_division_weightssJ HHQK HHQK GGAJ((1+j+q!QHr4cd}d}d}d}d}d}tjjd}|j|}tjdtj zd tj z|||k\} |tj || z|zz} tjdd |} t| | | d } t| | | d } t| | | d }t| | | d }t| | | d }t| |t| |tj| t| jdz }|| z| zj}|}t|dzt| jd|zz |tj| |k(dd}ttj|||tt t| | | d tt t| | | d y)Nr%rBrrrrrrrFrTpowerr amplitudelombrf)r(r_rrr*rPrOrrrrrmrtwhererur^r_)r-rrrrrr0rrrr~r/ pgram_false pgram_true pgram_power pgram_norm pgram_amprrrf_is r2test_normalize_parameterz(TestLombscargle.test_normalize_parameters  ii##G, HHSM KKRUU CIs 3AF ; 266!A#)$ $ KKc4 ("!QU;  AqD9 !!QW=  AqK@ 1a;?   [1 J/,,q/% "33A+/&&(  c)U1771:->-CDjQhhq!tnQ"y~.5 j+q!Q&Ij+q!Q!Dr4cd}d}dtjz}d}d}d}d}tjjd}|j |} tj d tjzd tjz|| |k\} |tj || z|zz} tj d d |} t| | | d } t| | |z| d }t| |y) Nr%rBr"rrr333333@rrrT)r) r(rPr_rrr*rOrrr-rrrrrr0rrrrr~r/r pgram_offsets r2test_offset_removalz#TestLombscargle.test_offset_removals  BEEk ii##G, HHSM KKRUU CIs 3AF ; 266!A#)$ $ KKc4 (Aq!48"1a&j!4H  |,r4cd}d}d}d}d}d}d}tjjd}|j|} tjdtj zd tj z|| |k\} |tj || z|zz} tjdd |} t| | | d d } t| | |z| d d }| ddksJ|dd kDsJy)Nr%rBrrrrfrrrTFrrr"r(r_rrr*rPcosrrs r2test_floating_mean_falsez(TestLombscargle.test_floating_mean_falses  ii##G, HHSM KKRUU CIs 3AF ; 266!A#)$ $ KKc4 (Aq!t5I"1a&j!t168 Qx$A$%$r4cTd}d}d}d}d}d}d}tjjd}|j|} tjd tj zd tj z|| |k\} |tj || z|zz|z} tjd d |} tj| |k(d d } t| | | d d }ttj|| |ttj||  |y)Nr%rBQ?rrrrrrrrrTr") r(r_rrr*rPr$rrrruangle)r-rrrrrr0rrrrr~r/f_indxrs r2test_amplitude_is_correctz)TestLombscargle.test_amplitude_is_correct<s  ii##G, HHSM KKRUU CIs 3AF ; 266!A#)$ $v - KKc4 (!Q$"1%Aq!{$O uV}-t4 %-00#6r4ctjd}tjd}tjd}tjd }ttt ||||yr rrs r2test_negative_weightz$TestLombscargle.test_negative_weight`sL HHQK HHQK GGAJ771:+j+q!QHr4cgd}gd}tjddd}dtjz|z }t|||ddy) N)ygˈAgˈAg̈Ag͈AgΈAgψAgЈAgшAg҈AgӈAgԈAgՈAgֈAg׈Ag؈AgوAgڈAgۈAg܈Ag݈AgAgAgAg AgAgAgAgAgAgAgAgAgAgAgAgAgAgAgAgAg"AgAgAgAg AgAgAgAg Ag!Ag"Ag#Ag$Ag%Ag&Ag'Ag(Ag)Ag*Ag+AgZcAgTdAgNeAgHfAgBgAg@g@g@gb@g@gH@g@g@g@gd@g@g@gp@g̳@gm@gD@gҧ@g@g@g@gG@g@g@g_@g@g@g@g"@g@g@gM@gn@g@g@g0@g@g@gD@gw@g9@gy@gµ@g6@g@g\@gF@g@gЬ@gk@g@g@gV@g@g@gD@g@gJ@g@g@g@g@g@g3@g@g@g@g@g@gs@g@g:@gb@g@g@gp@g@g@g@gQ@g@g\@g!@g@gj@g@gF@g@g@g@ge@g @g@g@ixrrfT)rr)r(r*rPr)r-rr~periods angular_freqs r2test_list_inputzTestLombscargle.test_list_inputisG > @++c3-255y7* Aq,$$Gr4cd}d}d}d}d}d}d}tjjd}|j|} tjd tj zd tj z|| |k\} |tj || z|zz|z} tjdd |} t| | | d d } | dd ksJy)Nr%rBr'rirrrrrTr"-C6?r#)r-rrrrrr0rrrrr~r/rs r2test_zero_freqzTestLombscargle.test_zero_freqs   ii##G, HHSM KKRUU CIs 3AF ; 266!A#)$ $v - KK3 %Aq!t4HQx$r4ctddDcgc]}|dz c}}tjt|}dtjzgdz}t |||tddDcgc] }|dzdz c}}tjt|}tjdz gdz}t |||ycc}wcc}w)Nrrzr!r%rfr\)rbr(r+rrPr)r-rr~freqss r2test_simple_div_zeroz$TestLombscargle.test_simple_div_zeros "!RL )qQU ) GGCFORUU aAq% $Arl +QqS1W + GGCFOs aAq%  * ,s C.Ccd}d}dtjz}d}d}d}tjj}|j|}tjdtjzdtjz|||k\} |tj || z|zz} tjdd|} tj | } | j} | j}| j}| j}t| | | d | t| | t| |t| |t| |y) Nr%rBr"rrrrrT)rr) r(rPr_ default_rngr*rOrrrr)r-rrrrrr0rrrr~r/rt_orgy_orgf_org weights_orgs r2test_input_mutationz#TestLombscargle.test_input_mutations  BEEk ii##% JJsO KKRUU CIs 3AF ; 266!A#)$ $ KKc4 (,,q/lln Aq!tW= 1e$1e$1e$7K0r4N)rrrrrrrrr r rrr r%r*r,r1r4r7r>rr4r2rrsg&1P6B&'P"-HIB%II/Eb-> &D"7HIFHP >!"%1r4rceZdZejj dZdZdZdZ dZ ejjdddgd Z ejj d Z d Zd Zejj ejjdddgd ZdZdZdZdZdZy)TestSTFTc d}|d5tdddddd|d5tdddddd|d 5ttjd ddddd|d 5ttjdddddd|d5tdddddd|d 5tdddddd|d 5ttjd ddddd|d 5ttjdddddd|d 5tddddddtjd}t |d}|d 5t |tjd ddd|d5t |tjddddd|d5t |dddd|d5t |ddddd|d5t |ddddd|d5t |ddd|d 5t |tjd ddd|d5t |tjddddd|d5t |dddd|d5t |ddddd|d5t |dddddtjtd5t |ddd ddd|d!5t |dd"ddd|d#5t||d$%ddd|d&5t|dd'|d'dd(%ddd|d)5t||d$*dddd+}|d,|d-5t ||.ddd|d,|d-5t ||.dddy#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swY`xYw#1swY.chk_VE s ==59 9r4z"nperseg must be a positive integerrirz#noverlap must be less than nperseg.rgrdzwindow must be 1-D)rfrfz"window must have length of npersegz"noverlap must be less than npersegz&noverlap must be a nonnegative integerr$ir\rfrz>value specified for nperseg is different from length of windowrrirr%z.nfft must be greater than or equal to nperseg.r&rAzInput stft must be at least 2d!zwindow must have length of 256z1NOLA condition failed, STFT may not be invertiblerrr&rz/Must specify differing time and frequency axes! time_axis freq_axisz=Unknown value for mode foo, must be one of: \{'psd', 'stft'\}r])modez'x and y must be equal if mode is 'stft'stftz[Unknown boundary option 'foo', must be one of: \['even', 'odd', 'constant', 'zeros', None\])boundary not_validzParameter scaling=z not in \['spectrum', 'psd'\]!rH) rr(r+rr)rJistftrwarnsrr)r-rCr.zrIs r2test_input_validationzTestSTFT.test_input_validation s :8 9 ' vsA & ' 9 : ' vr2 & ' ( ) / rwwvA . / 8 9 + rwwr{B * +8 9 ' vsA & ' 8 9 ' vr2 & ' ( ) / rwwvA . / 8 9 + rwwr{B * + < = ( vr3 ' ( HHTN GAJ( ) , 2776? + , ,- 5 2772; 4 58 9 " D ! " 9 : 0 C$ / 0 D E ) Ca ( )5 6  !H  ( ) - !BGGFO , - 4 5 6 !BGGBK 5 6 8 9 # !T " # 9 : 1 !S4 0 1 D E * !Sq ) * \\+.78 = !S1V < =E F / !qA . /)* / Q . /= > < QtWagF ; < DE 3 QE 2 3 *'+IJ K % G $ % *'+IJ K & !W % & &K ' ' ' ' / / + + ' ' ' ' / / + + ( ( , , 5 5 " " 0 0 ) )   - - 6 6 # # 1 1 * * = = / / / / < < 3 3  % % & &sBPP$!P19!P>*Q Q&!Q%!Q2Q? !R :"R,R& R3)S S $!S"S'S4%TT6TT(5T5U9UUU)P!$P.1P;>Q QQ"%Q/2Q<?R  RR#&R03R=S  SS$'S14S>T TT%(T25T?U UU&)U2c`gd}|D]%}dj|}tdt||'y)N)rrgrrrgr#rI3rrrrblackmanrHrJr"rr$rr {}, {}, {}Tr])formatrr)r-settingssettingmsgs r2test_check_COLAzTestSTFT.test_check_COLA]s?   BG%,%%w/C z73S A Br4c&gd}|D]%}dj|}tdt||'tjd}d|ddd<|t |t |dzfdg}|D]%}dj|}td t||'y) N)rRrS)rrgr,rT)rIrUrgrWrY)rr%r[)r\rH{r^)r_r&r`)rr'rbTr]r rrf)rr$rF)rcrrr(r+r)r- settings_passrerfw_fail settings_fails r2test_check_NOLAzTestSTFT.test_check_NOLAms % BG%,%%w/C z73S A Bss S[#f+*:;# % CG%,%%w/C  G 4c B Cr4c Ttjjd}|jd}d}d}d}d}t |||||ddd\}}} t |||||dd d \} } t || t tjtj| d zd | y)Nr[r\rBrr r&F)paddedrArKrG)rArIrrfr$ru) r(r_rrarJrrrru) r-rr.rMrrr&r/rDZrrs r2rz"TestSTFT.test_average_all_segmentssii##D) IIdO  q"fgx',t=1aq"fgx)5:B 2q 1 26;r4c tjjd}|jd}d}d}d}d}t |||||\}}} t |j d||||d \} } } t | ||||\} }t | j||||dd \}}t|| t|| t| |t| | ddddddft||ddddfy) Nr[r\rBrr r&)r$r!r!rrur$rE) r(r_rrarJrlrMTr)r-rr.rMrrr&rt1Z1rt2Z2t3x1t4x2s r2test_permute_axeszTestSTFT.test_permute_axessii##D) IIdO !R(; B!))J/VWh " Br2vw9BrttR(a!#%B BBBBq!QzN+Bq!QwK(r4rIrGpsdc `tjjd}gd}|D]\}}}}tj|}d|j |j z} t | |||dd|\} } } t| ||||\} } |d|}t|| |t| | |y) Nr[rrrgrrrrgr#)rIerUrVrr\rrX)r_rr$)rr\rrargF)rr&rrrrrI)rr&rrIr=r] r(r_rr=rasizerJrMr)r-rIrrdrNrr&rr.rDzztrxrrfs r2test_roundtrip_realzTestSTFT.test_roundtrip_realsii##D)-5 0 (FAw ! A399QVV$$AAw#)4$+-HAq"2w"(';FBHBxj)C Ar3 / Ar3 / 0r4c tjjd}tjd}d|ddd<|dt |t |dzfdg}|D]\}}}}|d|d|d|}t |||rJ|tj |} d|j| jz} t| |||dd d \} } } tjtd 5t| |||d \} }dddtj|  dt | sJ|tj| dt | sJ|y#1swY^xYw)Nr[r rrfr)rrr$rr=rgTr)rr&rrrrrKNOLArrr&rrK)r(r_rr+rrr=rarrJrrNrrMallclose)r-rrnrdrrrr&rfrr.rDrrrs r2test_roundtrip_not_nolaz TestSTFT.test_roundtrip_not_nolasjii##D)ss S#f+s6{a/?@(  -5 8 (FAwHBqcG9Bxj9C!&'8< Ac A< ! ASYYqvv&&AAw#)4%,.HAq"k8 =r7X&,t=B =;;q"Wc!f+. 3 3.{{1b#a&k2 7C 72 8 = =s )EE# c tjjd}gd}|D]\}}}}|d|d|}t|||sJ|t |||rJ|tj |}d|j |jz} t| |||ddd\} } } t| |||d\} } |d|}t|| dt|| t| | dt| | y) Nr[))rrrgr)rIrrUri)rr\r)r_rr)rr\rrr=rgTr)rrr]) r(r_rrrr=rarrJrMrr)r-rrdrrrr&rfrr.rDrrrs r2test_roundtrip_nola_not_colaz%TestSTFT.test_roundtrip_nola_not_colasii##D)-5 9 (FAwHBwir(4Cfgx8 =# =8!&'8< Ac A< ! ASYYqvv&&AAw#)4%,.HAq"2w"(49FBHBxj)C Ar'3q6{C 8 Ar'3q6{C 8# 9r4c tjjd}dg}|D]\}}}}tj|}d|j |j z}|j tj}t||||dd\} } } t| |||\} } |d|} t||| t|| | d d t|j| jk(y) Nr[rrgFrr&rrrrrDr=r]r3gh㈵>)r^rr<) r(r_rr=rarastypefloat32rJrMrrrOr-rrdrrrr&rr.rDrrrrfs r2test_roundtrip_float32zTestSTFT.test_roundtrip_float32 sii##D),-,4 ) (FAw ! A399QVV$$A$AAw#)4GHAq"2w"(*FBHBxj)C Aq# . Ar3T E AGGrxx' ( )r4c tjjd}gd}|D]\}}}}tj|}d|j |j zd|j |j zz} t | |||ddd|\} } } t| |||d|\} } |d|d|}t|| | t| | | t5}|jtd t  ddd |\} } } dddt d|\} } |d|d|}t| | t | | y#1swYDxYw) Nr[rrgy$@F)rr&rrrrrArI)rr&rinput_onesidedrIr=r]z9Input data is complex, switching to return_onesided=FalseT) r(r_rr=rarrJrMrrrr)r-rIrrdrrrr&rr.rDrrrrfrs r2test_roundtrip_complexzTestSTFT.test_roundtrip_complex"sii##D)-5 0 (FAw ! A399QVV$$s399QVV+<'<,I,IJ!UVU KA N RWWaZ/a8288A;F(2edE J1 MA1dVUKANggc"Qr'1*o&4C47 S)347 S)ffSXX]SXX]2;ffSXX]SXX]2;<1 ! 45'*3tdE J1 MAr4N)rrrrr thread_unsaferPrgrprr~ parametrizerrrrrrrrrkrrr4r2r@r@ s [[P&P&dB C><(). [[YU(;<0=06 [[8869<)* [[ [[YU(;<),=),V8B9,!2FO4?r4r@ceZdZUdZdZeed<dZeed<dZ eed<dZ eed<e jed <e jed <eed <eed <d Z edefdZedefdZdZdZy)"TestSampledSpectralRepresentationsa Check energy/power relations from `Spectral Analysis` section in the user guide. A 32 sample cosine signal is used to compare the numerical to the expected results stated in :ref:`tutorial_SpectralAnalysis` in file ``doc/source/tutorial/signal.rst`` rzrrCrura_refl_ax_refX_refE_refP_refct|j|j}tj|}d|_|j dz |jz||j <t||_t|j|_ |j|j dzzdz |_ |j dzdz |_ y)z5Create Cosine signal with amplitude a from spectrum. rrfN)r rrur(rrrrrrrtaurr)r-r/rs r2 setup_methodz/TestSampledSpectralRepresentations.setup_methods TVVTVV $ a **Q,/dhh5\ _ XX A -1 ZZ]Q& r4returnc4|j|jzS)zDuration of signal. rrur`s r2rz&TestSampledSpectralRepresentations.tau#svvr4c:d|j|jzz S)z Bin width r!rr`s r2delta_fz*TestSampledSpectralRepresentations.delta_f(sDFFTVVO$$r4ctd|jztj|jdt|j t |jdzz|jt |jjdz|jjdzz}t|j |jz |z|jtd|jdzz |z|jy)z Test energy and power formulas. rfrKrNr!N) rrr(ptprrurtrrrrrr)r-sum_X_ref_squareds r2test_reference_signalz8TestSampledSpectralRepresentations.test_reference_signal-s $** bffTZZ&8sCTZZ1_!55tzzB   2TZZ__a5G GHtvv (994::F$&&!) &77Dr4ct|jd}tt|t j t|j dz|jdzz}}t|j|z}t|j||jz|z |j|jzdz t||j|z |jdz |j|jzt||z dzz}|jt||z dzz}t|jt|z|j t|jt|z|j"t%d|jz |dd}t'|jfddi|\}} t'|jfddi|\}} t j(| j*j,} t| t||z dz| t/| z t| || t/| z t%d t1|jd d |}tt3|jfddi|d| | t/| z tt3|jfddi|d| | t/| z y )zVerify spectral representations of windowed DFT. Furthermore, the scalings of `periodogram` and `welch` are verified. F)symrfr!)rMrrrArIrGrJr;rr%Nr)rrrurtr(rQrrrrrrrrrurrrrsrrrOrrrr) r-rc_ampc_rmsXwX_ESDX_PSDrrDP_magP_psd float_ress r2test_windowed_DFTz4TestSampledSpectralRepresentations.test_windowed_DFT9sF U #3q6{BGGC AFFAI0E,F$Gu A  2dhh</%7dhh9NQR9RS488 u,djjl;466!CU OQ$66R%Z!++ s5z14::> s5z14::>QtvvXa NtzzD:DD5tzzC9CC5HHU[[)44 s2e8}a/iE 6JKu9SZ+?@ <#djj/A < <djjC*CCAF&s5z1 3djjB)BrB1Eu&s5z1 3r4N)rrr__doc__rrP__annotations__rurrrr(ndarrayrpropertyrrrrrr4r2rrs AsKAuOE5CL :: :: L L 'U%%% E$3r4r)2rnumpyr( numpy.testingrrrrrrrr r^scipyr scipy._lib._array_apir scipy.fftr r rrscipy.integrater scipy.signalrrrrrrrrscipy.signal.windowsrscipy.signal._spectral_pyr,scipy.signal.tests._scipy_spectral_test_shimrrJrrMrrrzrrrr@rrr4r2rs NN*133%???%6NOZ'Z'zE0E0N m*m*` 03 3 jM1M1`yyxX3X3r4