信号与系统 2023(春季) 作业参考答案 - 第一次作业

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信号与系统 2023(春季) 作业参考答案 - 第一次作业相关的知识,希望对你有一定的参考价值。

 

01 础练习


一、绘制信号波形

  在下面给出的参考答案中, 使用了Python中的绘图工具,完成函数表达式的信号波形绘制。

1、必做题

  (1) 单边指数信号


◎ 解答:

▲ 图1.1.1 信号波形

▲ 图1.1.2 信号波形

from headm import *

def f(x):
    return exp(-0.5*x)*heaviside(x+1, 0.5)

t = linspace(-5, 5, 250)
ft = f(t)

plt.plot(t, ft, linewidth=3)

plt.xlabel("t")
plt.ylabel("f(t)")
plt.grid(True)
plt.title("exp(-0.5t)u(t+1)")
plt.tight_layout()
plt.show()

  (2) 升余弦信号

◎ 解答:

▲ 图1.1.3 信号波形

▲ 图1.1.4 信号波形

def f(t):
    return (1+cos(pi*t))*(heaviside(t+1, 0.5)-heaviside(t-1, 0.5))

t = linspace(-2, 2, 250)
ft = f(t)

  (3) 正弦调制的高斯信号

◎ 解答:

▲ 图1.1.5 信号波形

▲ 图1.1.6 信号波形

from headm import *

def f(t):
    return exp(-t**2/100)*cos(2*pi*t)

t = linspace(-20, 20, 1000)
ft = f(t)
envelope_up = exp(-t**2/100)
envelope_down = -exp(-t**2/100)

clipboard.copy(str(ft))

plt.plot(t, ft, linewidth=3)
plt.plot(t, envelope_up, 'k--', linewidth=1)
plt.plot(t, envelope_down, 'k--', linewidth=1)

plt.xlabel("t")
plt.ylabel("f(t)")
plt.grid(True)
plt.title("exp(-0.5t)u(t+1)")
plt.tight_layout()
plt.show()

  (4)复合信号

◎ 解答:

▲ 图1.1.7 信号波形

▲ 图1.1.8 信号波形

  (5)衰减振荡序列

◎ 解答:

▲ 图A1.1.9 信号波形

▲ 图1.1.9 信号波形

from headm import *1

def f(t):
    return sin(0.1*pi*t)*exp(-t/20)*heaviside(t, 0.5)

startn = -5
endn = 50
t = linspace(startn, endn, endn-startn+1, endpoint=True)
ft = f(t)

clipboard.copy(str(ft))

plt.stem(t, ft)

plt.xlabel("t")
plt.ylabel("f(t)")
plt.grid(True)
plt.tight_layout()
plt.show()

  (6)双边sinc函数序列


◎ 解答:

▲ 图A1.1.11 信号波形

▲ 图1.1.12 信号波形

  (7)窗口序列

  其中: N = 8 N = 8 N=8

◎ 解答:

▲ 图1.1.13 信号波形

▲ 图1.1.14 信号波形

2、选做题

  (1) 电容放电信号波形

  在下面阻容放电回路中, 电容C1、电阻R1的标称值在电路中已经标明。 在时间 t = 0 t = 0 t=0 时,电容的初始电压为 1V。 请绘制出在 t ≥ 0 t \\ge 0 t0 之后,电阻 R1 上的电压 U O ( t ) U_O \\left( t \\right) UO(t) 的信号波形。

▲ 图A2.1.1 电容放电电路

◎ 解答:

▲ 图1.1.16 信号波形

▲ 图1.1.17 信号波形

  (2) sinc函数乘积信号

  其中: sin ⁡ c ( t ) = sin ⁡ ( t ) / t \\sin c\\left( t \\right) = \\sin \\left( t \\right)/t sinc(t)=sin(t)/t

◎ 解答:

▲ 图1.1.18 信号波形

▲ 图1.1.19 信号波形

  (3)震荡序列信号

注意:序列函数中的自变量是 n n n 的平方。请观察序列,并判断该序列是否为周期序列信号?

◎ 解答:

  该序列信号是一个周期为 6 的周期序列信号。

▲ 图1.1.20 信号波形

◎ 解答:

  (4) 具有无限多个极大值极小值的有限长信号

这个函数具有无穷多个极大值,极小值。在博文 傅里叶变换中的狄利克雷条件 分析了它的傅里叶变换的特点。

▲ 图1.1.21 信号波形

◎ 解答:

  (5)波形发散的周期信号

提示:这个周期信号将来会在傅里叶变换的狄利克雷条件中分析。在博文 傅里叶变换中的狄利克雷条件 分析了它的傅里叶变换的特点。也请大家思考一下,这个函数在单个周期内:

  • 面积是否有限?
  • 能量是否有限?

◎ 解答:

  该信号周期内的面积无限大, 能量是无限大。

▲ 图1.1.22 信号波形

from headm import *

t = linspace(0.1, 1, 100)
ft = 1/t

for n in range(6):
    nn = n - 3

    tt = t + nn
    plt.plot(tt, ft, 'b-', linewidth=2)
    tn = (nn, nn)
    yn = (10, -0.5)
    plt.plot(tn, yn, 'y--', linewidth=1)

plt.xlabel("t")
plt.ylabel("f(t)")
plt.tight_layout()
plt.show()

二、写出信号函数表达式

  根据下面信号的波形,写出对应的函数表达式。注意,同样一个波形可能会存在多种等效的函数表达式。

1、必做题

  (1)三角信号

▲ 图1.2.1 三角信号

◎ 解答:

  (1)使用分段形式表示的函数形式:

  (2)使用单位阶跃函数表示的函数形式:

  下面使用Python 程序绘制上述函数,可以验证所得到的结果是正确的。

from headm import *

def f(t):
    return 2*(t+1)*heaviside(t+1, 0.5) - 3*t*heaviside(t, 0.5) + (t-2)*heaviside(t-2, 0.5)

t = linspace(-3, 3, 10000)

ft = f(t)

plt.plot(t, ft, linewidth=2)

plt.xlabel('n')
plt.ylabel("f[n]")
plt.axis([-3.5, 3.5, -0.5, 3])
plt.tight_layout()
plt.show()

▲ 图A1.2.2 使用程序绘制的函数波形

  (2)分段阶跃信号

▲ 图1.2.2 分段阶跃信号

◎ 解答:

注:这个函数图像,在最初作业内容发布的时候,最后一段直线的高度没有给定。 这里给定的答案是将其高度设定为 0.4 进行求解。

  (3)左边正弦信号

▲ 图1.2.4 左边正弦信号

注意:在 t > 0 t > 0 t>0 时,对应的 f ( t ) = 0 f\\left( t \\right) = 0 f(t)=0 。信号波形往左无限延拓。

◎ 解答:

  (4)单边指数衰减振荡信号

▲ 图1.2.5 单边指数衰减振荡信号

◎ 解答:

from headm import *

def f(t):
    return exp(-0.1*t)*sin(t)*heaviside(t,0.5)

t = linspace(-1, 40, 10000)

ft = f(t)
up = exp(-0.1*t)*heaviside(t, 0.5)
dn = -up

plt.plot(t, ft, linewidth=2)
plt.plot(t, up, 'k--', linewidth=1)
plt.plot(t, dn, 'k--', linewidth=1)

plt.xlabel('n')
plt.ylabel("f[n]")

plt.tight_layout()
plt.show()

▲ 图A1.2.6 利用Python 绘制的图像

2、选做题

  (1) 周期方波信号

▲ 图1.2.6 周期方波信号

提示:参考前面绘制信号波形中的“复合函数”,以及应用 u ( t ) u\\left( t \\right) u(t) 的特点。

◎ 解答:

  使用复合函数来表述, 但这种形式不太适合用于后期的数学分析。

def f(t):
    return 4*heaviside(cos(0.5*pi*t),0.5)-2

▲ 图1.2.8 使用Python绘制的信号图形

  利用窗口信号表示成周期信号,这种表示可以比较方便后期的信号分析。

  其它参考函数表示形式:

  (1)

  (2)

  (2) 阶跃衰减信号

  下面是一个阶跃衰减信号,它:

  • 只在 ( 0 , 1 ) \\left( 0,1 \\right) (0,1) 之间取值;
  • 起始值 f ( 0 ) = 1 f\\left( 0 \\right) = 1 f(0)=1 ,终值 f ( t ) = 0 , t ≥ 1 f\\left( t \\right) = 0,t \\ge 1 f(t)=0,t1
  • 从0到1过程中,每前进剩余距离一半幅值就降低一半。

▲ 图1.2.7 阶跃衰减信号

◎ 解答:

t = linspace(-.25, 1.25, 10000)
ft = t*0

for n in range(100):
    ft = ft + 0.5**n*(heaviside(t-1+0.5**n,0)-heaviside(t-1+0.5**(n+1),0))

▲ 图1.2.10 使用Python绘制的信号波形

三、判断信号的周期性

1、必做题

  (1) 正弦信号叠加

◎ 解答: 非周期信号

▲ 图1.3.1 信号的波形

  (2) 复指数调制信号


◎ 解答: 周期信号, 周期为4 π \\pi π

▲ 图1.3.2 信号的波形

  (3) 方波信号

◎ 解答: 周期信号, 周期为2T。

def f(t):
    v = t*0
    for n in range(-40, 40):
        v = v + (-1)**n*(heaviside(t-n,0)-heaviside(t-n-1,0))
    return v

▲ 图1.3.3 信号的波形

  (4) 正弦信号三次方

◎ 解答: 周期信号, 周期为 1。

▲ 图1.3.4 信号的波形

  (5) 自变量三次方正弦信号


◎ 解答: 非周期信号。

▲ 图1.3.5 信号的波形

  (6)自变量三次方的正弦波序列

◎ 解答: 周期序列信号, 周期为 16。

▲ 图1.3.6 序列的波形

2、选做题

  (1) 斜边信号与振荡信号的叠加

◎ 解答: 非周期信号。

▲ 图1.3.7 序列的波形

  (2)判断题

◎ 解答

  • 非周期信号与周期信号叠加一定是周期信号。( × )
  • 周期信号与周期信号叠加一定是周期信号。( × )

  (3)判断题
  已知两个序列之间满足 y [ n ] = x [ 2 n ] y\\left[ n \\right] = x\\left[ 2n \\right] y[n]=x[2n] 。请问: