import pandas as pd import numpy as np # File paths input_file = r'' output_file = r'' # Load the data data = pd.read_csv(input_file) # Define Hamming window parameters window_duration = 10 # in seconds sampling_rate = 100 # Assuming 100 Hz sampling rate; adjust if different window_size = window_duration * sampling_rate # Apply Hamming window hamming_window = np.hamming(window_size) def apply_window_to_segment(segment): return segment * hamming_window[:len(segment)] # Process each sensor column sensor_columns = [ col for col in data.columns if col not in ['TimeStamps', 'Subject', 'Activity', 'Trial', 'Tag'] ] def apply_hamming_window(df): windowed_data = [] for i in range(0, len(df), window_size): segment = df.iloc[i:i + window_size] if len(segment) == window_size: for col in sensor_columns: segment.loc[:, col] = apply_window_to_segment(segment[col].values) windowed_data.append(segment) return pd.concat(windowed_data, ignore_index=True) windowed_data = apply_hamming_window(data) # Save the output windowed_data.to_csv(output_file, index=False)