离散时间系统基本理论

离散时间序列

序列的表示

python对离散时间序列求导 离散的时间序列_卷积

序列的分类

python对离散时间序列求导 离散的时间序列_卷积_02

常用时间序列

  1. 离散实序列

python对离散时间序列求导 离散的时间序列_差分_03

  1. 单位阶跃

python对离散时间序列求导 离散的时间序列_卷积_04

  1. 单位脉冲

python对离散时间序列求导 离散的时间序列_差分_05

单位脉冲和单位阶跃响应的关系如下:

python对离散时间序列求导 离散的时间序列_时间序列_06

中间的表述方式可以理解为离散序列的“积分”。

  1. 矩形序列

python对离散时间序列求导 离散的时间序列_差分_07

  1. 离散实指数序列

python对离散时间序列求导 离散的时间序列_卷积_08

python对离散时间序列求导 离散的时间序列_python对离散时间序列求导_09

  1. 离散复序列

python对离散时间序列求导 离散的时间序列_差分_10

python对离散时间序列求导 离散的时间序列_卷积_11

\(\frac{2\pi}{\omega}=\frac{N}{m}\),其中左侧化简后的分子和分母分别与右侧N和m对应,m为周期内含有的包络数,N为周期。

  • 频率大小的影响:

\(e^{jwn}\),当ω越大,\(\frac{2\pi}{ω}\)越小,如果是连续时间序列,则必然是周期变小,但是对于离散时间序列,当\(ω=ω+2k\pi\)时,离散序列对应的频谱图相同。

  • 频率正负的影响:

python对离散时间序列求导 离散的时间序列_卷积_12

正频率是逆时针;负频率是顺时针;

  • 相位影响:

python对离散时间序列求导 离散的时间序列_卷积_13

相变=时移,与Φ和ω均有关。

序列的分解

  1. 离散时间信号的分解:

\[x[n]=\sum_{k=-\infty}^{\infty} x[k] \delta[n-k] \]

任意序列均可分解为不同延迟单位脉冲序列的线性组合。

离散时间系统

系统的表示

  1. 函数表示:

python对离散时间序列求导 离散的时间序列_python对离散时间序列求导_14

  1. 框图表示:

python对离散时间序列求导 离散的时间序列_卷积_15

系统的分类

  1. 无记忆系统,系统的输出只与当前时刻输入相关;(不需要存储器)
  2. 线性系统,系统的输出和输入具有相同的线性组合(齐次性(比例性)[乘系数]和叠加性(可加性)[组合])

例如:

python对离散时间序列求导 离散的时间序列_时间序列_16

  1. 时不变系统,系统的性能不随时间的改变而改变。
  2. 因果系统,当前时刻输出仅取决于当前及以前时刻输入,与以后的输入无关。
  3. 稳定系统,有界输入(序列中的每个值均有界)产生有界输出。

LTI(线性时不变)系统的卷积和表示

\[y[n]=\sum_{\mathrm{k}=\infty}^{\infty} x[k] h[n-k] \]

LTI系统的性质

  1. LTI系统的因果性判据:单位脉冲响应为因果序列h[n]=0,n<0。
  2. LTI系统的稳定性判据:单位脉冲响应绝对可和。
  3. LTI系统的卷积具有交换律,结合率,分配率
  • 由卷积的结合率得到级联系统;
  • 由卷积的分配率得到并联系统;

线性常系数差分方程

python对离散时间序列求导 离散的时间序列_卷积_17

python对离散时间序列求导 离散的时间序列_差分_18

  1. 使用递推迭代法解题:

python对离散时间序列求导 离散的时间序列_python对离散时间序列求导_19

  1. 线性系统,输入为0,输出一定为0。
  2. 线性常系数差分方程表示的系统如果满足初始松弛条件(初始值为0),则该系统是因果的LTI系统。

实验1 卷积差分实现LTI系统

LTI滤波器的分类

python对离散时间序列求导 离散的时间序列_卷积_20

其中IIR滤波器通过差分方程实现;FIR滤波器通过卷积和实现。

  1. FIR滤波器的实现:

python对离散时间序列求导 离散的时间序列_时间序列_21

其中第二步为95阶的FIR滤波器。h中输入的为\(z^0\)至\(z^{-95}\)的系数

[x, fs] = audioread('D:\Carmen_overture_noisy_8k_9.5k.wav');
%x是音频数据,fs是采样频率
h=[-0.002876661682599,0.0001746575876459, 0.001360371198876,-0.002796136591917,...
   0.002880772243978,-0.001242291159412,-0.001096962526785, 0.002332983510346,...
  -0.001307649173739,-0.001368748034394, 0.003551168105363,-0.003178880019962,...
  9.893335945349e-05, 0.003475646276925,-0.004524249512869, 0.001744981182385,...
   0.003045028934091,-0.005977896766947, 0.004207636166295, 0.001465437032989,...
   -0.00672145288472, 0.006941679082687, -0.00116986290666,-0.006501434008723,...
   0.009711662701064,-0.004996261645046,-0.004776969477893,  0.01192171509396,...
  -0.009829941024313, -0.00115476496081,  0.01293443155674, -0.01539978947815,...
   0.004810016748951,   0.0119042644155, -0.02125902167617,  0.01363881290096,...
   0.007699907341382, -0.02688621990559,  0.02641118466116,-0.001738442488601,...
   -0.03172614931786,  0.04644986397443, -0.02220940882214, -0.03527701713573,...
    0.08975330687438, -0.08680834632482, -0.03715598047208,   0.5689856620233,...
     0.5689856620233, -0.03715598047208, -0.08680834632482,  0.08975330687438,...
   -0.03527701713573, -0.02220940882214,  0.04644986397443, -0.03172614931786,...
  -0.001738442488601,  0.02641118466116, -0.02688621990559, 0.007699907341382,...
    0.01363881290096, -0.02125902167617,   0.0119042644155, 0.004810016748951,...
   -0.01539978947815,  0.01293443155674, -0.00115476496081,-0.009829941024313,...
    0.01192171509396,-0.004776969477893,-0.004996261645046, 0.009711662701064,...
  -0.006501434008723, -0.00116986290666, 0.006941679082687, -0.00672145288472,...
   0.001465437032989, 0.004207636166295,-0.005977896766947, 0.003045028934091,...
   0.001744981182385,-0.004524249512869, 0.003475646276925,9.893335945349e-05,...
  -0.003178880019962, 0.003551168105363,-0.001368748034394,-0.001307649173739,...
   0.002332983510346,-0.001096962526785,-0.001242291159412, 0.002880772243978,...
  -0.002796136591917, 0.001360371198876,0.0001746575876459,-0.002876661682599]; 
y = conv(x,h);
player = audioplayer(x,fs); play(player);
figure(1);
subplot(211);
stem(x); 
title('输入信号波形')
subplot(212);
stem(y); 
title('输出信号波形');
audiowrite('D:\snow_p_8-9.5-40db.wav',sig_fil,fs)

实现了高频噪声的滤除。

  1. IIR滤波器的实现:

python对离散时间序列求导 离散的时间序列_python对离散时间序列求导_22

clc
clear all
b=[6.579117719418e-06,0.0002434273556185, 0.004381692401132,  0.05111974467987,     0.4345178297789,    2.867817676541,    15.29502760822,    67.73512226497,      254.0067084936,    818.4660607017,    2291.704969965,    5625.094017186,       12187.7037039,    23437.89173828,     40179.2429799,    61608.17256918,      84711.23728263,    104643.2931138,     116270.325682,     116270.325682,      104643.2931138,    84711.23728263,    61608.17256918,     40179.2429799,      23437.89173828,     12187.7037039,    5625.094017186,    2291.704969965,      818.4660607017,    254.0067084936,    67.73512226497,    15.29502760822,      2.867817676541,   0.4345178297789,  0.05111974467987, 0.004381692401132,  0.0002434273556185,6.579117719418e-06];
a=[ 1,    14.37828690288,    104.1648243034,    504.3023653466,      1827.892164546,    5272.314238219,    12567.18329297,    25391.78098446,       44280.3431479,    67543.21293644,    91031.31413503,    109248.4585498,      117456.9286029,    113663.3624288,    99360.42815769,    78676.34547238,      56541.90742152,    36928.41699943,    21934.12069346,    11849.69282271,      5820.210601159,    2596.511270863,    1050.471970027,    384.5676182832,      127.0294630969,     37.7210460062,    10.02321645795,    2.369609300119,     0.4948536588095,  0.09046795256738,  0.01431382878011, 0.001931131342549,  0.0002178076530115,1.998237004796e-05,1.432599897946e-06,7.529722850038e-08,  2.580713328819e-09,4.328478996595e-11]; 

[x,Fs]=audioread('D:\Program\新建文件夹 (10)\音频\Carmen_overture_noisy_8k_9.5k.wav');
figure;
plot(x); 
y=filter(b,a,x);
figure;
plot(y);
audiowrite('Afterfilter0dB_direct.wav',y,Fs)

本章习题

  1. \(j^{2n}\)的周期为2,因为\(j=e^{\frac{j\pi}{2}}\),带入得\(j^{2n}=e^{jn\pi}\),所以\(\omega=\pi\),\(T=2\)。
  2. 判断系统的特性:

python对离散时间序列求导 离散的时间序列_卷积_23

(1)为稳定,因果,线性,时变,无记忆系统。

python对离散时间序列求导 离散的时间序列_时间序列_24

(2)为非稳定(找一个反例即可),因果,线性,时不变,有记忆系统。

python对离散时间序列求导 离散的时间序列_时间序列_25

(3)为稳定(逐项稳定,项数有界),非因果,线性,时不变,有记忆系统。

python对离散时间序列求导 离散的时间序列_卷积_26

(4)为稳定,非因果(抽取器),线性,时变,有记忆系统。

(5)\(T[x[n]]=x[n]+3u[n+1]\)为因果稳定系统,不要看到\(u[n+1]\)就以为是非因果。看是否为非因果关键是看输入是否超前于输出。(看\(x[n]\)内的宗量)

(6)本题中的C选项错在因果。

python对离散时间序列求导 离散的时间序列_卷积_27

对于这种有两个y[n]的,y[n]没有n次方则为线性的;y[n]的系数不带n的就是时不变的。

这种系统未必是非因果:之后学Z变换时是看收敛域。

  1. 求系统响应:
    已知\(u(n)\)的响应为\(s(n)\),则\(δ(n)=u(n)-u(n-1)\)的响应为\(s(n)-s(n-1)\)。
  2. 求卷积:
  3. python对离散时间序列求导 离散的时间序列_卷积_28

  4. 利用图解法求解:将\(u(n)\)关于\(y\)轴翻转,然后整体加上\(n\)(向右移动\(n\)),对位相乘即为卷积的结果,当\(n<0\)时,左移,无交叉,对位皆为\(0\),因此为\(0\),当\(n>0\)且在不同段的时候,结果见上。