内容简介
“信号与系统”是一门理论性和实践性均非常强的课程,主要包括信号的表示、运算和变换等内容,以及系统的时域分析和变换域分析。基于软件编程的方法对信号与系统进行分析和实现,将有利于提高学生的实践能力,促进对理论的理解。
本书将“信号与系统”课程中涉及的主要概念与教学实例相结合,通过Python编程实现信号与系统的分析,对重要的性质进行验证和演示,以及结合工程实践案例开展编程实践。本书第一章简单介绍Python语言基础,侧重点在于覆盖后面章节用到的编程基础知识,而非面面俱到介绍编程方法。第二章到第八章,与“信号与系统”课程教学内容相对应,通过实例介绍信号和系统分析编程实现方法。第九章对基于大语言模型的编程仿真方法进行介绍,并给出了实际案例。
随书可以提供全套相关代码、教学ppt、实践课程授课方案、配套视频、实验报告模版等资源。
目录介绍
目录
第1章Python语言基础1
1.1Python语言简介1
1.2软件编程在信号分析和处理中的应用1
1.3Python开发环境2
1.3.1Python的安装2
1.3.2Python集成开发环境4
1.3.3PyCharm开发环境的设置6
1.3.4编写示例代码并运行11
1.3.5面向Python初学者的学习建议13
1.4Python的扩展库14
1.5Python的基础语法20
1.5.1行和缩进20
1.5.2代码注释22
1.5.3变量名的定义22
1.5.4基本数据类型22
1.5.5容器或集合类型23
1.5.6常见运算符25
1.5.7数据类型转换26
1.5.8print语句26
1.5.9循环和条件控制27
1.5.10函数的定义和使用29
1.5.11lambda函数29
1.5.12库和模块的导入30
1.6基于matplotlib的基本绘图方法31
1.6.1基本绘图方法31
1.6.2折线的顺序33
1.6.3图形中的颜色和线型34
1.6.4中文的支持34
1.6.5公式的支持35
1.6.6绘制多图36
本章小结38
第2章信号的表示和基本运算39
2.1信号的数值表示39
2.1.1时间序列的表示40
2.1.2e指数信号41
2.1.3幂函数和指数函数信号42
2.1.4正余弦信号43
2.1.5Sa函数和sinc函数44
2.1.6单位阶跃信号45
2.1.7单位样值函数46
2.1.8复指数信号47
2.1.9门函数49
2.1.10分段函数50
2.1.11周期矩形脉冲函数52
2.2信号的基本运算53
2.2.1信号的对位运算53
2.2.2离散信号的累加55
2.2.3离散信号的能量和功率56
2.3信号的波形变换57
2.3.1信号的平移和翻转57
2.3.2信号截取60
2.3.3信号的压缩和扩展61
2.4连续信号的符号表示和符号运算64
2.4.1连续信号符号表示法64
2.4.2复信号的符号表示法66
2.4.3波形计算和变换68
2.4.4符号表达转换为数值表达70
2.5音频信号的产生与播放71
2.5.1正弦音频信号71
2.5.2DTMF信号72
2.5.3乐音信号74
2.5.4wav音频文件的存储和读取76
本章小结81
第3章线性时不变系统的时域分析84
3.1系统的线性性质和时不变性质验证84
3.2基于经典法的微分方程求解87
3.2.1利用经典法求全响应的符号解87
3.2.2冲激响应的解析解90
3.3迭代法求解差分方程91
3.4系统的时域仿真93
3.4.1连续系统的时域仿真和数值解93
3.4.2离散系统的时域仿真和数值解96
3.4.3以滤波方式计算离散系统的响应98
3.5卷积的计算与仿真98
3.5.1卷积和98
3.5.2连续时间卷积的数值近似102
3.5.3利用卷积处理音频信号106
3.5.4二维离散卷积简介108
本章小结110
第4章信号的频域分析112
4.1傅里叶级数的展开与合成112
4.1.1三角函数形式的傅里叶级数112
4.1.2指数函数形式的傅里叶级数115
4.2傅里叶级数的谱系数计算118
4.3周期信号的功率120
4.4利用FFT方法实现傅里叶变换的数值近似124
4.4.1FFT方法的原理124
4.4.2FFT方法的编程实现125
4.4.3非对称区间上的FFT编程仿真126
4.4.4对称区间上的FFT编程仿真130
4.4.5周期信号的FFT编程仿真132
4.4.6利用卷积定理实现快速卷积和运算133
4.4.7音频信号的频谱分析135
4.5绘制时频图138
4.6傅里叶变换的符号运算139
4.7序列傅里叶变换的导出141
本章小结143
第5章连续系统的频域分析
及傅里叶变换应用145
5.1实际滤波电路的频响特性仿真145
5.2线性失真与非线性失真151
5.3理想低通滤波器的构建与分析154
5.4时域采样的仿真159
5.4.1采样过程159
5.4.2采样信号恢复163
5.4.3音频数据的采样与恢复169
5.5调制解调与频分复用过程的仿真171
本章小结176
第6章拉普拉斯变换和连续系统
的变换域分析177
6.1拉普拉斯逆变换的部分分式展开法177
6.2拉普拉斯变换和拉普拉斯逆变换的符号计算180
6.2.1拉普拉斯变换的符号计算180
6.2.2拉普拉斯逆变换的符号计算182
6.3线性时不变系统的表示方法184
6.3.1基于系数向量的系统表示方法184
6.3.2基于零、极点的系统表示方法185
6.4连续系统零、极点图的绘制185
6.4.1基于scipy计算连续系统的零、极点185
6.4.2基于sympy库的连续系统零、极点的绘制187
6.4.3基于control库的连续系统零、极点的绘制187
6.5系统零、极点分布与稳定性的关系189
6.5.1连续时间系统的稳定性验证189
6.5.2基于根轨迹的系统稳定性分析191
6.6系统零、极点分布与频率响应特性的关系196
6.6.1由系统的零、极点分布决定系统的频率响应特性196
6.6.2二阶系统的极点位置与系统频率响应特性的关系200
6.6.3巴特沃思滤波器202
6.7电路系统的仿真205
6.7.1基于lcapy的电路系统仿真与分析205
6.7.2基于Scilab和Xcos的电路系统仿真210
本章小结211
第7章离散信号与系统的z域分析214
7.1用部分分式展开法求逆z变换214
7.2z变换的符号表示法215
7.3离散时间系统的表示方法217
7.4绘制离散时间系统的零、极点图218
7.5系统零、极点分布与稳定性的关系223
7.6系统零、极点分布与频率响应特性的关系224
7.6.1数字滤波器的频率响应特性224
7.6.2系统函数零、极点分布与频率响应特性的关系227
7.6.3逆系统与回声消除235
本章小结238
第8章系统的状态变量分析239
8.1系统的状态方程描述239
8.1.1系统的状态空间表示239
8.1.2系统模型定义和转换241
8.1.3针对电路的状态变量分析243
8.2系统状态方程的求解245
8.2.1连续系统状态方程的数值求解法245
8.2.2离散系统状态方程的数值求解法249
8.2.3连续系统状态方程的时域符号求解法251
8.2.4连续系统状态方程的拉普拉斯变换符号求解法255
8.2.5离散系统状态方程的符号求解法256
8.3系统的可控制性和可观察性257
8.3.1状态矢量的线性变换257
8.3.2由对角化的状态空间描述判断系统的可控制性和可观察性259
8.3.3系统的可控制性和可观察性的满秩判别法262
本章小结265
第9章基于大语言模型的
“信号与系统”仿真教学268
9.1大语言模型简介268
9.2大语言模型在辅助编程中的应用方式269
9.3大语言模型在“信号与系统”仿真教学中的应用270
9.4大语言模型交互式编程举例272
9.5基于多智能体的大模型编程仿真系统275
本章小结277
参考文献278