图片上面是步骤下面是伪代码,用C++或者python都可以,虽然图片给了步骤但还是不会写
我会写,但是被骗了几次了,被白嫖钓鱼怕了,若干对你有帮助,希望可以给我个采纳!
这个东西应该是 一个求低通滤波器系数的伪代码,其中 N 是滤波器的阶数,AM 是带通滤波器的最大通带幅度(也称为最大增益),H[k] 是滤波器的频域系数,h[n] 是滤波器的时域系数。
我分析了一下:在这个伪代码中,首先使用 DFT 求出频域系数 H[k],然后使用 IDFT 求出时域系数 h[n]。求出的 h[n] 是一个对称的序列,所以只需要考虑 h[n] 在 n=1 到 n=N/2 的部分,其余部分可以用 h[-n] 的值求出
接下来是我的代码展示
import numpy as np
# 定义滤波器的阶数 N 和最大通带幅度 AM
N = 100
AM = 10
# 求出频域系数 H[k]
H = np.zeros(N) # H[k] 的初始值都为 0
for k in range(N):
H[k] = H(ej(k)) # 根据伪代码中的公式计算 H[k]
# 求出时域系数 h[n]
h = np.fft.ifft(H) # 使用 NumPy 库的 ifft 函数求 IDFT
# 只需要考虑 h[n] 在 n=1 到 n=N/2 的部分
h = h[:N//2+1]
# 对称求出 h[-n] 的值
for n in range(1, N//2):
h[-n] = h[n]
# 绘制滤波器系数 h[n] 的图像
import matplotlib.pyplot as plt
plt.plot(h)
plt.show()
其中,H(ej(k)) 是你自己实现的函数,根据伪代码中的公式计算 H[k]。