import numpy as np
import scipy.signal as signal
import matplotlib.pyplot as plt
np.random.seed(0)
signal_length=100
sampling_freq=10e6
time=np.arange(signal_length)/sampling_freq
signal_data=np.sign(np.sin(2*np.pi*424000*time))+0.5*np.sin(2*np.pi*2.2e6*time)
#design a low-pass filter
cutoff_freq=2e6
filter_order=21
nyquist_freq=sampling_freq/2
cutoff_norm=cutoff_freq/nyquist_freq
taps=signal.firwin(filter_order,cutoff=cutoff_norm,window='hamming')
#apply the filter
filtered_signal=signal.lfilter(taps,1,signal_data)
#plot the original signal and the filtered signal
plt.figure(figsize=(12,6))
plt.subplot(2,1,1)
plt.plot(time,signal_data,label='Original signal')
plt.title('Original signal')
plt.xlabel('Time(seconds)')
plt.legend()
plt.subplot(2,1,2)
plt.plot(time,filtered_signal,label='Filtered signal',color='r')
plt.title('Low pass filter with cutoff frequency of 2Mhz')
plt.xlabel('Time(seconds)')
plt.legend()
plt.tight_layout()
plt.show()
import numpy as np
import scipy.signal as signal
import matplotlib.pyplot as plt
np.random.seed(0)
signal_length=100
sampling_freq=10e6
time=np.arange(signal_length)/sampling_freq
signal_data=np.sign(np.sin(2*np.pi*424000*time))+0.9*np.sin(2*np.pi*2.2e6*time)
#design a low-pass filter
cutoff_freq=1.8e6
filter_order=21
nyquist_freq=sampling_freq/2
cutoff_norm=cutoff_freq/nyquist_freq
taps=signal.firwin(filter_order,cutoff=cutoff_norm,window='hamming')
#apply the filter
filtered_signal=signal.lfilter(taps,1,signal_data)
#plot the original signal and the filtered signal
plt.figure(figsize=(12,6))
plt.subplot(2,1,1)
plt.plot(time,signal_data,label='Original signal')
plt.title('Original signal')
plt.xlabel('Time(seconds)')
plt.legend()
plt.subplot(2,1,2)
plt.plot(time,filtered_signal,label='Filtered signal',color='r')
plt.title('Low pass filter with cutoff frequency of 1.8Mhz')
plt.xlabel('Time(seconds)')
plt.legend()
plt.tight_layout()
plt.show()
import numpy as np
import scipy.signal as signal
import matplotlib.pyplot as plt
np.random.seed(0)
signal_length=100
sampling_freq=10e6
time=np.arange(signal_length)/sampling_freq
signal_data=np.sign(np.sin(2*np.pi*424000*time))+0.9*np.sin(2*np.pi*2.2e6*time)
#design a low-pass filter
cutoff_freq=1.5e6
filter_order=21
nyquist_freq=sampling_freq/2
cutoff_norm=cutoff_freq/nyquist_freq
taps=signal.firwin(filter_order,cutoff=cutoff_norm,window='hamming')
#apply the filter
filtered_signal=signal.lfilter(taps,1,signal_data)
#plot the original signal and the filtered signal
plt.figure(figsize=(12,6))
plt.subplot(2,1,1)
plt.plot(time,signal_data,label='Original signal')
plt.title('Original signal')
plt.xlabel('Time(seconds)')
plt.legend()
plt.subplot(2,1,2)
plt.plot(time,filtered_signal,label='Filtered signal',color='r')
plt.title('Low pass filter with cutoff frequency of 1.5Mhz')
plt.xlabel('Time(seconds)')
plt.legend()
plt.tight_layout()
plt.show()
import numpy as np
import scipy.signal as signal
import matplotlib.pyplot as plt
np.random.seed(0)
signal_length=100
sampling_freq=10e6
time=np.arange(signal_length)/sampling_freq
signal_data=np.sign(np.sin(2*np.pi*424000*time))+0.9*np.sin(2*np.pi*2.2e6*time)
#design a low-pass filter
cutoff_freq=1e6
filter_order=21
nyquist_freq=sampling_freq/2
cutoff_norm=cutoff_freq/nyquist_freq
taps=signal.firwin(filter_order,cutoff=cutoff_norm,window='hamming')
#apply the filter
filtered_signal=signal.lfilter(taps,1,signal_data)
#plot the original signal and the filtered signal
plt.figure(figsize=(12,6))
plt.subplot(2,1,1)
plt.plot(time,signal_data,label='Original signal')
plt.title('Original signal')
plt.xlabel('Time(seconds)')
plt.legend()
plt.subplot(2,1,2)
plt.plot(time,filtered_signal,label='Filtered signal',color='r')
plt.title('Low pass filter with cutoff frequency of 1Mhz')
plt.xlabel('Time(seconds)')
plt.legend()
plt.tight_layout()
plt.show()