python频域响应
时间: 2023-11-03 08:01:17 浏览: 32
python中的频域响应可以通过使用傅里叶变换方法来计算。首先,你需要构造模拟信号,并使用信号的功率谱密度函数来计算信号的频谱。然后,可以使用计算得到的频谱来计算频率响应函数。下面是一个简单的示例代码:
```python
from scipy import fftpack, signal
import numpy as np
import matplotlib.pyplot as plt
# 构造模拟信号
fre_1 = [10, 50, 100]
fre_2 = [20, 50, 80]
fs = 1000
t = np.arange(0, 5, 1/fs)
sig_1 = 0
for _fre in fre_1:
sig_1 += np.sin(2*np.pi*_fre*t)
sig_1 += 0.2*np.random.random(t.shape[0])
sig_2 = 0
for _fre in fre_2:
sig_2 += np.sin(2*np.pi*_fre*t)
sig_2 += 0.2*np.random.random(t.shape[0])
# 计算自功率谱密度
fre_sig1, mag_sig1 = signal.welch(sig_1, fs, nperseg=fs, noverlap=fs // 2, scaling='spectrum')
mag_sig1 = np.sqrt(mag_sig1) * np.sqrt(2)
# 计算频率响应函数
mag_response = mag_1_2 / mag_sig1
# 绘制结果
plt.plot(fre_sig1, mag_response.real)
plt.xlabel("frequencies/Hz")
plt.ylabel("real")
plt.show()
plt.plot(fre_sig1, mag_response.imag)
plt.xlabel("frequencies/Hz")
plt.ylabel("imag")
plt.show()
```