binVector <- function(n, min.length) { result <- integer() i <- 0 while (n != 0) { result <- c(n %% 2, result) n = n %/% 2 i <- i + 1 } zeros <- rep(0, times = min.length) result <- c(zeros, result) return(paste(tail(result,min.length), collapse = "")) } decToBin <- function(x) { if (all(x<2)) x else paste(decToBin(x%/%2), x%%2, sep="") } octalToDec <- function(x) { res <- numeric() for(j in 1:length(x)) { dec <- 0 i <- 0 while (x[j] > 0) { dec <- dec + (x[j] %% 10) * (8^i) i <- i + 1 x[j] <- x[j] %/% 10 } res[j] <- dec } return(res) } gcd <- function(n, m) { if (n == 0 && m == 0) return(0) n <- abs(n); m <- abs(m) if (m > n) { t <- n; n <- m; m <- t } while (m > 0) { t <- n n <- m m <- t %% m } return(n) }
node.short <- 20 node.long <- 45 dots <- function (v, node) if(length(v) > node) ", ..." else "" if (params$encoder$rsc == TRUE) { art.coder <- "Rekursiver" } else { art.coder <- "Nicht-Rekursiver" } if (params$encoder$rsc == FALSE) { generator.matrix <- paste0(decToBin(octalToDec(params$encoder$generators)), " \\\\ ", collapse = "") generator.print <- paste0("(", paste(params$encoder$generators, collapse=","), ")_8 = \\begin{pmatrix}", generator.matrix, "\\end{pmatrix}") } else { generator.print <- paste0("\\left(1,", paste0("\\frac{", head(params$encoder$generators, length(params$encoder$generators) - 1), "}{", tail(params$encoder$generators, 1), "}", collapse = ","), "\\right)") } punctuation.print <- if(!is.null(params$punctuation)) paste0(apply(params$punctuation, 1, function(x) {paste0(x, collapse=" & ")}), collapse = " \\\\ ")
r art.coder
Kodiererr params$encoder$N
$$r params$encoder$M
$$r generator.print
$$
r if(params$turbo) paste0("- Turbo-Dekodierungsiterationen : ", params$decode.iterations)
if (is.null(params$punctuation)) { if (params$turbo) { code.rate <- "$$\\frac{1}{3}$$" } else { code.rate <- paste0("$$\\frac{1}{",params$encoder$N,"}$$") } } else { factor <- 3 if (!params$turbo) { factor <- params$encoder$N } gcd.value <- gcd(length(params$punctuation), sum(params$punctuation) * factor) code.rate <- paste0("$$\\frac{",length(params$punctuation) / gcd.value,"}{",sum(params$punctuation) * factor / gcd.value,"}$$") }
r code.rate
r if(params$turbo) paste0("- Interleaver : (", paste(head(params$permutation, node.long), collapse = ", "), dots(params$permutation, node.long), ")")
r if(!is.null(params$punctuation)) paste0("- Punktierungs-Matrix : $$\\begin{pmatrix} ",punctuation.print," \\end{pmatrix}$$")
r params$message.length
r params$iterations.per.db
r params$min.db
r params$max.db
r params$db.interval
df <- params$dataframe if (max(df$ber) == 0) { ggplot2::ggplot(df,ggplot2::aes(db))+ggplot2::geom_line(ggplot2::aes(y = ber))+ggplot2::xlab("Signal Rausch Verh\u00e4ltnis [dB]")+ggplot2::ylab("Bitfehlerrate") } else { ggplot2::ggplot(df,ggplot2::aes(db))+ggplot2::geom_line(ggplot2::aes(y = ber))+ggplot2::scale_y_log10(limits = c(min(df$ber) / 2, max(df$ber) * 2))+ggplot2::xlab("Signal Rausch Verh\u00e4ltnis [dB]")+ggplot2::ylab("Bitfehlerrate") }
Bitefehlerrate:
summary(df$ber)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.