{"id":25969387,"url":"https://github.com/ma-laforge/rsdeltasigmaport.jl","last_synced_at":"2025-03-04T22:48:03.053Z","repository":{"id":47645388,"uuid":"350807711","full_name":"ma-laforge/RSDeltaSigmaPort.jl","owner":"ma-laforge","description":"Port of Richard Schreier's Delta Sigma Toolbox","archived":false,"fork":false,"pushed_at":"2023-07-02T16:53:12.000Z","size":1195,"stargazers_count":5,"open_issues_count":9,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-20T21:48:55.930Z","etag":null,"topics":["adc","analog-to-digital-converter","audio-processing","delta-sigma","dsp","eda","signal-processing","telecommunications"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ma-laforge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-23T17:56:22.000Z","updated_at":"2024-10-21T17:56:16.000Z","dependencies_parsed_at":"2022-09-17T00:41:47.690Z","dependency_job_id":null,"html_url":"https://github.com/ma-laforge/RSDeltaSigmaPort.jl","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ma-laforge%2FRSDeltaSigmaPort.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ma-laforge%2FRSDeltaSigmaPort.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ma-laforge%2FRSDeltaSigmaPort.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ma-laforge%2FRSDeltaSigmaPort.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ma-laforge","download_url":"https://codeload.github.com/ma-laforge/RSDeltaSigmaPort.jl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241935238,"owners_count":20044826,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adc","analog-to-digital-converter","audio-processing","delta-sigma","dsp","eda","signal-processing","telecommunications"],"created_at":"2025-03-04T22:48:02.366Z","updated_at":"2025-03-04T22:48:03.047Z","avatar_url":"https://github.com/ma-laforge.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Reference-style links to make tables \u0026 lists more readable --\u003e\n[Gallery]: \u003chttps://github.com/ma-laforge/FileRepo/blob/master/RSDeltaSigmaPort/notebook\u003e\n[CMDimDataJL]: \u003chttps://github.com/ma-laforge/CMDimData.jl\u003e\n[InspectDRJL]: \u003chttps://github.com/ma-laforge/InspectDR.jl\u003e\n\n\n# RSDeltaSigmaPort.jl: Port of Richard Schreier's Delta Sigma Toolbox\u0026sup1;\n**Galleries:** [:art: Sample notebooks (w/outputs)][Gallery]\n\n\u0026sup1;Richard Schreier (2021). Delta Sigma Toolbox (\u003chttps://www.mathworks.com/matlabcentral/fileexchange/19-delta-sigma-toolbox\u003e), MATLAB Central File Exchange. Retrieved March 20, 2021.\n\n[![Build Status](https://github.com/ma-laforge/RSDeltaSigmaPort.jl/workflows/CI/badge.svg)](https://github.com/ma-laforge/RSDeltaSigmaPort.jl/actions?query=workflow%3ACI)\n\n### :warning: Progress report\n***INTERMEDIATE STAGE OF PORT***: A significant portion of the Delta Sigma toolbox has been ported.\n\nThe following high-level functionnality has (at least partially) been ported:\n - `simulateDSM`, `simulateMS`, `simulateSNR`, `simulateHBF`\n - `synthesizeNTF`, `realizeNTF`, `realizeNTF_ct`\n - `calculateSNR`, `peakSNR`, `predictSNR`\n - `calculateTF`, `evalTF`, `evalTFP`\n - `stuffABCD`, `scaleABCD`, `mapABCD`, `partitionABCD`\n - `mapCtoD`, `mapQtoR`\n - `exampleHBF`\n - `pulse`, `impL1`\n - `lollipop`, `logsmooth`\n - `documentNTF`, `plotExampleSpectrum`\n\nAnd demos:\n - `dsdemo1`, ..., `dsdemo6`, `dsexample1`, `dsexample2`, `demoLPandBP`\n\n## Table of contents\n\n 1. [Description](#Description)\n 1. Sample usage\n    1. [IJupyter notebooks (`notebook/`)](notebook/)\n    1. [IJupyter notebooks (with output) \u0026#x21AA;][Gallery]\n    1. [Sample directory w/plain `.jl` files (`sample/`)](sample/)\n 1. [Plotting](#Plotting)\n 1. [Installation](#Installation)\n 1. [Running sample scripts](#SampleScripts)\n 1. [Function (API) help](#APIHelp)\n 1. [Julia tips](doc/juliatips.md)\n    1. [Useful functions](doc/juliatips.md#FunctionLibraries)\n    1. [`linspace()` \u0026 `logspace()`](doc/juliatips.md#LinLogSpace)\n 1. [Known limitations](#KnownLimitations)\n    1. [TODO](doc/todo.md)\n\n\u003ca name=\"Description\"\u003e\u003c/a\u003e\n## Description\nAs its name suggests, `RSDeltaSigmaPort.jl` is a Julia port of Richard Schreier's Delta Sigma Toolbox.\n\n### Module name\nNote that this module is not named something like `DeltaSigmaModulators.jl`, thus allowing someone else to appropriate the package name later on. Hopefully, `RSDeltaSigmaPort` will eventually be superseded by a more generically named package that is better integrated with Julia's ecosystem than this simple port.\n\n### Design decisions\nThis module tries to remain true to the original Delta Sigma Toolbox while conforming to some Julia patterns, including:\n - Multiple dispatch (make function calls simpler to write).\n - ***Not*** writing each function definition in its own, separate file.\n - Using keyword arguments when deemed appropriate.\n - Returning `NamedTuple`s instead of simple arrays when multiple values are returned.\n - ...\n\nProgressively replacing modulator parameters in function calls with `RealDSM` and `QuadratureDSM` objects:\n - Simplifies function interface for user.\n - Centralizes defaults for parameter values on construction of `RealDSM` and `QuadratureDSM`.\n - Looking to keep \"original\" function interface (with individual modulator parameters) available for accustomed users.\n - Looking to remove default values from said interface to avoid unexpected bugs from inconsistent defaults.\n - Might change with time (not sure if certain parameters, like `opt`, should migrate to a NTF structure or something).\n\n\u003ca name=\"Plotting\"\u003e\u003c/a\u003e\n## Plotting\n`RSDeltaSigmaPort.jl` uses [CMDimData.jl/EasyPlot][CMDimDataJL] to handle plotting.\nFor examples on how to generate ***new/customized*** plots, see the built-in\nfunctions found in `plot_*.jl` files in the source directory:\n - [`src/`](src/)\n\n\u003ca name=\"Installation\"\u003e\u003c/a\u003e\n## Installation\nThe `RSDeltaSigmaPort.jl` toolbox is written using the Julia programming\nlanguage. Unless you already have Julia installed, you will need to first\ninstall the base language. Simply download \\\u0026 install the most recent version\nof Julia from Julia's official \"downloads\" page.\n\n**Julia's official \"downloads\" page:**\n - \u003chttps://julialang.org/downloads/\u003e\n\nStep 2 is to install the `RSDeltaSigmaPort.jl` package itself. Since\n`RSDeltaSigmaPort.jl` is registered with Julia's **General** registry, you can\nautomatically download \u0026 install it from Julia's built-in package manager.\nSimply launch Julia, and run the following from the command prompt:\n\n```julia-repl\njulia\u003e ]\npkg\u003e add RSDeltaSigmaPort\n```\n\n\u003ca name=\"SampleScripts\"\u003e\u003c/a\u003e\n## Running sample scripts\nSample scripts in the `sample/` subdirectory can be run using `include()`.\n\nFor convenience, the `@runsample` macro automatically locates the script path\nand executes `include()` for you:\n\n```julia-repl\njulia\u003e using RSDeltaSigmaPort #Will take a while to load, compile, etc...\njulia\u003e import RSDeltaSigmaPort: @runsample\n\njulia\u003e @runsample(\"dsdemo1.jl\")\njulia\u003e @runsample(\"dsdemo2.jl\")\njulia\u003e @runsample(\"dsdemo3.jl\")\njulia\u003e @runsample(\"dsdemo4_audio.jl\")\njulia\u003e @runsample(\"dsdemo5.jl\")\njulia\u003e @runsample(\"dsdemo6.jl\")\njulia\u003e @runsample(\"dsexample1.jl\")\njulia\u003e @runsample(\"dsexample2.jl\")\njulia\u003e @runsample(\"demoLPandBP.jl\")\n```\n\n\u003ca name=\"APIHelp\"\u003e\u003c/a\u003e\n## Function (API) help\nTyping `?RSDeltaSigmaPort` in Julia's command line gives you a list of available functions:\n```julia-repl\njulia\u003e ?\nhelp?\u003e RSDeltaSigmaPort\n```\n\nInformation on individual functions can be obtained in a similar fashion. Example:\n```julia-repl\njulia\u003e ?\nhelp?\u003e simulateDSM\n```\n\n### Original documentation\nRichard Schreier's original documentation is available here:\n - [`original_source/delsig/OnePageStory.pdf`](original_source/delsig/OnePageStory.pdf)\n - [`original_source/delsig/DSToolbox.pdf`](original_source/delsig/DSToolbox.pdf)\n\n\u003ca name=\"KnownLimitations\"\u003e\u003c/a\u003e\n## Known limitations\nFunctions that are not supported:\n - `printmif()`\n\n### [TODO](doc/todo.md)\n\n### Compatibility\n\nExtensive compatibility testing of `RSDeltaSigmaPort.jl` has not been performed.\nThe module has been tested using the following environment(s):\n\n- Linux / Julia-1.6.0\n\n## :warning: Disclaimer\n\n - ***INTERMEDIATE STAGE OF PORT***: A significant portion of the Delta Sigma toolbox has been ported.\n - Jupyter [notebooks](notebook/) might be slightly broken/out of date. If so,\n   see their counterparts in the [`sample/`](sample/) directory for a more\n   regularly maintained example.\n - The `RSDeltaSigmaPort.jl` module is not yet mature.  Expect significant changes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fma-laforge%2Frsdeltasigmaport.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fma-laforge%2Frsdeltasigmaport.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fma-laforge%2Frsdeltasigmaport.jl/lists"}