begin cdma

This commit is contained in:
eneller
2026-03-22 21:51:19 +01:00
parent bcb3ae9a80
commit 508db25b51
4 changed files with 960 additions and 1 deletions

18
a4.md
View File

@@ -1 +1,17 @@
# Channel access method for shared mediums # Channel access method for shared mediums
## Time Division (TDMA)
assigns time-slots to each transmitter in which they are allowed to send.
Dynamic slots can be used to adjust for variable bit-rate streams.
## Frequency Division (FDMA)
assigns parts of the total bandwidth into multiple channels.
## Code Division (CDMA)
Uses orthogonal codes assigned to transmitters, allowing them to send on the same time and frequency.
Both TDMA and FDMA need guard intervals that remain relatively fixed with rising numbers of participants.
CDMA in comparison is directly limited by the Shannon-Hartley channel capacity,
meaning that an increased noise floor introduced by an increasing number of transmitters results in temporarily decreased call quality,
whereas other channel division methods would usually result in permanently decreased quality.

40
cdma.Rmd Normal file
View File

@@ -0,0 +1,40 @@
---
title: "CDMA"
subtitle: "Software Defined Radio"
output: pdf_document
date: "`r Sys.Date()`"
---
# Assignment
In the R environment for statistical computing, develop
software support for generating a CDMA composite
signal. Provide four parallel communication channels
with corresponding characteristic code sequences of 5
bits length. Define software support for accepting
ASCII characters (via a terminal or reading from a data
file), converting ASCII characters into binary data,
coding with the respective code sequence of the given
communication channel, and decoding and deciding
on the receiving side.
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Getting Input
We first get input by reading a file `input.txt`, where each line (0-3) is one communication channel.
Because UTF8 maintains compatibility with ASCII, the UTF8 conversion can be used assuming that the input is only ASCII.
ASCII characters require 7 bits of information per character.
```{r input}
lines <- readLines('./input.txt')
lines_bin <- unlist(lapply(lines, utf8ToInt))
```
```{r input-demo, echo=FALSE}
print(lines)
print(lines_bin)
```
## Orthogonal Code
For an orthogonal code, we are looking for vectors $(a,b,...n)$ in that satisfy pairwise orthogonality $a \perp b$.

4
input.txt Normal file
View File

@@ -0,0 +1,4 @@
a
b
c
d

899
renv.lock

File diff suppressed because one or more lines are too long