本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案。
▌第三题
3.已知序列 f [ n ] f\left[ n \right] f[n]如下图所示,画出下列格式的波形。
注:(4)(5)为选做
求解:
如下是离散时间序列f f [ n ] f\left[ n \right] f[n]的波形:
▲ 离散时间序列f[n]的波形
(1)第一小题
第一小题 f 1 [ n ] f_1 \left[ n \right] f1[n]是将原来序列 f [ n ] f\left[ n \right] f[n]往右平移5个单位:
▲ 第一小题f1[n]的波形
(2)第二小题
第二小题的序列 f 2 [ n ] f_2 \left[ n \right] f2[n]是将原来序列 f [ n ] f\left[ n \right] f[n]按照3倍进行抽点压缩:
▲ 信号f[3n]序列波形
(3)第三小题
第三小题 f 3 [ n ] f_3 \left[ n \right] f3[n]是由原来序列 f [ n ] f\left[ n \right] f[n]经过三次操作:
a)反褶
序列
f
[
n
]
f\left[ n \right]
f[n]经过反褶之后,
f
[
−
n
]
f\left[ { - n} \right]
f[−n]变为:
▲ 信号f[n]的反褶波形f[-n]
b)平移
f [ − n ] f\left[ { - n} \right] f[−n]再往右平移5,成为 f [ 5 − n ] f\left[ {5 - n} \right] f[5−n]:
▲ 信号f[n]的反褶平移波形f[5-n]
c)抽取
最后获得在 n − 3 n - 3 n−3处的脉冲序列, f [ 5 − n ] ⋅ δ [ n − 3 ] f\left[ {5 - n} \right] \cdot \delta \left[ {n - 3} \right] f[5−n]⋅δ[n−3]:
▲ 第三小题信号的波形f3[n]
(4)第四小题
第四小题 f 4 [ n ] f_4 \left[ n \right] f4[n]的波形可以看成原来信号序列 f [ n ] f\left[ n \right] f[n]经过反褶、压缩与平移两步获得:
a)反褶
f
[
−
n
]
f\left[ { - n} \right]
f[−n]的波形:
▲ f[n]的反褶f[-n]的波形
b)压缩
f [ − 2 n ] f\left[ { - 2n} \right] f[−2n]的波形:
▲ 信号f[-2n]的波形
c)平移
f [ − 2 n + 2 ] f\left[ { - 2n + 2} \right] f[−2n+2]序列的波形:
▲ 信号f[-2n+2]的波形
(5)第五小题
这个题目则需要分别计算出 n 2 n^2 n2所对应的序列,然后逐点进行映射即可:
▲ 信号f[n**2]的序列波形
▌附件
1.绘图程序
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST2.PY -- by Dr. ZhuoQing 2021-03-15
#
# Note:
#============================================================
from headm import *
def fwindow(n, n1, n2):
return heaviside(n-n1, 1) - heaviside(n-n2-1, 1)
def fpulse(n, m):
return fwindow(n, m, m)
def f(n):
return fpulse(n, -2) * 0.5 + fwindow(n, -1, 4)
#------------------------------------------------------------
n = arange(-5, 12)
fn = f(n).T
f1n = f(n-5).T
f2n = [(lambda n: fn[3*n+5] if 3*n>=-5 and 3*n<12 else 0)(n) for n in range(-5, 12)]
f3n = f(5-n).T * fpulse(n, 3)
f4n = [(lambda n:fn[-2*n+2+5] if -2*n+2>=-5 and -2*n+2<12 else 0)(n) for n in range(-5, 12)]
f5n = [(lambda n:fn[n**2+5] if n**2>=-5 and n**2<12 else 0)(n) for n in range(-5, 12)]
#------------------------------------------------------------
fname = 'f[n**2]'
plt.stem(n, f5n, label=fname)
plt.xlabel("n")
plt.ylabel(fname)
plt.grid(True)
plt.legend(loc="upper right")
plt.tight_layout()
plt.show()
#------------------------------------------------------------
# END OF FILE : TEST2.PY
#============================================================