基于python的不同截止频率的低通滤波器滤波效果

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值