{"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/time-series-diffusion-in-the-frequency-domain","title":"Time Series Diffusion in the Frequency Domain","arxiv_id":"2402.05933","date":"2024-02-08","proceeding":null,"authors":["Jonathan Crabbé","Nicolas Huynh","Jan Stanczuk","Mihaela van der Schaar"],"abstract":"Fourier analysis has been an instrumental tool in the development of signal processing. This leads us to wonder whether this framework could similarly benefit generative modelling. In this paper, we explore this question through the scope of time series diffusion models. More specifically, we analyze whether representing time series in the frequency domain is a useful inductive bias for score-based diffusion models. By starting from the canonical SDE formulation of diffusion in the time domain, we show that a dual diffusion process occurs in the frequency domain with an important nuance: Brownian motions are replaced by what we call mirrored Brownian motions, characterized by mirror symmetries among their components. Building on this insight, we show how to adapt the denoising score matching approach to implement diffusion models in the frequency domain. This results in frequency diffusion models, which we compare to canonical time diffusion models. Our empirical evaluation on real-world datasets, covering various domains like healthcare and finance, shows that frequency diffusion models better capture the training distribution than time diffusion models. We explain this observation by showing that time series from these datasets tend to be more localized in the frequency domain than in the time domain, which makes them easier to model in the former case. All our observations point towards impactful synergies between Fourier analysis and diffusion models.","url_abs":"https://arxiv.org/abs/2402.05933v1","url_pdf":"https://arxiv.org/pdf/2402.05933v1.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":"time-series-diffusion-in-the-frequency-domain","repo_url":"https://github.com/jonathancrabbe/fourierdiffusion","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"inductive-bias","task_name":"Inductive Bias"},{"task_slug":"time-series-1","task_name":"Time Series"}],"methods":[{"method_slug":"denoising-score-matching","method_name":"Denoising Score Matching"},{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2402.05933","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.05933"}},"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/jonathancrabbe/fourierdiffusion","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":5},"by_repo_kind":{"official":{"samples":5,"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":0,"samples":[{"code_sha256_prefix":"bf025271edf6bc86","entry":"collate_batch","repo":"jonathancrabbe/fourierdiffusion","repo_kind":"official","path":"src/fdiff/utils/dataclasses.py","file_url":"https://github.com/jonathancrabbe/fourierdiffusion/blob/HEAD/src/fdiff/utils/dataclasses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bf025271edf6bc86"}},{"code_sha256_prefix":"2821a8fe8a3ba092","entry":"dft","repo":"jonathancrabbe/fourierdiffusion","repo_kind":"official","path":"src/fdiff/utils/fourier.py","file_url":"https://github.com/jonathancrabbe/fourierdiffusion/blob/HEAD/src/fdiff/utils/fourier.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2821a8fe8a3ba092"}},{"code_sha256_prefix":"b7cb25be208cdd38","entry":"flatten_config","repo":"jonathancrabbe/fourierdiffusion","repo_kind":"official","path":"src/fdiff/utils/extraction.py","file_url":"https://github.com/jonathancrabbe/fourierdiffusion/blob/HEAD/src/fdiff/utils/extraction.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b7cb25be208cdd38"}},{"code_sha256_prefix":"7ad46eda17953369","entry":"idft","repo":"jonathancrabbe/fourierdiffusion","repo_kind":"official","path":"src/fdiff/utils/fourier.py","file_url":"https://github.com/jonathancrabbe/fourierdiffusion/blob/HEAD/src/fdiff/utils/fourier.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7ad46eda17953369"}},{"code_sha256_prefix":"190ed88b2229ba56","entry":"spectral_density","repo":"jonathancrabbe/fourierdiffusion","repo_kind":"official","path":"src/fdiff/utils/fourier.py","file_url":"https://github.com/jonathancrabbe/fourierdiffusion/blob/HEAD/src/fdiff/utils/fourier.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"190ed88b2229ba56"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}