def delete_wave(self, amp, freqs, phase): if type(freqs) != type(self.wavefreqs): wave = Wave(amplitude=amp, frequency=freqs, phase=phase, stop=self.meas_time, sampling_frequency=self.sampfreq) self.wave_array = np.subtract(self.wave_array, wave.get_wave()) self.wavefreqs.remove(freqs) if type(freqs) == type(self.wavefreqs): for freq in freqs: wave = Wave(amplitude=amp, frequency=freq, phase=phase, stop=self.meas_time, sampling_frequency=self.sampfreq) self.wave_array = np.subtract(self.wave_array, wave.get_wave()) self.wavefreqs.remove(freq)
def add_wave(self, amp, central_frequency, phase): wave = Wave(amp, central_frequency, phase, stop=self.meas_time, sampling_frequency=self.sampfreq) self.wavefreqs.append(central_frequency) param_array = np.array([amp, central_frequency, phase, -1, -1]) self.wave_array = np.sum([self.wave_array, wave.get_wave()], axis=0) del wave
def add_spread_wave(self, amp, central_frequency, phase, freqspread, bunchsize): param_array = np.array( [amp, central_frequency, phase, freqspread, bunchsize]) freqs = np.random.normal( central_frequency, freqspread, size=bunchsize) #frequency Gaussian distribution for freq in freqs: wave = Wave(amplitude=amp, frequency=freq, phase=phase, stop=self.meas_time, sampling_frequency=self.sampfreq) self.wavefreqs.append(freq) self.wave_array = np.sum( [self.wave_array, wave.get_wave()], axis=0) del wave