Untitled
unknown
plain_text
2 years ago
2.0 kB
6
Indexable
import numpy as np import pandas as pd import matplotlib.pyplot as plt def generate_sinus_signal(frequency, duration, sampling_rate): t = np.arange(0, duration, 1/sampling_rate) y = np.sin(2 * np.pi * frequency * t) return t, y #def quantize_signal(signal, bits): # Perform uniform quantization # quantized_signal = np.round((signal + 1) * (2**bits - 1) / 2) / (2**bits - 1) - 1 # return quantized_signal #def export_to_csv(t, y,quantized_signal, filename): # data = {'Time': t, 'F1': y, 'F2': y, 'quantized signal': quantized_signal} # df = pd.DataFrame(data) # df.to_csv(filename, index=False) def export_to_csv(t, y, filename): data = {'Time': t, 'F1': y, 'F2': y, 'F1+F2': y} df = pd.DataFrame(data) df.to_csv(filename, index=False) def plot_signal(t, y): plt.figure(figsize=(10, 4)) plt.plot(t, y, label='Sinusoidal Signal') plt.title('Sinusoidal Signal') plt.xlabel('Time (seconds)') plt.ylabel('Amplitude') plt.legend() plt.grid(True) plt.show() # Set the parameters (300Hz fins a 500 frequency = 400.0 # You can change this value to control the frequency duration = 0.2 # Duration of the signal in seconds sampling_rate = 10000 # Sampling rate in Hz quantization_bits = 16 # Number of bits for quantization # Generate the sinusoidal signal time, amplitude = generate_sinus_signal(frequency, duration, sampling_rate) # Quantize the sinusoidal signal #quantized_amplitude = quantize_signal(amplitude, quantization_bits) # Plot the sinusoidal signal #plot_signal(time, amplitude) #export_to_csv(time, amplitude,quantized_amplitude, 'samples.csv') export_to_csv(time, amplitude,'samples.csv') # Plot the quantized sinusoidal signal #plt.figure(figsize=(12, 6)) plot_signal(time, amplitude) #plt.plot(time, quantized_amplitude) #plt.title('Quantized Sinusoidal Signal') #plt.xlabel('Time (seconds)') #plt.ylabel('Amplitude') #plt.legend() #plt.grid(True) #plt.show()
Editor is loading...
Leave a Comment