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

01 础练习


一、傅里叶级数分解

1、求解周期信号傅里叶级数并绘制频谱

(1)必做题

  (1)第一小题

▲ 图1.1.1  周期信号第一小题

▲ 图1.1.1 周期信号第一小题

◎ 求解:

  1. 信号三角形式的傅里叶级数分解系数

  在求解过程中, 令 ω 1 = 2 π / T \omega _1 = 2\pi /T ω1=2π/T ,根据傅里叶级数分解公式,

  下面通过 Python 编程, 利用上面推导出来的傅里叶级数分解系数公式,取前 N=300项谐波进行叠加,绘制出相应的综合波形。其中周期 T=2。 验证上述公式正确性。

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2023-04-04
#
# Note:
#============================================================
from headm import *
T = 2
t = linspace(-1.5, 1.5, 10000)
def fs(n):
    if n == 0:      return 0.25,0
    if n%2 == 0:    return 0, 0
    return 0, 1.5*(1-(-1)**n)/n/pi
ft = zeros(len(t))
fsn = 300
for n in range(fsn):
    a,b = fs(n)
    printff(a,b)
    omega = 2*pi/T*n
    ft = ft + a*cos(omega*t)+b*sin(omega*t)
plt.plot(t, ft, lw=3)
plt.xlabel("t")
plt.ylabel("f(t)")
#plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

  在合成的波形中, 在信号间断点处能够观察到明显的吉布斯过冲振荡现象。
▲ 图1.1.2 使用前 300项谐波合成的信号波形

▲ 图1.1.2 使用前 300项谐波合成的信号波形

  1. 复指数形式傅里叶级数分解系数

  1. 单边频谱

▲ 图1.1.3 周期信号的单边频谱

▲ 图1.1.3 周期信号的单边频谱

  (2)第二小题

▲ 图1.1.4  周期信号第二小题

▲ 图1.1.4 周期信号第二小题

◎ 求解:

  在求解过程中, 令 ω 1 = 2 π / T \omega _1 = 2\pi /T ω1=2π/T ,根据傅里叶级数分解公式,

  1. 信号三角形式的傅里叶级数分解系数

  信号是奇对称信号,所以:

  上面这个积分看起来挺吓人的,对于是否能够 一次性推导出来没有太大的信心。 下面借助于 Sympy 符号公式推导软件帮助完成计算。

x,T,t,n = symbols('x,T,t,n')

fn = 4/T*(integrate(4*t/T*sin(n*2*pi/T*t),(t,0,T/4)) +
        integrate(-4/T*(t-T/2)*sin(n*2*pi/T*t),(t,T/4,T/2)))

result = simplify(fn)

  下面是软件给出的结果。 由于此时 n ≥ 1 n \ge 1 n1 ,所以下面公式还可以进一步化简。

  化简得到 b n b_n bn 的表达式为:

from headm import *
from sympy                  import symbols,simplify,expand,print_latex
from sympy                  import *

x,T,t,n = symbols('x,T,t,n')

fn = 4/T*(integrate(4*t/T*sin(n*2*pi/T*t),(t,0,T/4)) +
        integrate(-4/T*(t-T/2)*sin(n*2*pi/T*t),(t,T/4,T/2)))

result = simplify(fn)

print_latex(result)
_=tspexecutepythoncmd("msg2latex")
clipboard.copy(str(result))

  下面是利用上面给出的傅里叶级数分解共识,将前面 300 项进行叠加所获得波形, 其中令 T = 1。 可以看到这个波形与给定的作业波形是一致的。 从另外一个方面也验证了所得到的公式的正确性。

▲ 图1.1.5 使用前300项傅里叶级数合成的信号波形

▲ 图1.1.5 使用前300项傅里叶级数合成的信号波形

  1. 复指数形式傅里叶级数分解系数

  1. 单边频谱

▲ 图A1.1.6 信号的单边频谱

▲ 图A1.1.6 信号的单边频谱

  (3)第三小题

▲ 图1.1.4  周期信号第三小题

▲ 图1.1.4 周期信号第三小题

◎ 求解:

  在求解过程中, 令 ω 1 = 2 π / T \omega _1 = 2\pi /T ω1=2π/T ,根据傅里叶级数分解公式,

  1. 信号三角形式的傅里叶级数分解系数

  信号是一个奇对称信号, 所以有:

  下面仍然使用 sympl 符合推导,获得上面 bn 的积分表达式。

x,T,t,n = symbols('x,T,t,n')
fn = 4/T*integrate(-2/T*(t-T/2)*sin(n*2*pi/T*t),(t,0,T/2))
result = simplify(fn)


  根据上面结果,可以获得 bn 的表达式:

  下面是傅里叶级数前 300 项叠加后的波形,其中信号周期 T=1。 可以看到它与题目给定的波形是一致的,能够在信号间断点出观察到明显的吉布斯 过冲振荡。
▲ 图1.1.8 信号傅里叶级数前 300 项叠加的波形

▲ 图1.1.8 信号傅里叶级数前 300 项叠加的波形

  1. 复指数形式傅里叶级数分解系数

  1. 单边频谱

▲ 图1.1.9 信号的单边频谱

▲ 图1.1.9 信号的单边频谱

(2)选做题

  (4)选做题
▲ 图1.1.6  周期信号选做题

▲ 图1.1.6 周期信号选做题

◎ 求解:

  1. 信号三角形式的傅里叶级数分解系数

  这是一个偶对称的周期信号,所以其中的 bn 分量为 0。


  下面是 sympl 给出的 an 积分公式:

x,T,t,n = symbols('x,T,t,n')
fn = 2/T*integrate((1-4*t**2/T**2)*cos(n*2*pi/T*t),(t,-T/2,T/2))
result = simplify(fn)

  整理一下,可以得到:

  下面利用上述傅里叶分解公式,使用前级数300项绘制出对应的波形。 其中周期 T= 1。 可以看到与给定的波形是相同的。
▲ 图1.1.11 使用傅里叶级数前300项合成的信号波形

▲ 图1.1.11 使用傅里叶级数前300项合成的信号波形

  1. 复指数形式傅里叶级数分解系数

  1. 单边频谱

▲ 图A1.1.12 信号的单边频谱

▲ 图A1.1.12 信号的单边频谱

  (5)第五小题

▲ 图1.1.13  周期信号第五小题

▲ 图1.1.13 周期信号第五小题

◎ 求解:

  1. 信号三角形式的傅里叶级数分解系数

  这是一个偶对称的周期信号,所以其中的 bn 分量为 0。




▲ 使用傅里叶级数前300项合成的信号波形

▲ 使用傅里叶级数前300项合成的信号波形

  1. 复指数形式傅里叶级数分解系数

  2. 信号的单边频谱
    ▲ 信号的单边频谱

    ▲ 信号的单边频谱

2、分析周期信号频谱

◎ 求解:

  (1) 根据信号表达式可以知道其中包括有 直流分量,三个谐波角频率分别为 2、3、5。所以信号的基频对应的角频率为 1 。

  (2) 为了绘制 f(t) 的幅度谱和相位谱, 根据三角恒等式,将信号表达式转换成 c n cos ⁡ ( n ω 1 t + θ n ) c_n \cos \left( {n\omega _1 t + \theta _n } \right) cncos(nω1t+θn) 的形式,如下:

▲ 图1.1.16 题目原来信号表达式与修改后的信号表达式对应的波形

▲ 图1.1.16 题目原来信号表达式与修改后的信号表达式对应的波形

  根据表达式, 可以知道信号中各个谐波对应的幅度和相角:

▲ 图A1.1.17 信号的单边频谱

▲ 图A1.1.17 信号的单边频谱

from headm import *

n = list(range(8))
cn = [2,0,2.5,2,0,1,0,0]
tn = [0,0,-0.9273,-pi/4,0,-pi/3,0,0]

plt.subplot(2,1,1)
markerline,_,_ = plt.stem(n, cn)
plt.setp(markerline, markersize=6)

plt.xlabel("n")
plt.ylabel("c(n)")
plt.grid(True)
plt.title("幅度谱")
plt.tight_layout()

plt.subplot(2,1,2)
markerline,_,_ = plt.stem(n, tn)
plt.setp(markerline, markersize=6)

plt.xlabel("n")
plt.ylabel("c(n)")
plt.grid(True)
plt.title("相位谱")
plt.tight_layout()

plt.show()

二、傅里叶级数谐波分量

1、信号中的谐波分量

▲ 图1.2.1  电压信号波形

▲ 图1.2.1 电压信号波形

◎ 求解:

  根据观察,信号的周期为 10微秒,对应的基频为 100kHz。 信号的交流分量呈现“奇谐对称”,所以信号中只包含有奇次谐波分量,也就是该信号的谐波分量中只有 100kHz, 300kHz, 500kHz。

  在给定的四个电路中, 第一个电路为 线性时不变系统, 其余三个都是非线性时不变系统。 线性时不变信号的输出信号中不会出现输入信号中 不同的新的频率成分。 所以在给定的四个电路中, 除了第一个电路之外,其它三个电路都可以产生 200kHz的谐波分量。

▲ 图A1.2.2 使用SPICE仿真后RC电路输出电压波形

▲ 图A1.2.2 使用SPICE仿真后RC电路输出电压波形

▲ 图A1.2.3 使用SPICE仿真后的二极管RC电路输出电压波形

▲ 图A1.2.3 使用SPICE仿真后的二极管RC电路输出电压波形

▲ 图A1.2.2 绝对值电路的输出波形

▲ 图A1.2.2 绝对值电路的输出波形

▲ 图A1.2.3 平方电路输出的电路波形

▲ 图A1.2.3 平方电路输出的电路波形

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST6.PY                     -- by Dr. ZhuoQing 2023-04-04
#
# Note:
#============================================================
from headm import *
t = linspace(-2.7*2*pi, 2.7*2*pi, 10000)
f1 = -0.25 + arccos(-cos(t))/pi
f1 = f1**2 * 2
plt.plot(t, f1, lw=3)
plt.xlabel("t")
plt.ylabel("f(t)")
plt.axis([min(t)-0.5, max(t)+0.5, -0.5, 2.5])
plt.grid(True)
plt.grid(False)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
#        END OF FILE : TEST6.PY
#============================================================

2、补齐周期信号

◎ 求解:

  (1) 根据题目给定条件,信号为偶函数,并呈现奇谐对称。 对应的信号波形为:

▲ 图1.2.2 补齐后信号在一个周期内的波形

▲ 图1.2.2 补齐后信号在一个周期内的波形

  (2) 根据题目给定条件,信号为奇函数,呈现所谓的偶谐 对称,实际上就是原来的一个周期内包含两个相同的波形。对应的信号如下图所示:

▲ 图1.2.3 补齐后信号在一个周期内的波形

▲ 图1.2.3 补齐后信号在一个周期内的波形

from headm import *

T = 1
TT = T*1.5
t = linspace(-0.75*T, 0.75*T , 10000)

def G(t, startn, endn):
    return heaviside(t-startn,0.5)-heaviside(t-endn,0.5)
def Gt(t, center, width):
    startn = center-width/2
    endn = startn + width
    return heaviside(t-startn,0.5)-heaviside(t-endn,0.5)

omega = 2*pi/T*4*1.25

f1 = cos(t*omega)*exp(-t/(T/4))*G(t,0,T/4)
f2 = f1[::-1]
f3 = f1-f2

sn = int(len(t)*T/2/TT)
f4 = [0]*sn + list(f3[:len(t)-sn])
f5 = f3 + array(f4)

plt.plot(t,f5,lw=3, label='f(t)')

plt.xlabel("t")
plt.axis([min(t),max(t), -1.5, 1.5])
plt.ylabel("f(t)")
plt.grid(True)
plt.grid(False)
plt.tight_layout()
plt.show()

3、判断波形谐波分量特性

▲ 图1.2.4 个个周期信号中的谐波分量特性

▲ 图1.2.4 个个周期信号中的谐波分量特性

三、傅里叶级数性质

1、必做题

◎ 证明:

  根据题目可以知道周期信号的周期为 2 π 2\pi 2π ,那么对应的傅里叶级数为:


  对上面等式两边进行求导:


  所以,对于 d f ( t ) / d t df\left( t \right)/dt df(t)/dt 的傅里叶级数 a n ′ , b n ′ a'_n ,b'_n an,bn 与原来信号的傅里叶级数之间有如下关系:

2、选做题

◎ 证明:

四、周期信号分析

◎ 求解:

  根据条件 (1)(2)(3)(4)可以知道给定的函数值包含有一次谐波。 根据条件(5)可以知道该谐波的功率为 1/8, 所以该信号的有效值为 1/8 , 信号的峰值为 2 / 8 \sqrt 2 /8 2 /8

  根据条件(6),可以知道该信号为 偶实 信号,所以信号的周期为 4, 峰值为 2 / 8 \sqrt 2 /8 2 /8 的余弦信号。它的表达式为:

  最终,信号参数为:


■ 相关文献链接:

● 相关图表链接:

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/129940943
今日推荐