wildlifewjl 2022-12-27 17:22 采纳率: 100%
浏览 67
已结题

又是一个数字信号处理原理的问题

图片上面是步骤下面是伪代码,用C++或者python都可以,虽然图片给了步骤但还是不会写

img

  • 写回答

1条回答 默认 最新

  • heart_6662 2022-12-27 17:44
    关注

    我会写,但是被骗了几次了,被白嫖钓鱼怕了,若干对你有帮助,希望可以给我个采纳!


    这个东西应该是 一个求低通滤波器系数的伪代码,其中 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]。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月27日

悬赏问题

  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 哪个tomcat中startup一直一闪而过 找不出问题
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳