用guide做圆周卷积时域演示系统代码
下面是一个用Python编写的圆周卷积时域演示系统代码:
import numpy as np
import matplotlib.pyplot as plt
def circular_convolution(x, h):
N = len(x)
y = np.zeros(N)
for n in range(N):
for k in range(N):
y[n] += x[k] * h[(n-k) % N]
return y
# 输入信号
x = np.array([1, 2, 3, 4])
# 冲激响应
h = np.array([1, 1, 1, 1])
# 进行圆周卷积
y = circular_convolution(x, h)
# 绘制输入信号、冲激响应和输出信号
plt.subplot(3, 1, 1)
plt.stem(x)
plt.title('Input Signal')
plt.xlabel('n')
plt.ylabel('x[n]')
plt.subplot(3, 1, 2)
plt.stem(h)
plt.title('Impulse Response')
plt.xlabel('n')
plt.ylabel('h[n]')
plt.subplot(3, 1, 3)
plt.stem(y)
plt.title('Output Signal')
plt.xlabel('n')
plt.ylabel('y[n]')
plt.tight_layout()
plt.show()
该代码实现了一个圆周卷积时域演示系统。首先定义了一个函数circular_convolution,该函数用于计算圆周卷积。然后,定义了输入信号x和冲激响应h。接下来,调用circular_convolution函数计算输出信号y。最后,使用Matplotlib库绘制输入信号、冲激响应和输出信号的图形。运行代码后,将会显示出绘制的图形。
原文地址: https://www.cveoy.top/t/topic/i6d4 著作权归作者所有。请勿转载和采集!