{"id":30174192,"url":"https://github.com/kmoraza/am_simulation_software","last_synced_at":"2025-08-12T00:44:19.678Z","repository":{"id":296911866,"uuid":"994939668","full_name":"KMORaza/AM_Simulation_Software","owner":"KMORaza","description":"Software zur Simulation der Amplitudenmodulation (Amplitude Modulation Simulation Software)","archived":false,"fork":false,"pushed_at":"2025-06-03T10:00:33.000Z","size":5727,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-03T10:02:19.951Z","etag":null,"topics":["amplitude-modulation","communication-engineering","communication-systems","physics","simulation","simulation-software","simulation-softwares","simulations","simulator","simulators"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KMORaza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-02T18:06:04.000Z","updated_at":"2025-06-03T10:00:35.000Z","dependencies_parsed_at":"2025-06-03T10:07:11.647Z","dependency_job_id":"8d2c227a-2c49-4a7f-97d4-66949d53f050","html_url":"https://github.com/KMORaza/AM_Simulation_Software","commit_stats":null,"previous_names":["kmoraza/am_simulation_software"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/KMORaza/AM_Simulation_Software","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KMORaza%2FAM_Simulation_Software","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KMORaza%2FAM_Simulation_Software/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KMORaza%2FAM_Simulation_Software/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KMORaza%2FAM_Simulation_Software/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KMORaza","download_url":"https://codeload.github.com/KMORaza/AM_Simulation_Software/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KMORaza%2FAM_Simulation_Software/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269981694,"owners_count":24507281,"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","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["amplitude-modulation","communication-engineering","communication-systems","physics","simulation","simulation-software","simulation-softwares","simulations","simulator","simulators"],"created_at":"2025-08-12T00:44:18.756Z","updated_at":"2025-08-12T00:44:19.634Z","avatar_url":"https://github.com/KMORaza.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Software zur Simulation der Amplitudenmodulation (Amplitude Modulation Simulation Software)\n\nSoftware zur Simulation der Amplitudenmodulation, geschrieben in Java (This software simulates amplitude modulation and is written in Java)\n\n## Functioning Logic\n\nThe software simulates AM signals, processes them through modulation, demodulation, and analysis, and supports time- and frequency-domain operations.\n\n- **Signal Representation**:\n  - Stores time array, message, carrier, modulated, demodulated signals, and frequency spectrum.\n  - Uses high sampling rate (e.g., 44.1 kHz) for digital accuracy.\n  - Manages data for all AM variants.\n- **Signal Processing**:\n  - Executes modulation, demodulation, noise addition, and spectrum computation.\n  - Dynamically updates signals based on parameters (e.g., message frequency fm, carrier frequency fc, modulation index m).\n  - Applies digital filters for demodulation and variant-specific processing.\n- **Visualization**:\n  - Plots time-domain signals (message, carrier, modulated, demodulated).\n  - Computes frequency-domain spectra via Fast Fourier Transform (FFT).\n  - Supports real-time signal animation and dynamic spectrum updates.\n- **Analysis**:\n  - Calculates Total Harmonic Distortion (THD) from harmonic peaks in FFT spectrum.\n  - Computes Signal-to-Noise Ratio (SNR) by comparing signal and noise power.\n  - Visualizes harmonics and noise in frequency plots.\n- **Data Export**:\n  - Exports signal data to CSV files for external use.\n\nThe software is modular, with components handling signal generation, processing, and analysis.\n\n## Simulation and Modeling\n\nThe software models AM signals in time and frequency domains, simulating realistic signal behavior. Key aspects are:\n\n- **Time-Domain Simulation**:\n  - **Signal Generation**:\n    - Message: `m(t) = Am * sin(2 * pi * fm * t)`, with amplitude `Am`, frequency `fm`.\n    - Carrier: `c(t) = Ac * cos(2 * pi * fc * t)`, with amplitude `Ac`, frequency `fc`.\n  - **Modulation**:\n    - DSB-AM: `s(t) = Ac * [1 + m * m(t)] * cos(2 * pi * fc * t)`, `m` is modulation index.\n    - DSB-SC: `s(t) = Ac * m(t) * cos(2 * pi * fc * t)`, no carrier.\n    - SSB: Transmits one sideband (upper/lower).\n    - VSB: One sideband plus partial other sideband.\n    - QAM: Two signals on orthogonal carriers.\n  - **Demodulation**:\n    - Envelope detection: Rectify and low-pass filter.\n    - Coherent detection: Multiply with carrier, then filter.\n  - **Animation**: Updates plots at ~60 FPS for continuous signal simulation.\n- **Frequency-Domain Simulation**:\n  - **Spectrum**:\n    - FFT transforms signals to show peaks at `fm`, `fc`, and sidebands `(fc ± fm)`.\n  - **Dynamic Updates**:\n    - Spectra adjust in real-time with parameter changes.\n  - **Filtering**:\n    - Low-pass for demodulation, band-pass for SSB/VSB.\n- **Modeling**:\n  - Discrete-time signals with sampling frequency `fs \u003e\u003e 2 * (fc + fm)`.\n  - Noise as additive white Gaussian noise (AWGN) with adjustable amplitude.\n- **Variants**:\n  - DSB-AM: Carrier + sidebands.\n  - DSB-SC: Sidebands only.\n  - SSB: Single sideband.\n  - VSB: Sideband + vestige.\n  - QAM: Quadrature modulation.\n\n## Utilization of Algorithms\n\n- **Fast Fourier Transform (FFT)**:\n  - Purpose: Generates frequency spectra for visualization, THD, SNR.\n  - Algorithm: Cooley-Tukey FFT, O(N log N) complexity.\n  - Used in: `SpectrumAnalysisFFT`, `TotalHarmonicDistortion`.\n- **Digital Filtering**:\n  - Low-pass: Removes high frequencies in demodulation (e.g., Butterworth).\n  - Band-pass: Isolates sidebands in SSB/VSB.\n  - Algorithm: FIR or IIR filters via DSP methods.\n- **Modulation/Demodulation**:\n  - Modulation: Time-domain multiplication per AM equations.\n  - Demodulation: Envelope (rectify + filter) or coherent (carrier multiply + filter).\n  - Algorithm: Optimized for real-time processing.\n- **Noise Generation**:\n  - AWGN via Gaussian random numbers.\n  - Algorithm: Box-Muller transform.\n  - Purpose: Channel noise for SNR.\n- **THD Calculation**:\n  - Formula: `THD = sqrt(V2^2 + V3^2 + ... + Vn^2) / V1`, `V1` is fundamental, `V2-Vn` are harmonics.\n  - Algorithm: Peak detection in FFT, power summation.\n- **SNR Calculation**:\n  - Formula: `SNR = 10 * log10(Psignal / Pnoise)`, `Psignal` and `Pnoise` from frequency bands.\n  - Algorithm: Power integration in FFT spectrum.\n- **Animation**:\n  - Incremental signal updates at 16 ms intervals (~60 FPS).\n  - Algorithm: Efficient signal computation and rendering.\n\n## Physics Models\n\n- **AM Signal**:\n  - Carrier amplitude varies with message.\n  - DSB-AM: `s(t) = Ac * [1 + m * cos(2 * pi * fm * t)] * cos(2 * pi * fc * t)`.\n  - Spectrum: Peaks at `fc`, `fc ± fm`.\n- **Signals**:\n  - Message: `m(t) = Am * sin(2 * pi * fm * t)`, e.g., `fm = 1 kHz`.\n  - Carrier: `c(t) = Ac * cos(2 * pi * fc * t)`, e.g., `fc = 10 kHz`.\n  - Physics: Electromagnetic wave modulation.\n- **Noise**:\n  - AWGN models thermal noise, zero mean, variable variance.\n  - Physics: Random signal fluctuations.\n- **Demodulation**:\n  - Envelope: Rectification + filtering.\n  - Coherent: Carrier synchronization + filtering.\n  - Physics: Baseband signal recovery.\n- **Spectrum**:\n  - Power distribution across frequencies.\n  - Physics: Fourier decomposition into sinusoids.\n- **THD**:\n  - Measures distortion from harmonics.\n  - Physics: Nonlinear effects at integer multiples of fundamental.\n- **SNR**:\n  - Signal quality vs. noise.\n  - Physics: Power ratio for communication performance.\n\n## Screenshots\n\n![](https://raw.githubusercontent.com/KMORaza/AM_Simulation_Software/refs/heads/main/AM%20Software/009/Screenshot.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkmoraza%2Fam_simulation_software","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkmoraza%2Fam_simulation_software","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkmoraza%2Fam_simulation_software/lists"}