diff options
author | Suraj Yerramilli | 2015-11-01 13:19:40 +0530 |
---|---|---|
committer | Suraj Yerramilli | 2015-11-01 13:19:40 +0530 |
commit | fe30af3bf4a8fe330e495d42d066ee8aba65044b (patch) | |
tree | 9fb19b8029c3133e5c9493ee19b6059222dd41f7 /R | |
parent | 361456717ba2c2e1fb75c48669428580a8b0c8c6 (diff) | |
parent | 658afa181832442a9198636a88dbd707c4538d51 (diff) | |
download | SysID-R-code-fe30af3bf4a8fe330e495d42d066ee8aba65044b.tar.gz SysID-R-code-fe30af3bf4a8fe330e495d42d066ee8aba65044b.tar.bz2 SysID-R-code-fe30af3bf4a8fe330e495d42d066ee8aba65044b.zip |
Merge branch 'master' of https://github.com/surajy123/R-sysid
Diffstat (limited to 'R')
-rw-r--r-- | R/idinput.R | 33 | ||||
-rw-r--r-- | R/rbs.R | 34 | ||||
-rw-r--r-- | R/rgs.R | 24 |
3 files changed, 33 insertions, 58 deletions
diff --git a/R/idinput.R b/R/idinput.R new file mode 100644 index 0000000..5251163 --- /dev/null +++ b/R/idinput.R @@ -0,0 +1,33 @@ +#' @export +idinput<-function(n,type='rgs',band=c(0,1),levels=c(-1,1)){ + if(type=="rbs"){ + v1<-gen.rbs(n,band,levels) + } + else if(type=="rgs"){ + v1<-gen.rgs(n,band,levels) + } + return(v1) +} + +gen.rgs<-function(n,band,levels){ + require(signal) + mu<-(levels[1]+levels[2])/2 + sigma<-(levels[2]-levels[1])/2 + v<-rnorm(n,mu,sigma) + v<-sapply(v, function(x) {if(x==0) rnorm(1) else x}) + gfilt<-butter(8,band,type ='pass',plane ='z') + v1<-filter(gfilt,v) + return(v1) +} + +gen.rbs<-function(n,band,levels){ + require(signal) + v<-rnorm(n) + + v<-sapply(v, function(x) {if(x==0) rnorm(1) else x}, simplify = 'vector') + #if we do not specify else case, it assigns it as NULL + bfilt<-butter(8,band,type = 'pass',plane = 'z') + v1<-filter(bfilt,v) + v1<-sapply(v1, function(x) {if(x>0) levels[2] else levels[1]}) + return(v1) +}
\ No newline at end of file diff --git a/R/rbs.R b/R/rbs.R deleted file mode 100644 index 98fa785..0000000 --- a/R/rbs.R +++ /dev/null @@ -1,34 +0,0 @@ -#' @export -idin.rbs <- function(n,band,levels){ - # Function to generate a random binary - # signal of given frequency band and levels - require(signal) - uk1 = rnorm(n,mean = 0,sd = 1) - uk = rep(0,n) - for(i in 1:n){ - #Checking for zeros - - if(uk1[i] == 0){ - uk1[i] <- rnorm(1,mean = 0,sd = 1) - } - } - # Getting the filter coefficients - bfilt <- butter(8,c(band[1],band[2]),type = "pass",plane = "z") - - # Filtering the signal - ukf <- filter(bfilt,uk1) - - # Getting the binary signal - for(i in 1:n){ - if(ukf[i] < 0){ - uk[i] = levels[1] - } - } - for(i in 1:n){ - if(ukf[i] > 0){ - uk[i] = levels[2] - } - } - return(uk) -} - diff --git a/R/rgs.R b/R/rgs.R deleted file mode 100644 index ee1eca3..0000000 --- a/R/rgs.R +++ /dev/null @@ -1,24 +0,0 @@ -#' @export -idin.rgs <- function(n,band,var){ - # Function to generate a random Gaussian - # signal of given frequency band and variance - require(signal) - uk1 <- rnorm(n,mean = 0,sd = 1) - - for(i in 1:n){ - #Checking for zeros - - if(uk1[i] == 0){ - uk1[i] <- rnorm(1,mean = 0,sd = 1) - } - } - # Getting the filter coefficients - bfilt <- butter(8,c(band[1],band[2]),type = "pass",plane = "z") - - # Filtering the signal - ukf <- filter(bfilt,uk1) - - # Adjusting for required variance - uk <- sqrt(var)*ukf - return(uk) -}
\ No newline at end of file |