数字滤波器设计——2(Matlab、FPAG、Python)

来源:互联网 发布:电钢琴怎么选 知乎 编辑:程序博客网 时间:2024/05/17 09:23

数字滤波器设计——2(Matlab、FPAG、Python)

信号发生(python)

基于python的 math 和 numpy 模块,我们可以产生各种各样的信号。至此就举几个简单的小例子。

三角波(锯齿波):

def triangle_wave(size, T):  # size:采样点个数,T: 采样周期    t = np.linspace(-1, 1, size, endpoint=False)    y = np.abs(t)    y = np.tile(y, T) - 0.5    x = np.linspace(0, 2*np.pi*T, size*T, endpoint=False)    return x, ydef sawtooth_wave(size, T):                 t = np.linspace(-1, 1, size)    y = np.tile(t, T)    x = np.linspace(0, 2*np.pi*T, size*T, endpoint=False)    return x, y

使用x, y = triangle_wave(20, 5) 产生波形。绘制图形效果如下:

三角波

同样可以利用 numpy 内部函数进行信号好的频谱分析:
参考:f = np.fft.fft(y) 绘图可得如下图形:
频谱分析

同样可以对 f 进行信号恢复,只要利用yy=np.fft.ifft(f)即可。效果图小伙伴们可以自己尝试一下。看下时候完全恢复了。

信号叠加

该部分也很简单,顾名思义就是将两段信号进行相加。在此,直接贴出代码,小伙伴们简单分析一下就出来了。

x = np.linspace(0, 2*np.pi, 16, endpoint=False)y = np.sin(2*x) + np.sin(3*x + np.pi/4)

其他类型的信号,小伙伴们可以参考进行编写,同时也可以利用音频来产生或者接受各种各样的信号。
下一部分就开始正题,开始共同探讨基于Matlab的滤波器的设计以及FPGA上的设计实现。

原创粉丝点击