def test_1(self): # Define signal in range (-pi, pi) phases = np.pi*(np.fmod(2*np.arange(self.n)*self.f_rf*self.T_s, 2) - 1) signal = np.cos(phases) + 1j*np.sin(phases) # From IQ to polar amplitude, phase = cartesian_to_polar(signal) # Drop some digits to avoid rounding errors amplitude = np.around(amplitude, 12) phase = np.around(phase, 12) phases = np.around(phases, 12) self.assertSequenceEqual(amplitude.tolist(), np.ones(self.n).tolist(), msg="In TestIQ test_1, amplitude is not correct") self.assertSequenceEqual(phase.tolist(), phases.tolist(), msg="In TestIQ test_1, phase is not correct")
def test_3(self): # Define signal in range (-pi, pi) phase = np.pi*(np.fmod(2*np.arange(self.n)*self.f_rf*self.T_s, 2) - 1) amplitude = np.ones(self.n) # Forwards and backwards transform signal = polar_to_cartesian(amplitude, phase) amplitude_new, phase_new = cartesian_to_polar(signal) # Drop some digits to avoid rounding errors phase = np.around(phase, 11) amplitude = np.around(amplitude, 11) amplitude_new = np.around(amplitude_new, 11) phase_new = np.around(phase_new, 11) self.assertSequenceEqual(phase.tolist(), phase_new.tolist(), msg="In TestIQ test_3, phase is not correct") self.assertSequenceEqual(amplitude.tolist(), amplitude_new.tolist(), msg="In TestIQ test_3, amplitude is not correct")
def test_4(self): # Define signal in range (-pi, pi) phase = np.pi*(np.fmod(2*np.arange(self.n)*self.f_rf*self.T_s, 2) - 1) signal = np.cos(phase) + 1j*np.sin(phase) # Forwards and backwards transform amplitude, phase = cartesian_to_polar(signal) signal_new = polar_to_cartesian(amplitude, phase) # Drop some digits to avoid rounding errors signal_real = np.around(signal.real, 11) signal_imag = np.around(signal.imag, 11) signal_real_2 = np.around(np.real(signal_new), 11) signal_imag_2 = np.around(np.imag(signal_new), 11) self.assertSequenceEqual(signal_real.tolist(), signal_real_2.tolist(), msg="In TestIQ test_4, real part is not correct") self.assertSequenceEqual(signal_imag.tolist(), signal_imag_2.tolist(), msg="In TestIQ test_4, imaginary part is not correct")
def test_1(self): # Define signal in range (-pi, pi) phases = np.pi * ( np.fmod(2 * np.arange(self.n) * self.f_rf * self.T_s, 2) - 1) signal = np.cos(phases) + 1j * np.sin(phases) # From IQ to polar amplitude, phase = cartesian_to_polar(signal) # Drop some digits to avoid rounding errors amplitude = np.around(amplitude, 12) phase = np.around(phase, 12) phases = np.around(phases, 12) self.assertSequenceEqual( amplitude.tolist(), np.ones(self.n).tolist(), msg="In TestIQ test_1, amplitude is not correct") self.assertSequenceEqual(phase.tolist(), phases.tolist(), msg="In TestIQ test_1, phase is not correct")
def test_3(self): # Define signal in range (-pi, pi) phase = np.pi * ( np.fmod(2 * np.arange(self.n) * self.f_rf * self.T_s, 2) - 1) amplitude = np.ones(self.n) # Forwards and backwards transform signal = polar_to_cartesian(amplitude, phase) amplitude_new, phase_new = cartesian_to_polar(signal) # Drop some digits to avoid rounding errors phase = np.around(phase, 11) amplitude = np.around(amplitude, 11) amplitude_new = np.around(amplitude_new, 11) phase_new = np.around(phase_new, 11) self.assertSequenceEqual(phase.tolist(), phase_new.tolist(), msg="In TestIQ test_3, phase is not correct") self.assertSequenceEqual( amplitude.tolist(), amplitude_new.tolist(), msg="In TestIQ test_3, amplitude is not correct")
def test_4(self): # Define signal in range (-pi, pi) phase = np.pi * ( np.fmod(2 * np.arange(self.n) * self.f_rf * self.T_s, 2) - 1) signal = np.cos(phase) + 1j * np.sin(phase) # Forwards and backwards transform amplitude, phase = cartesian_to_polar(signal) signal_new = polar_to_cartesian(amplitude, phase) # Drop some digits to avoid rounding errors signal_real = np.around(signal.real, 11) signal_imag = np.around(signal.imag, 11) signal_real_2 = np.around(np.real(signal_new), 11) signal_imag_2 = np.around(np.imag(signal_new), 11) self.assertSequenceEqual( signal_real.tolist(), signal_real_2.tolist(), msg="In TestIQ test_4, real part is not correct") self.assertSequenceEqual( signal_imag.tolist(), signal_imag_2.tolist(), msg="In TestIQ test_4, imaginary part is not correct")