summaryrefslogtreecommitdiff
path: root/R/idinput.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/idinput.R')
-rw-r--r--R/idinput.R33
1 files changed, 33 insertions, 0 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