forked from DSP-Projects/SamplingStudio
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSignal.py
More file actions
39 lines (25 loc) · 1.11 KB
/
Copy pathSignal.py
File metadata and controls
39 lines (25 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from PyQt5.QtWidgets import QColorDialog, QPushButton, QMainWindow
from PyQt5.QtGui import QColor,QBrush
import pandas as pd
import numpy as np
class Signal:
def __init__(self, graph_num,csv_path ='mmg.csv'):
self.csv_path = csv_path
csvFile = pd.read_csv(self.csv_path)
self.signal_data_time = csvFile.iloc[:3000, 0].values
self.signal_data_amplitude = csvFile.iloc[:3000, 1].values
self.graph_num= graph_num
self.noise=0
def add_noise(self, SNR):
print("2")
# SNR= 10log(base10)(signal_power/noise_power)
signal_power=np.mean((self.signal_data_amplitude)**2)
SNR_linear = 10**(SNR/10)
noise_power = signal_power/SNR_linear
self.noise = np.random.normal(0,np.sqrt(noise_power),self.signal_data_amplitude.shape)
noisy_signal = self.signal_data_amplitude + self.noise
return noisy_signal
def set_signal_graph_num(self, new_graph_num):
self.graph_num = new_graph_num
def get_signal_graph_num(self):
return self.graph_num