fix: add minor changes
This commit is contained in:
parent
f1ba1e93a8
commit
e7087b04c7
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
Exp20201205_2myo_hard**
|
Exp20201205_2myo_hard**
|
||||||
Exp20201205_2myo_soft**
|
Exp20201205_2myo_soft**
|
||||||
Documents
|
Documents
|
||||||
|
python_speech_features
|
@ -9,20 +9,20 @@ def plot_df(df:DataFrame):
|
|||||||
plt.show()
|
plt.show()
|
||||||
|
|
||||||
# Plots ndarrays after transformations
|
# Plots ndarrays after transformations
|
||||||
def plot_arrays(N, y):
|
def plot_arrays(N, N_name, y, y_name):
|
||||||
plt.plot(N, np.abs(y))
|
plt.plot(N, np.abs(y))
|
||||||
plt.show()
|
plt.show()
|
||||||
|
|
||||||
def plot_compare_two_df(df_old, df_new):
|
def plot_compare_two_df(df_old, old_name, df_new, new_name):
|
||||||
x = get_xory_from_df('x', df_old)
|
x = get_xory_from_df('x', df_old)
|
||||||
y1 = get_xory_from_df('y', df_old)
|
y1 = get_xory_from_df('y', df_old)
|
||||||
y2 = get_xory_from_df('y', df_new)
|
y2 = get_xory_from_df('y', df_new)
|
||||||
|
|
||||||
figure, axis = plt.subplots(1, 2)
|
figure, axis = plt.subplots(1, 2)
|
||||||
axis[0].plot(x, y1)
|
axis[0].plot(x, y1)
|
||||||
axis[0].set_title('Original data')
|
axis[0].set_title(old_name)
|
||||||
axis[1].plot(x, y2)
|
axis[1].plot(x, y2)
|
||||||
axis[1].set_title('Analyzed data')
|
axis[1].set_title(new_name)
|
||||||
plt.show()
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
@ -46,6 +46,19 @@ def get_data(csv_handler:CSV_handler, subject_nr, which_arm, session, emg_nr):
|
|||||||
data_frame = csv_handler.get_df_from_data_dict(subject_nr, which_arm, session, emg_nr)
|
data_frame = csv_handler.get_df_from_data_dict(subject_nr, which_arm, session, emg_nr)
|
||||||
return data_frame
|
return data_frame
|
||||||
|
|
||||||
|
#Takes in handler and detailes to denoise. Returns arrays and df
|
||||||
|
def denoice_dataset(handler:Handler.CSV_handler, subject_nr, which_arm, round, emg_nr):
|
||||||
|
df = handler.get_df_from_data_dict(subject_nr, which_arm, round, emg_nr)
|
||||||
|
|
||||||
|
N = get_xory_from_df('x', df)
|
||||||
|
N_trans, cA, cD = wavelet_db4(df)
|
||||||
|
cA_filt, cD_filt = soft_threshold_filter(cA, cD)
|
||||||
|
y_values = inverse_wavelet(df, cA_filt, cD_filt)
|
||||||
|
|
||||||
|
df_new = Handler.make_df_from_xandy(N, y_values, emg_nr)
|
||||||
|
return df_new
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# MAIN:
|
# MAIN:
|
||||||
|
|
||||||
@ -55,13 +68,13 @@ def main():
|
|||||||
load_data(csv_handler, 'hard')
|
load_data(csv_handler, 'hard')
|
||||||
data_frame = get_data(csv_handler, 1, 'left', 1, 1)
|
data_frame = get_data(csv_handler, 1, 'left', 1, 1)
|
||||||
|
|
||||||
N_trans, cA, cD = wavelet_db4_denoising(data_frame)
|
N_trans, cA, cD = wavelet_db4(data_frame)
|
||||||
data_frame_freq = make_df_from_xandy(N_trans, cA, 1)
|
data_frame_freq = make_df_from_xandy(N_trans, cA, 1)
|
||||||
|
|
||||||
cA_filt, cD_filt = soft_threshold_filter(cA, cD, 0.6)
|
cA_filt, cD_filt = soft_threshold_filter(cA, cD)
|
||||||
data_frame_freq_filt = make_df_from_xandy(N_trans, cA_filt, 1)
|
data_frame_freq_filt = make_df_from_xandy(N_trans, cD_filt, 1)
|
||||||
|
|
||||||
plot_compare_two_df(data_frame_freq, data_frame_freq_filt)
|
plot_compare_two_df(data_frame_freq, 'Original data', data_frame_freq_filt, 'Analyzed data')
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import pandas
|
|||||||
from pandas.core.frame import DataFrame
|
from pandas.core.frame import DataFrame
|
||||||
from scipy.fft import fft, fftfreq
|
from scipy.fft import fft, fftfreq
|
||||||
import pywt
|
import pywt
|
||||||
|
import pyhton_speech_features as psf
|
||||||
#from scipy.signal import wavelets
|
#from scipy.signal import wavelets
|
||||||
#import pyyawt
|
#import pyyawt
|
||||||
|
|
||||||
@ -35,7 +36,7 @@ def fft_of_df(df:DataFrame):
|
|||||||
return N_trans, y_f
|
return N_trans, y_f
|
||||||
|
|
||||||
# Removes noise with db4 wavelet function
|
# Removes noise with db4 wavelet function
|
||||||
def wavelet_db4_denoising(df:DataFrame):
|
def wavelet_db4(df:DataFrame):
|
||||||
y_values = get_xory_from_df('y', df)
|
y_values = get_xory_from_df('y', df)
|
||||||
#y_values = normalize_wave(y_values)
|
#y_values = normalize_wave(y_values)
|
||||||
wavelet = pywt.Wavelet('db4')
|
wavelet = pywt.Wavelet('db4')
|
||||||
@ -51,10 +52,10 @@ def sure_threshold_filter(cA, cD):
|
|||||||
return cA_filt, cD_filt
|
return cA_filt, cD_filt
|
||||||
'''
|
'''
|
||||||
|
|
||||||
# soft filtering of wavelet trans with the 40% lowest removed
|
# soft filtering of wavelet trans with the a 1/2 std filter
|
||||||
def soft_threshold_filter(cA, cD, threshold):
|
def soft_threshold_filter(cA, cD):
|
||||||
cA_filt = pywt.threshold(cA, threshold * cA.max())
|
cA_filt = pywt.threshold(cA, np.std(cA)/2)
|
||||||
cD_filt = cD
|
cD_filt = pywt.threshold(cD, np.std(cD)/2)
|
||||||
return cA_filt, cD_filt
|
return cA_filt, cD_filt
|
||||||
|
|
||||||
# Inverse dwt for brining denoise signal back to the time domainfi
|
# Inverse dwt for brining denoise signal back to the time domainfi
|
||||||
@ -70,16 +71,16 @@ def inverse_wavelet(df, cA_filt, cD_filt):
|
|||||||
old_len = len(get_xory_from_df('y', df))
|
old_len = len(get_xory_from_df('y', df))
|
||||||
return y_new_values
|
return y_new_values
|
||||||
|
|
||||||
# Takes in handler and detailes to denoise. Returns arrays and df
|
def cepstrum(df:DataFrame):
|
||||||
def denoice_dataset(handler:Handler.CSV_handler, subject_nr, which_arm, round, emg_nr, threshold):
|
|
||||||
df = handler.get_df_from_data_dict(subject_nr, which_arm, round, emg_nr)
|
|
||||||
|
|
||||||
N = get_xory_from_df('x', df)
|
N = get_xory_from_df('x', df)
|
||||||
N_trans, cA, cD = wavelet_db4_denoising(df)
|
y = get_xory_from_df('y', df)
|
||||||
cA_filt, cD_filt = soft_threshold_filter(cA, cD, threshold)
|
|
||||||
y_values = inverse_wavelet(df, cA_filt, cD_filt)
|
|
||||||
|
|
||||||
df_new = Handler.make_df_from_xandy(N, y_values, emg_nr)
|
|
||||||
return df_new
|
|
||||||
|
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
'''
|
||||||
|
def mfcc(df:DataFrame):
|
||||||
|
N = get_xory_from_df('x', df)
|
||||||
|
y = get_xory_from_df('y', df)
|
||||||
|
spf.mfcc(y, )
|
||||||
|
'''
|
||||||
|
Binary file not shown.
10
python_speech_features.egg-info/PKG-INFO
Normal file
10
python_speech_features.egg-info/PKG-INFO
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
Metadata-Version: 1.0
|
||||||
|
Name: python-speech-features
|
||||||
|
Version: 0.6.1
|
||||||
|
Summary: Python Speech Feature extraction
|
||||||
|
Home-page: https://github.com/jameslyons/python_speech_features
|
||||||
|
Author: James Lyons
|
||||||
|
Author-email: james.lyons0@gmail.com
|
||||||
|
License: MIT
|
||||||
|
Description: UNKNOWN
|
||||||
|
Platform: UNKNOWN
|
7
python_speech_features.egg-info/SOURCES.txt
Normal file
7
python_speech_features.egg-info/SOURCES.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
python_speech_features/example.py
|
||||||
|
python_speech_features/setup.py
|
||||||
|
python_speech_features.egg-info/PKG-INFO
|
||||||
|
python_speech_features.egg-info/SOURCES.txt
|
||||||
|
python_speech_features.egg-info/dependency_links.txt
|
||||||
|
python_speech_features.egg-info/requires.txt
|
||||||
|
python_speech_features.egg-info/top_level.txt
|
1
python_speech_features.egg-info/dependency_links.txt
Normal file
1
python_speech_features.egg-info/dependency_links.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
2
python_speech_features.egg-info/requires.txt
Normal file
2
python_speech_features.egg-info/requires.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
numpy
|
||||||
|
scipy
|
1
python_speech_features.egg-info/top_level.txt
Normal file
1
python_speech_features.egg-info/top_level.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
python_speech_features
|
Loading…
Reference in New Issue
Block a user