Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ jobs:
strategy:
fail-fast: false
matrix:
elixir: ["1.18.0"]
otp: ["27.0"]
elixir: ["1.18.4"]
otp: ["27.3"]
env:
MIX_ENV: test
steps:
Expand All @@ -35,15 +35,15 @@ jobs:
- name: Check formatting
run: mix format --check-formatted
- name: Run tests
run: mix test
run: mix test --warnings-as-errors
win:
name: Windows
runs-on: windows-latest
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
elixir: ["1.18.0"]
otp: ["27.0"]
elixir: ["1.18.4"]
otp: ["27.3"]
env:
MIX_ENV: test
steps:
Expand All @@ -70,4 +70,4 @@ jobs:
- name: Check formatting
run: mix format --check-formatted
- name: Run tests
run: mix test
run: mix test --warnings-as-errors
28 changes: 14 additions & 14 deletions lib/nx_signal.ex
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ defmodule NxSignal do
iex> t
#Nx.Tensor<
f32[frames: 3]
[0.0024999999441206455, 0.004999999888241291, 0.007499999832361937]
[0.0025, 0.005, 0.0075]
>
iex> f
#Nx.Tensor<
Expand Down Expand Up @@ -147,7 +147,7 @@ defmodule NxSignal do
iex> NxSignal.fft_frequencies(1.6e4, fft_length: 10)
#Nx.Tensor<
f32[frequencies: 10]
[0.0, 1.6e3, 3.2e3, 4.8e3, 6.4e3, 8.0e3, 9.6e3, 1.12e4, 1.28e4, 1.44e4]
[0.0, 1.6e3, 3.2e3, 4.8e3, 6.4e3, 8e3, 9.6e3, 1.12e4, 1.28e4, 1.44e4]
>
"""
@doc type: :time_frequency
Expand Down Expand Up @@ -385,11 +385,11 @@ defmodule NxSignal do
#Nx.Tensor<
f32[mels: 5][frequencies: 10]
[
[0.0, 8.129207999445498e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 9.972016559913754e-4, 2.1870288765057921e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 9.510891977697611e-4, 4.150509194005281e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 4.035891906823963e-4, 5.276656011119485e-4, 2.574124082457274e-4, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 7.329034269787371e-5, 2.342205698369071e-4, 3.8295105332508683e-4, 2.8712040511891246e-4, 1.9128978601656854e-4, 9.545915963826701e-5]
[0.0, 8.129208e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 9.972017e-4, 2.1870289e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 9.510892e-4, 4.1505092e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 4.035892e-4, 5.276656e-4, 2.574124e-4, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 7.329034e-5, 2.3422057e-4, 3.8295105e-4, 2.871204e-4, 1.9128979e-4, 9.545916e-5]
]
>
"""
Expand Down Expand Up @@ -473,12 +473,12 @@ defmodule NxSignal do
#Nx.Tensor<
f32[frames: 6][mel: 4]
[
[0.2900530695915222, 0.17422175407409668, 0.18422472476959229, 0.09807997941970825],
[0.6093881130218506, 0.5647397041320801, 0.4353824257850647, 0.08635270595550537],
[0.7584103345870972, 0.7085014581680298, 0.5636920928955078, 0.179118812084198],
[0.8461772203445435, 0.7952491044998169, 0.6470762491226196, 0.2520409822463989],
[0.908548891544342, 0.8572604656219482, 0.7078656554222107, 0.3086767792701721],
[0.908548891544342, 0.8572604656219482, 0.7078656554222107, 0.3086767792701721]
[0.29005307, 0.17422175, 0.18422472, 0.09807998],
[0.6093881, 0.5647397, 0.43538243, 0.086352706],
[0.75841033, 0.70850146, 0.5636921, 0.17911881],
[0.8461772, 0.7952491, 0.64707625, 0.25204098],
[0.9085489, 0.85726047, 0.70786566, 0.30867678],
[0.9085489, 0.85726047, 0.70786566, 0.30867678]
]
>
"""
Expand Down Expand Up @@ -575,7 +575,7 @@ defmodule NxSignal do
iex> Nx.as_type(result, Nx.type(t))
#Nx.Tensor<
f32[8]
[0.0, 10.0, 0.9999999403953552, -2.1900146407460852e-7, 10.0, 10.0, 2.000000238418579, 20.0]
[0.0, 10.0, 0.99999994, -2.1900146e-7, 10.0, 10.0, 2.0000002, 20.0]
>
"""
@doc type: :time_frequency
Expand Down
2 changes: 1 addition & 1 deletion lib/nx_signal/convolution.ex
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ defmodule NxSignal.Convolution do
iex> NxSignal.Convolution.fftconvolve(Nx.tensor([1,2,3]), Nx.tensor([3,4,5]))
#Nx.Tensor<
f32[5]
[3.0000007152557373, 10.0, 22.0, 22.0, 15.0]
[3.0000007, 10.0, 22.0, 22.0, 15.0]
>
"""
deftransform fftconvolve(in1, in2, opts \\ []) do
Expand Down
32 changes: 16 additions & 16 deletions lib/nx_signal/waveforms.ex
Original file line number Diff line number Diff line change
Expand Up @@ -126,35 +126,35 @@ defmodule NxSignal.Waveforms do
iex> pulse.envelope
#Nx.Tensor<
f32[4]
[1.0, 0.2044311761856079, 0.0017465798882767558, 6.236266472114949e-7]
[1.0, 0.20443118, 0.0017465799, 6.2362665e-7]
>
iex> pulse.in_phase
#Nx.Tensor<
f32[4]
[1.0, -0.10221562534570694, -8.73289187438786e-4, 6.236266472114949e-7]
[1.0, -0.102215625, -8.732892e-4, 6.2362665e-7]
>
iex> pulse.quadrature
#Nx.Tensor<
f32[4]
[0.0, 0.17704255878925323, -0.001512582995928824, 4.3615339204855497e-13]
[0.0, 0.17704256, -0.001512583, 4.361534e-13]
>

iex> t = Nx.linspace(0, 1, n: 4)
iex> pulse = NxSignal.Waveforms.gaussian_pulse(t, center_frequency: 4, bandwidth: 0.25)
iex> pulse.envelope
#Nx.Tensor<
f32[4]
[1.0, 0.6724140644073486, 0.2044311761856079, 0.028101608157157898]
[1.0, 0.67241406, 0.20443118, 0.028101608]
>
iex> pulse.in_phase
#Nx.Tensor<
f32[4]
[1.0, -0.33620715141296387, -0.10221550613641739, 0.028101608157157898]
[1.0, -0.33620715, -0.102215506, 0.028101608]
>
iex> pulse.quadrature
#Nx.Tensor<
f32[4]
[0.0, 0.5823275446891785, -0.1770426332950592, 1.965376483781256e-8]
[0.0, 0.58232754, -0.17704263, 1.9653765e-8]
>
"""
@doc type: :waveforms
Expand Down Expand Up @@ -222,27 +222,27 @@ defmodule NxSignal.Waveforms do
iex> NxSignal.Waveforms.chirp(t, 10, 10, 1, method: :linear)
#Nx.Tensor<
f32[5]
[1.0, 0.38268470764160156, 3.795033308051643e-6, -0.382683128118515, 1.0]
[1.0, 0.3826847, 3.7950333e-6, -0.38268313, 1.0]
>
iex> NxSignal.Waveforms.chirp(t, 10, 10, 1, method: :quadratic)
#Nx.Tensor<
f32[5]
[1.0, -0.9807833433151245, -9.958475288840418e-8, -0.5555803775787354, 1.0]
[1.0, -0.98078334, -9.958475e-8, -0.5555804, 1.0]
>
iex> NxSignal.Waveforms.chirp(t, 10, 10, 1, method: :quadratic, vertex_zero: false)
#Nx.Tensor<
f32[5]
[1.0, 0.5555850863456726, -7.490481493732659e-6, 0.98078453540802, 1.0]
[1.0, 0.5555851, -7.4904815e-6, 0.98078454, 1.0]
>
iex> NxSignal.Waveforms.chirp(t, 10, 10, 1, method: :hyperbolic)
#Nx.Tensor<
f32[5]
[1.0, 0.8229323029518127, 0.9335360527038574, 0.013466471806168556, -0.8630329966545105]
[1.0, 0.8229323, 0.93353605, 0.013466472, -0.863033]
>
iex> NxSignal.Waveforms.chirp(t, 10, 10, 1, method: :logarithmic)
#Nx.Tensor<
f32[5]
[1.0, 0.9989554286003113, -0.33371755480766296, -0.2700612545013428, 0.8558982610702515]
[1.0, 0.9989554, -0.33371755, -0.27006125, 0.85589826]
>
"""
@doc type: :waveforms
Expand Down Expand Up @@ -321,22 +321,22 @@ defmodule NxSignal.Waveforms do
iex> NxSignal.Waveforms.polynomial_sweep(t, Nx.tensor([2, 0, 1]))
#Nx.Tensor<
f32[5]
[1.0, 0.866027295589447, -0.500006377696991, 1.7942518752533942e-5, -0.49998921155929565]
[1.0, 0.8660273, -0.5000064, 1.7942519e-5, -0.4999892]
>
iex> NxSignal.Waveforms.polynomial_sweep(t, Nx.tensor([2, 0, 1]), phi: :math.pi() / 2)
#Nx.Tensor<
f32[5]
[-4.371138828673793e-8, 0.499999463558197, -0.8660194873809814, 1.0, 0.8660338521003723]
[-4.371139e-8, 0.49999946, -0.8660195, 1.0, 0.86603385]
>
iex> NxSignal.Waveforms.polynomial_sweep(t, Nx.tensor([1, 0]))
#Nx.Tensor<
f32[5]
[1.0, 0.7071065306663513, -1.0, 0.7071084976196289, 1.0]
[1.0, 0.70710653, -1.0, 0.7071085, 1.0]
>
iex> NxSignal.Waveforms.polynomial_sweep(t, Nx.tensor([1, 0]), phi: 180, phi_unit: :degrees)
#Nx.Tensor<
f32[5]
[-1.0, -0.7071069478988647, 1.0, -0.7071129679679871, -1.0]
[-1.0, -0.70710695, 1.0, -0.70711297, -1.0]
>
"""
@doc type: :waveforms
Expand Down Expand Up @@ -444,7 +444,7 @@ defmodule NxSignal.Waveforms do
iex> NxSignal.Waveforms.sinc(Nx.tensor([0, 0.25, 1]))
#Nx.Tensor<
f32[3]
[1.0, 0.9003162980079651, -2.7827534054836178e-8]
[1.0, 0.9003163, -2.7827534e-8]
>
"""
@doc type: :waveforms
Expand Down
20 changes: 10 additions & 10 deletions lib/nx_signal/windows.ex
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ defmodule NxSignal.Windows do
iex> NxSignal.Windows.bartlett(3)
#Nx.Tensor<
f32[3]
[0.0, 0.6666666865348816, 0.6666666269302368]
[0.0, 0.6666667, 0.6666666]
>
"""
@doc type: :windowing
Expand Down Expand Up @@ -141,19 +141,19 @@ defmodule NxSignal.Windows do
iex> NxSignal.Windows.blackman(5, is_periodic: false)
#Nx.Tensor<
f32[5]
[-1.4901161193847656e-8, 0.3400000333786011, 0.9999999403953552, 0.3400000333786011, -1.4901161193847656e-8]
[-1.4901161e-8, 0.34000003, 0.99999994, 0.34000003, -1.4901161e-8]
>

iex> NxSignal.Windows.blackman(5, is_periodic: true)
#Nx.Tensor<
f32[5]
[-1.4901161193847656e-8, 0.20077012479305267, 0.8492299318313599, 0.8492299318313599, 0.20077012479305267]
[-1.4901161e-8, 0.20077012, 0.84922993, 0.84922993, 0.20077012]
>

iex> NxSignal.Windows.blackman(6, is_periodic: true, type: {:f, 32})
#Nx.Tensor<
f32[6]
[-1.4901161193847656e-8, 0.12999999523162842, 0.6299999952316284, 0.9999999403953552, 0.6299999952316284, 0.12999999523162842]
[-1.4901161e-8, 0.13, 0.63, 0.99999994, 0.63, 0.13]
>
"""
@doc type: :windowing
Expand Down Expand Up @@ -213,12 +213,12 @@ defmodule NxSignal.Windows do
iex> NxSignal.Windows.hamming(5, is_periodic: true)
#Nx.Tensor<
f32[5]
[0.08000001311302185, 0.39785221219062805, 0.9121478796005249, 0.9121478199958801, 0.3978521227836609]
[0.08000001, 0.3978522, 0.9121479, 0.9121478, 0.39785212]
>
iex> NxSignal.Windows.hamming(5, is_periodic: false)
#Nx.Tensor<
f32[5]
[0.08000001311302185, 0.5400000214576721, 1.0, 0.5400000214576721, 0.08000001311302185]
[0.08000001, 0.54, 1.0, 0.54, 0.08000001]
>
"""
@doc type: :windowing
Expand Down Expand Up @@ -271,7 +271,7 @@ defmodule NxSignal.Windows do
iex> NxSignal.Windows.hann(5, is_periodic: true)
#Nx.Tensor<
f32[5]
[0.0, 0.34549152851104736, 0.9045085310935974, 0.9045084714889526, 0.3454914391040802]
[0.0, 0.34549153, 0.90450853, 0.9045085, 0.34549144]
>
"""
@doc type: :windowing
Expand Down Expand Up @@ -322,19 +322,19 @@ defmodule NxSignal.Windows do
iex> NxSignal.Windows.kaiser(4, beta: 12.0, is_periodic: true)
#Nx.Tensor<
f32[4]
[5.2776191296288744e-5, 0.21566666662693024, 1.0, 0.21566666662693024]
[5.277619e-5, 0.21566667, 1.0, 0.21566667]
>

iex> NxSignal.Windows.kaiser(5, beta: 12.0, is_periodic: true)
#Nx.Tensor<
f32[5]
[5.2776191296288744e-5, 0.10171464085578918, 0.7929369807243347, 0.7929369807243347, 0.10171464085578918]
[5.277619e-5, 0.10171464, 0.792937, 0.792937, 0.10171464]
>

iex> NxSignal.Windows.kaiser(4, beta: 12.0, is_periodic: false)
#Nx.Tensor<
f32[4]
[5.2776191296288744e-5, 0.5188394784927368, 0.5188390612602234, 5.2776191296288744e-5]
[5.277619e-5, 0.5188395, 0.51883906, 5.277619e-5]
>
"""
@doc type: :windowing
Expand Down
4 changes: 2 additions & 2 deletions mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ defmodule NxSignal.MixProject do
use Mix.Project

@source_url "https://github.com/elixir-nx/nx_signal"
@version "0.2.0"
@version "0.3.0"

def project do
[
Expand Down Expand Up @@ -57,7 +57,7 @@ defmodule NxSignal.MixProject do
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:nx, github: "elixir-nx/nx", sparse: "nx"},
{:nx, "~> 0.11"},
{:ex_doc, "~> 0.29", only: :docs}
]
end
Expand Down
2 changes: 1 addition & 1 deletion mix.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"makeup_elixir": {:hex, :makeup_elixir, "0.16.0", "f8c570a0d33f8039513fbccaf7108c5d750f47d8defd44088371191b76492b0b", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "28b2cbdc13960a46ae9a8858c4bebdec3c9a6d7b4b9e7f4ed1502f8159f338e7"},
"makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"},
"nimble_parsec": {:hex, :nimble_parsec, "1.2.3", "244836e6e3f1200c7f30cb56733fd808744eca61fd182f731eac4af635cc6d0b", [:mix], [], "hexpm", "c8d789e39b9131acf7b99291e93dae60ab48ef14a7ee9d58c6964f59efb570b0"},
"nx": {:git, "https://github.com/elixir-nx/nx.git", "c6fc98df9ff36b27727c800524b36e92f56dd7ba", [sparse: "nx"]},
"nx": {:hex, :nx, "0.11.0", "d37723dbd6cfa274a5def6d6664f5680c32e2eb8a1ce25ec6d91751967fa0abf", [:mix], [{:complex, "~> 0.6", [hex: :complex, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "36157b21239aeb251d6cbac23eb0eb3495a5e1e0cbc2e6df16afd2ede1575205"},
"telemetry": {:hex, :telemetry, "1.3.0", "fedebbae410d715cf8e7062c96a1ef32ec22e764197f70cda73d82778d61e7a2", [:rebar3], [], "hexpm", "7015fc8919dbe63764f4b4b87a95b7c0996bd539e0d499be6ec9d7f3875b79e6"},
"xla": {:hex, :xla, "0.4.3", "cf6201aaa44d990298996156a83a16b9a87c5fbb257758dbf4c3e83c5e1c4b96", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "caae164b56dcaec6fbcabcd7dea14303afde07623b0cfa4a3cd2576b923105f5"},
}