{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/topological-signal-processing-over-simplicial","title":"Topological Signal Processing over Simplicial Complexes","arxiv_id":"1907.11577","date":"2019-07-26","proceeding":null,"authors":["Sergio Barbarossa","Stefania Sardellitti"],"abstract":"The goal of this paper is to establish the fundamental tools to analyze signals defined over a topological space, i.e. a set of points along with a set of neighborhood relations. This setup does not require the definition of a metric and then it is especially useful to deal with signals defined over non-metric spaces. We focus on signals defined over simplicial complexes. Graph Signal Processing (GSP) represents a very simple case of Topological Signal Processing (TSP), referring to the situation where the signals are associated only with the vertices of a graph. We are interested in the most general case, where the signals are associated with vertices, edges and higher order complexes. After reviewing the basic principles of algebraic topology, we show how to build unitary bases to represent signals defined over sets of increasing order, giving rise to a spectral simplicial complex theory. Then we derive a sampling theory for signals of any order and emphasize the interplay between signals of different order. After having established the analysis tools, we propose a method to infer the topology of a simplicial complex from data. We conclude with applications to real edge signals to illustrate the benefits of the proposed methodologies.","url_abs":"https://arxiv.org/abs/1907.11577v1","url_pdf":"https://arxiv.org/pdf/1907.11577v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"topological-signal-processing-over-simplicial","repo_url":"https://github.com/stefaniaebli/dmt-signal-processing","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1907.11577","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1907.11577"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/stefaniaebli/dmt-signal-processing","reach":null}],"summary":{"ran_draft_wrong":3,"ran_honours":1,"ran_violates":1,"unverified":1},"by_repo_kind":{"listed":{"samples":6,"ran":5,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":6,"samples":[{"code_sha256_prefix":"09577becc9b6cb7c","entry":"build_laplacians","repo":"stefaniaebli/dmt-signal-processing","repo_kind":"listed","path":"code/dmtsignal.py","file_url":"https://github.com/stefaniaebli/dmt-signal-processing/blob/HEAD/code/dmtsignal.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"09577becc9b6cb7c"}},{"code_sha256_prefix":"89a17fa3fa522699","entry":"build_up_down_laplacians","repo":"stefaniaebli/dmt-signal-processing","repo_kind":"listed","path":"code/dmtsignal.py","file_url":"https://github.com/stefaniaebli/dmt-signal-processing/blob/HEAD/code/dmtsignal.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"89a17fa3fa522699"}},{"code_sha256_prefix":"9b5b9b8643fb99a9","entry":"get_positions","repo":"stefaniaebli/dmt-signal-processing","repo_kind":"listed","path":"code/dmtvisual.py","file_url":"https://github.com/stefaniaebli/dmt-signal-processing/blob/HEAD/code/dmtvisual.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9b5b9b8643fb99a9"}},{"code_sha256_prefix":"568c7bbcac188117","entry":"plot_nodes","repo":"stefaniaebli/dmt-signal-processing","repo_kind":"listed","path":"code/dmtvisual.py","file_url":"https://github.com/stefaniaebli/dmt-signal-processing/blob/HEAD/code/dmtvisual.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"568c7bbcac188117"}},{"code_sha256_prefix":"46c7ec416e0ca8d0","entry":"value2color","repo":"stefaniaebli/dmt-signal-processing","repo_kind":"listed","path":"code/dmtvisual.py","file_url":"https://github.com/stefaniaebli/dmt-signal-processing/blob/HEAD/code/dmtvisual.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"46c7ec416e0ca8d0"}},{"code_sha256_prefix":"cf32f692deaf2d7f","entry":"extract_simplices","repo":"stefaniaebli/dmt-signal-processing","repo_kind":"listed","path":"code/dmtsignal.py","file_url":"https://github.com/stefaniaebli/dmt-signal-processing/blob/HEAD/code/dmtsignal.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cf32f692deaf2d7f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}