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

本文介绍如何使用Python设计数字滤波器,包括产生三角波(锯齿波)、信号叠加,利用numpy进行频谱分析,并预告后续将探讨Matlab和FPGA上的滤波器设计。
摘要由CSDN通过智能技术生成

数字滤波器设计——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, y

def 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上的设计实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值