{"id":16332962,"url":"https://github.com/davidyslu/Simple_SISO_OFDM_USRP","last_synced_at":"2025-10-25T23:30:39.396Z","repository":{"id":93934481,"uuid":"129627784","full_name":"davidyslu/Simple_SISO_OFDM_USRP","owner":"davidyslu","description":"Implement SISO OFDM with BPSK demodulation on USRP","archived":false,"fork":false,"pushed_at":"2019-04-16T03:20:23.000Z","size":1264,"stargazers_count":16,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-07T16:12:14.455Z","etag":null,"topics":["matlab","ofdm","usrp"],"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-04-15T16:15:29.000Z","updated_at":"2024-06-17T11:45:10.000Z","dependencies_parsed_at":"2023-03-22T19:03:04.614Z","dependency_job_id":null,"html_url":"https://github.com/davidyslu/Simple_SISO_OFDM_USRP","commit_stats":null,"previous_names":["davidyslu/simple_siso_ofdm_usrp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidyslu%2FSimple_SISO_OFDM_USRP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidyslu%2FSimple_SISO_OFDM_USRP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidyslu%2FSimple_SISO_OFDM_USRP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidyslu%2FSimple_SISO_OFDM_USRP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidyslu","download_url":"https://codeload.github.com/davidyslu/Simple_SISO_OFDM_USRP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238223597,"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","usrp"],"created_at":"2024-10-10T23:33:55.378Z","updated_at":"2025-10-25T23:30:33.937Z","avatar_url":"https://github.com/davidyslu.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple SISO OFDM over USRP\n\nIn this repository, we are going to implement SISO OFDM with BPSK demodulation on USRP by using the example code on [WARPLab](https://warpproject.org/trac/wiki/WARPLab/Examples/OFDM) `wl_example_siso_ofdm_txrx.m`. Besides, you can get more information about SISO OFDM with BPSK demodulation from my previous repository - [Simple SISO OFDM](https://github.com/yungshenglu/Simple_SISO_OFDM).\n* The offical document of [USRP](https://www.ettus.com/content/files/07495_Ettus_N)\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\n\u003e **NOTICE:** The most of works can follow by my another repository - [Simple_SISO_OFDM](https://github.com/yungshenglu/Simple_SISO_OFDM).\n\n* USRP driver (API)\n    * About UHD\n        * USRP Hardware Driver\n        * C++ API\n        * [USRP Hardware Driver and USRP Manual](http://files.ettus.com/manual)\n        * [GitHub Repo - EttusResearch/uhd](https://github.com/EttusResearch/uhd)\n    * Locating devices\n        * `host/build/utils/uhd_find_devices --args \"addr=192.168.10.14\"`\n        * This program scans the network for supported devices and prints out a list of discovered devices and their IP addresses\n\n---\n## Execution\n\n### Environment\n\n![](https://i.imgur.com/m7psyDI.png)\n\n### Compilation\n\n* How to add a new file and compile\n    * File (Source) directory\n        * Use built in Makefile\n        * Put your files in `~/uhd/host/examples/`\n        * Add your filenames to the CmakeList.txt in `~/uhd/host/examples`\n    * Compile (Binary) directory\n        * `cd ~/uhd/host/build/examples`\n        * `make`\n        * The executable bin file should be in this folder after compile\n\n### Execution\n\n* USRP server\n    * `mkdir wcs_trace`\n    * Transimitter: `./single_tx --f=2.49 --i=128`\n    * Receiver: `./single_rx --f=2.49 --i=128`\n    * Received data in `./wcs_trace/rx_signals.bin`\n\n### BPSK OFDM over USRP\n\n* Tx repetitively sends 50 symbols\n* `USE_WARPLAB_TXRX = 0` to see the simulation result\n* Set `MOD_ORDER = 2` to use BPSK modulation\n* Rx receives at least one batch of 50 symbols\n* MATLAB offline decoding\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_USRP","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidyslu%2FSimple_SISO_OFDM_USRP","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidyslu%2FSimple_SISO_OFDM_USRP/lists"}