{"id":16332955,"url":"https://github.com/davidyslu/Simple_SISO_OFDM","last_synced_at":"2025-10-25T23:30:38.202Z","repository":{"id":93934483,"uuid":"125621863","full_name":"davidyslu/Simple_SISO_OFDM","owner":"davidyslu","description":"Simulate SISO OFDM with BPSK demodulation","archived":false,"fork":false,"pushed_at":"2019-04-16T03:20:58.000Z","size":440,"stargazers_count":6,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-07T16:12:13.393Z","etag":null,"topics":["matlab","ofdm","siso-system"],"latest_commit_sha":null,"homepage":"","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidyslu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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}},"created_at":"2018-03-17T11:18:55.000Z","updated_at":"2023-05-22T13:57:19.000Z","dependencies_parsed_at":"2023-03-16T13:15:33.564Z","dependency_job_id":null,"html_url":"https://github.com/davidyslu/Simple_SISO_OFDM","commit_stats":null,"previous_names":["davidyslu/simple_siso_ofdm"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidyslu%2FSimple_SISO_OFDM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidyslu%2FSimple_SISO_OFDM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidyslu%2FSimple_SISO_OFDM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidyslu%2FSimple_SISO_OFDM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidyslu","download_url":"https://codeload.github.com/davidyslu/Simple_SISO_OFDM/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238223594,"owners_count":19436717,"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":["matlab","ofdm","siso-system"],"created_at":"2024-10-10T23:33:54.550Z","updated_at":"2025-10-25T23:30:32.892Z","avatar_url":"https://github.com/davidyslu.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple SISO OFDM in Simulation\n\nThis repository is going to simulate SISO OFDM with BPSK demodulation by using the example code on [WARPLab](https://warpproject.org/trac/wiki/WARPLab/Examples/OFDM) `wl_example_siso_ofdm_txrx.m`\n\n\u003e **NOTCIE:** This repository is the assignment in NCTU course \"Wireless Communication Systems 2018\". If you are taking this course, please do not duplicate from this repository. All rights reserved.\n\n---\n## Description\n\nThe sample code `wl_example_siso_ofdm_txrx.m` follows the following steps.\n1. Generate OFDM transmit samples\n2. Send samples via WARP or Simulation transmission\n3. Decode the received samples\n4. Calculate SNR/channels and plot\n\nIn the part of signal generation,\n1. Generate preambles\n2. Generate digital bits\n3. Modulate digital bits to frequency-domain samples\n4. Add pilot samples\n5. Convert frequency sample to time samples via FFT\n6. Insert CP (Cyclic Prefix)\n7. Reshape symbols to 1D samples\n\nIn the part of decoding,\n1. Packet detection\n2. CFO correction (useless in simulation)\n3. Channel estimation\n4. Remove CP (Cyclic Prefix)\n5. Convert time samples to frequency samples via FFT\n6. Decode frequency samples\n7. SFO correction\n\n### BPSK OFDM Simulation\n\n1. Partition the example code to `signal_gen.m` and `decode.m`\n    * `signal_gen.m`\n        * Signal generator and transmissions\n        * Output transmitted digital bits to `tx_data.bin`\n        * Output transmitted frequency-domain samples to `tx_syms_mat.bin`\n        * Output received time-domain samples to `rx_vec_air.bin`\n    * `decode.m`\n        * Load `tx_data.bin`, `tx_syms_mat.bin`, and `rx_vec_air.bin`\n        * Decode the signal and calculate BER/SNR\n        * Plot the results\n2. Simulation channels with different SNR values\n    * Modify the modulation to BPSK\n    * Currently, modulation 16-QAM is used\n    * Change it to BPSK\n3. Decode the received signals\n    * Simulated SNR: 5, 10, 15, 20 and 25 (dB)\n    * Generate received signal with noise\n4. Calculate the actual SNR\n    * Calculate decoded SNR and BER\n5. Plot the mean SNR value\n    * Plot SNR and BER\n6. Plot figures in the example code\n    * Plot other figures in the example code\n\n---\n## Execution\n\n\u003e **NOTICE:** Make sure you have already installed MATLAB on your machine\n\n1. Open your MATLAB IDE and run `simulation.m` (take few minutes)\n2. If succeed, you will get some figures as follow:\n    * Tx waveform\n        ![](res/Tx_waveform.png)\n    * Rx waveform\n        ![](res/Rx_waveform.png)\n    * Channel Estimates\n        ![](res/Channel.png)\n    * Phase Error Estimates and Phase Correction for SFO\n        ![](res/Phase.png)\n    * LTS Correlation and Threshold\n        ![](res/LTS_correlation.png)\n    * Tx and Rx Constellations\n        ![](res/Constellations.png)\n    * EVM vs. Data Index and EVM vs. (Subcarrier \u0026 OFDM Symbol)\n        ![](res/EVM.png)\n    * Decoded SNR and BER\n        ![](res/SNR_BER.png)\n\n---\n## Contributor\n\n\u003e **NOTICE:** You can follow the contributing process [CONTRIBUTING.md](CONTRIBUTING.md) to join me. I am very welcome any issue!\n\n* [David Lu](https://github.com/yungshenglu)\n\n---\n## License\n\n\u003e **NOTCIE:** This repository is the assignment in NCTU course \"Wireless Communication Systems 2018\". If you are taking this course, please do not duplicate from this repository. All rights reserved.\n\n[GNU GENERAL PUBLIC LICENSE Version 3](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidyslu%2FSimple_SISO_OFDM","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidyslu%2FSimple_SISO_OFDM","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidyslu%2FSimple_SISO_OFDM/lists"}