資源簡介
數(shù)字信號實驗綜合設(shè)計題目,部分代碼可參考博客,有對應(yīng)說明
代碼片段和文件信息
#-*-coding:utf-8-*-
import?numpy?as?np
import?matplotlib.pyplot?as?plt
import?scipy.signal?as?signal
from?pylab?import?mpl
fs=1500
ysc=0.2
x=np.arange(0yscysc/(ysc*fs))
def?py_init(jidai_1sin1_hzzxb1_hz):
y_sin1=10*np.sin(2*sin1_hz*np.pi*x)
a=0.5*np.sin(2*zxb1_hz*np.pi*x)
y_zxb1=[]
for?i?in?a:
if?i>0:
y_zxb1.append(0.5+jidai_1)
else:
y_zxb1.append(-0.5+jidai_1)
x_1=np.multiply(y_sin1y_zxb1)
return?y_zxb1x_1
def?py2_init(sin_hzsin_vFstop1Fstop2):
a=sin_v*np.sin(2*sin_hz*np.pi*x)
a_1=fda(aFstop1Fstop2)
return?a_1
def?fda(x_1Fstop1Fstop2):
b?a?=?signal.butter(8?[2.0*Fstop1/fs2.0*Fstop2/fs]?‘bandpass‘)
filtedData?=?signal.filtfilt(bax_1)
return?filtedData
def?fda2(x_1Fc):
b?a?=?signal.butter(8Fc/fs?‘lowpass‘)??
filtedData?=?signal.filtfilt(b?ax_1)?
return?filtedData
def?hz_clip(xs):
fft_size=ysc*fs
xf?=?np.fft.rfft(xs)/fft_size
freqs?=?np.linspace(0?fs/2?fft_size/2+1)
xfp?=?20*np.log10(np.clip(np.abs(xf)?1e-20?1e100))
return?freqs?xfp
#plt.xlim(-1?2)
y_10y_1=py_init(1.110010)
y_20y_2=py_init(1.130010)
y_3=py2_init(1001050150)
y_4=py2_init(30010200490)
y_add=y_1+y_2
y_add_1=fda(y_add50250)
y_add_2=fda(y_add200490)
y_mul_1=np.
評論
共有 條評論