Python信号分析 | 信号的表示(一)【指数、抽样、正弦】

近来学习信号分析与处理的内容,尝试用MATLAB语言和Python语言两种方法实现信号的处理,不足之处,请多指教。

1、指数信号
MATLAB中用exp函数表示,调用格式为:

ft=A*exp(a*t)

Python中表示方法类似,同样用exp函数。

MATLAB代码:

%    指数信号   %
A = 1;a = -0.6;
t = -10:0.01:10;   %定义时间点
ft = A*exp(a*t); %计算这些点的函数值
plot(t,ft);        %画图命令
grid on;           %设置网格

Python代码:

"""
    指数信号
"""
import numpy as np
import matplotlib.pyplot as plt

t = np.linspace(-10.0,10.0,1000)  #通过linspace函数指定t的取值范围
plt.ylim(0,5)                          #定义纵轴取值范围
plt.subplot(221)     #显示的位置
plt.title(u'exp(-0.6*t)')   #图名
ft = np.exp(-0.6*t)              #调用exp函数计算指数信号
plt.plot(t,ft)                #绘图
plt.subplot(222)
plt.title(u'exp(0.6*t)')
ft1 = np.exp(0.6*t)
plt.plot(t,ft1)
plt.subplot(212)
plt.title(u'exp(0*t)')
ft2 = np.exp(0*t)
plt.plot(t,ft2)
plt.show()

运行结果:
指数信号时域波形
2、抽样信号
定义:Sa(t)=sin(t)/t
MATLAB中用sinc函数表示,调用格式为:

ft=sinc(t/pi)

Python中也用sinc函数表示,调用与上相似。

MATLAB代码:

t = -5*pi:pi/100:5*pi;   %t的取值范围
ft = sinc(t/pi);   %调用函数计算
plot(t,ft);
axis([-10,10,-0.5,1.2]);    %定义画图范围,横轴,纵轴
title('抽样信号')   %图名

Python代码:

import numpy as np
import matplotlib.pyplot as plt

t = np.linspace(-5.0 * np.pi,5.0*np.pi,1000)  #通过linspace函数指定t的取值范围
ft = np.sinc(t/np.pi)   #调用sinc函数计算抽样信号
plt.ylim(-0.5,1.2)       #定义纵轴取值范围
plt.plot(t,ft)               #绘图
plt.title(u'抽样信号') #图名
plt.show()               #显示

运行结果:
抽样信号时域波形

3、正弦信号
在MATLAB中用sin函数表示,调用格式为:

ft=A*sin(w*t+phi)

在Python中也用sin函数表示,调用格式与上类似。

MATLAB代码:

%    正弦信号   %
A = 5; w = 0.5*pi; phi = 0;
t = 0:0.01:12;
ft = A*sin(w*t+phi);
plot(t,ft);
title('正弦信号5sin(pi/2)t');

Python代码:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import math

N = 500
t = np.linspace(0,12,num=N)
# w = pi/2
fs = 0.25
x1 = 5 * np.sin(2 * math.pi * fs * t)
plt.subplot(221)
plt.plot(t,x1)
plt.title(u'3sin(pi/2)t')
plt.ylim(-5.0,5.0)
# w = pi
fs = 0.5
x2 = 5 * np.sin(2 * math.pi * fs * t)
plt.subplot(222)
plt.plot(t,x2)
plt.title(u'3sin(pi*t)')
plt.ylim(-5.0,5.0)
# w = 3pi/2
fs = 0.75
x3 = 5 * np.sin(2 * math.pi * fs * t)
plt.subplot(212)
plt.plot(t,x3)
plt.title(u'3sin(3pi/2)*t')
plt.ylim(-5.0,5.0)
plt.show()

运行结果:
不同角频率的正弦信号时域波形

  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值