Comparem el timestamp i el temps suposant la presa de mostres
uniforme
library (zoo)
##
## S'està adjuntant el paquet: 'zoo'
## Els següents objectes estan emmascarats des de 'package:base':
##
## as.Date, as.Date.numeric
library(plotly)
## S'està carregant el paquet requerit: ggplot2
##
## S'està adjuntant el paquet: 'plotly'
## L'objecte següent està emmascarat per 'package:ggplot2':
##
## last_plot
## L'objecte següent està emmascarat per 'package:stats':
##
## filter
## L'objecte següent està emmascarat per 'package:graphics':
##
## layout
library(signal)
## Warning: el paquet 'signal' es va construir amb la versió d'R 4.4.3
##
## S'està adjuntant el paquet: 'signal'
## L'objecte següent està emmascarat per 'package:plotly':
##
## filter
## Els següents objectes estan emmascarats des de 'package:stats':
##
## filter, poly
lowpass <- function(x, fs, f_c) {
# Normalize cutoff frequency to Nyquist frequency
wpass <- f_c / (fs / 2)
# 4th order Butterworth lowpass filter
bf <- butter(4, wpass, type = "low")
# Zero-phase filtering (like MATLAB's lowpass)
y <- filtfilt(bf, x)
return(y)
}
# filtre modificat repetint mediana dels primers i els darrers
lowpassmodif <- function(x, fs, f_c, extra=100) {
# Normalize cutoff frequency to Nyquist frequency
wpass <- f_c / (fs / 2)
# 4th order Butterworth lowpass filter
bf <- butter(4, wpass, type = "low")
long <- length(x)
x_ampliat <- c(rep(median(head(x,20)), extra), x, rep(median(tail(x,20)), extra))
# Zero-phase filtering (like MATLAB's lowpass)
y_ampliat <- filtfilt(bf, x_ampliat)
y <- y_ampliat[(extra+1):(long+extra)]
return(y)
}
ruta0 <- "~/pere\\producte\\workflowShiny" #ruta on tingueu els fitxers
ruta1 <- c("mesures_23_abril", "mesures_30_abril_netes", "Mesures_06052025")
dir(file.path(ruta0, ruta1[3]))
## [1] "Parametres mostres analitzades_06_05_2025.xlsx"
## [2] "retorn_6maig2025.RData"
## [3] "serial_log_20250505_093944_EscumaVerda.csv"
## [4] "serial_log_20250505_094314_EscumaVerda.csv"
## [5] "serial_log_20250505_095151_EscumaVerda.csv"
## [6] "serial_log_20250505_095611_EscumaNegra.csv"
## [7] "serial_log_20250505_100304_Farina90.csv"
## [8] "serial_log_20250505_100535_Farina90.csv"
## [9] "serial_log_20250505_100811_Farina90.csv"
## [10] "serial_log_20250505_101033_Farina90.csv"
## [11] "serial_log_20250505_101223_EscumaBlanca.csv"
## [12] "serial_log_20250505_101505_Farina262.csv"
## [13] "serial_log_20250505_102028_Farina262.csv"
## [14] "serial_log_20250505_102251_Farina262.csv"
## [15] "serial_log_20250505_102500_Farina262.csv"
## [16] "serial_log_20250505_102823_EscumaBlancaPont.csv"
## [17] "serial_log_20250505_103033_SoftDoughGroga.csv"
## [18] "serial_log_20250505_103240_Farina400.csv"
## [19] "serial_log_20250505_103438_Farina400.csv"
## [20] "serial_log_20250505_103713_Farina400.csv"
## [21] "serial_log_20250505_103908_Farina400.csv"
## [22] "serial_log_20250505_104111_Farina400.csv"
## [23] "serial_log_20250505_104412_EscumaNegra.csv"
## [24] "serial_log_20250505_104827_Fusta.csv"
## [25] "serial_log_20250505_105223_SorraQuinetica.csv"
## [26] "serial_log_20250505_105521_PastaModelarBlanca.csv"
## [27] "serial_log_20250505_105715_PastaModelarBlanca.csv"
## [28] "serial_log_20250505_110020_Farina461.csv"
## [29] "serial_log_20250505_110244_Farina461.csv"
## [30] "serial_log_20250505_110539_SoftDoughBlanca.csv"
## [31] "serial_log_20250505_112040_Farina119Fallit.csv"
## [32] "serial_log_20250505_112229_Farina119.csv"
## [33] "serial_log_20250505_112432_Farina119.csv"
## [34] "serial_log_20250505_113019_PastaFlexibleXinesa.csv"
diradf <- function(ruta=file.path(ruta0, ruta1), ruta0=NULL, ruta1=NULL) {
fitxers <- dir(file.path(ruta))
arrel <- if (is.null(ruta1)) ruta else ruta1
return(data.frame(carpeta=arrel, fitxer=fitxers))
}
fitxers <- do.call(rbind, lapply(ruta1, function(x) diradf(ruta1=x, ruta0=ruta0)))
fitxers <- fitxers[grepl("\\.csv$",fitxers$fitxer),]
l <- htmltools::tagList()
for (i in 1:nrow(fitxers)) {
fitxer <- fitxers$fitxer[i]
ruta <- file.path(ruta0, fitxers$carpeta[i])
sensorLog <- read.table(file.path(ruta, fitxer), quote="\"", comment.char="")
names(sensorLog) <- c("y_temp_g", "y_ax", "y_ay", "y_az", "y_gx", "y_gy", "y_gz", "y_force", "y_temp", "time(ms)")
sensorLog$t_unif <- (1:nrow(sensorLog))*20
sensorLog$timestamp_red <- sensorLog$`time(ms)` - min(sensorLog$`time(ms)` )
fig <- plot_ly(sensorLog, x = ~t_unif, y = ~(timestamp_red-t_unif), type = 'scatter', mode = 'lines', name="timestamp - t_uniforme")
fig <- fig %>% add_trace(y = ~y_force, name = 'força', mode = 'lines', type="scatter")
fig <- fig %>% add_trace(y = ~y_ax, name = 'acceleració_x', mode = 'lines', type="scatter")
fig <- fig %>% add_trace(y = ~y_ay, name = 'acceleració_y', mode = 'lines', type="scatter")
fig <- fig %>% layout(title = fitxer)
l[[i]] <- as_widget(fig)
}
l