文章目录

  • 数字频率与模拟频率的关系与特点
    • 数字频率与模拟频率的定义
    • 为什么模拟角频率和数字角频率不一样
  • 时域离散信号和时域离散系统
    • 时域离散信号
      • 常用的典型序列
      • 序列的运算
    • 时域离散系统
      • 线性系统
      • 时不变系统
      • 线性时不变系统及其输入与输出之间的关系
      • 系统的因果性和稳定性
    • 时域离散系统的输入输出描述法—线性常系数差分方程
      • 线性常系数差分方程
      • 线性常系数差分方程的求解
    • 模拟信号数字处理方法
      • 采样定理及A/D变换
      • 数字序列转换成模拟信号
  • 时域离散信号和系统的频域分析
    • 时域离散信号的傅里叶变换的定义及性质
      • DTFT的定义
      • DTFT的性质
    • 周期序列的离散傅里叶级数及傅里叶变换表达式
      • 周期序列的离散傅里叶级数(DFS)
      • 周期序列的傅里叶变换表达式(FT)
        • 复指数序列ejω0ne^{j{\omega_0}n}ejω0​n的FTFTFT
        • 周期序列的FTFTFT
        • 周期序列的FTFTFT与周期信号FTFTFT的联系
    • 时域离散信号的FT与模拟信号FT之间的关系
    • 序列的ZZZ变换
      • Z变换的定义及与序列的FT的关系
      • Z变换的性质
    • 利用Z变换分析信号和系统的频响特性
      • 频率响应函数与系统函数
        • 输入序列ejωne^{j{\omega}n}ejωn的频率响应
      • 利用系统的零极点分布分析系统的频率响应特性
      • 几种特殊系统的系统函数及特点
        • 全通滤波器
        • 梳妆滤波器
  • 离散傅里叶变换(DFT)
    • DFT的定义
      • 和DFS的比较
    • DFT与FT/ZT的关系
    • DFT的隐含周期性
    • DFT的性质
      • 时/频域循环移位定理
      • 循环卷积定理
      • 复共轭序列的DFT及其对称性
      • 线性卷积和循环卷积的关系
    • 频率域采样
      • 由X(k)X(k)X(k)恢复出x(n)x(n)x(n)的条件
      • 如何由X(k)X(k)X(k)恢复X(z)X(z)X(z)和X(ejω)X(e^{j\omega})X(ejω)
    • 用DFT对信号进行频谱分析
      • 对连续信号进行频谱分析
      • 对序列进行频谱分析
      • 误差分析
        • 混叠现象
        • 栅栏效应
        • 截断效应

数字频率与模拟频率的关系与特点

link1、link2、link3

数字频率与模拟频率的定义

模拟频率fff:每秒经历多少个周期,单位为HzHzHz;

模拟角频率Ω\OmegaΩ:每秒经历多少弧度,单位为rad/srad/srad/s;

数字角频率ω\omegaω:采样点之间的弧度,单位为radradrad。

数字信号是由模拟信号采样而来,采样频率不一样,采样点的时间就不一样。因此用每秒经历多少个周期已无多大意义,所以。
{f→s−1Ω=2πf→rad/sω=Ω/fs=ΩTs→radω=Ω/fs=2πf/fs(1−1)\begin{cases} f{\to}s^{-1}\\ \Omega=2{\pi}f{\to}rad/s\\ \omega={\Omega}/f_s={\Omega}T_s{\to}rad\\ \end{cases} \\ \omega={\Omega}/f_s=2{\pi}{\color{blue}f/fs}{\qquad}(1-1) ⎩⎪⎨⎪⎧​f→s−1Ω=2πf→rad/sω=Ω/fs​=ΩTs​→rad​ω=Ω/fs​=2πf/fs(1−1)
对于上式(1-1)的解释:

  • 数字角频率ω\omegaω是模拟角频率Ω\OmegaΩ对采样频率fsf_sfs​的归一化;
  • f/fsf/f_sf/fs​是一个无量纲的数,2π2{\pi}2π代表着弧度;
  • 即此频率(数字角频率:radradrad)非彼频率(模拟角频率:rad/srad/srad/s)。

数字角频率与采样频率有关:
(...,−2π,−π,0,π,2π,...)(...,fs,−0.5fs,0,0.5fs,fs,...)(...,-2\pi,-\pi,0,\pi,2\pi,...)\\(...,fs,-0.5fs,0,0.5fs,fs,...) (...,−2π,−π,0,π,2π,...)(...,fs,−0.5fs,0,0.5fs,fs,...)

为什么模拟角频率和数字角频率不一样

一个单位是rad/s\color{blue}rad/srad/s,另一个是rad\color{blue}radrad,肯定就不一样了啊。

模拟角频率Ω⊂(−∞,+∞)\Omega{\subset}(-\infin,+\infin)Ω⊂(−∞,+∞),而数字角频率ω⊂(−π,π)\omega{\subset}(-\pi,\pi)ω⊂(−π,π),当然也可以是(0,2π)(0,2\pi)(0,2π)。但由于数字角频率是具有周期性的,所以也可以认为数字角频率ω⊂(−∞,+∞)\omega{\subset(-\infin,+\infin)}ω⊂(−∞,+∞),只不过是周期性的。

设fs=1Hzf_s=1Hzfs​=1Hz,当Ω=π/8\Omega=\pi/8Ω=π/8和Ω=17π/8\Omega=17\pi/8Ω=17π/8时,抽样序列如下:可以看到虽然模拟角频率增加了2π2\pi2π,但是由于采样点数和采样值都相同,所以实际的离散序列也是一样的。这也体现出了离散序列的角频率是以2π2\pi2π为周期的。

MATLAB代码如下:

step = 64;  % 用于产生模拟信号的精度
t = 0:1/(2*step):20;
t = t';
w1 = pi / 8;
x1 = cos(w1 .* t);
w2 = pi * 17 / 8;
x2 = cos(w2 .* t);fs = 1;
ts = 0:1/fs:20;
ts = ts';
% 下面的作用是查找ts元素离t中最近元素的索引
D = abs(bsxfun(@minus, ts.', t));
M = min(D, [], 1);
[Index, ~] = find(bsxfun(@eq, M, D));
x1n = x1(Index);  % x1的抽样序列
x2n = x2(Index);  % x2的抽样序列subplot(211); plot(t, x1, 'b');
hold on; stem(ts, x1n, 'r');
title('$$\Omega=\frac{\pi}{8}$$', 'Interpreter', 'latex');
subplot(212); plot(t, x2, 'b');
hold on; stem(ts, x2n, 'r');
title('$$\Omega=\frac{17\pi}{8}$$', 'Interpreter', 'latex');
xlabel(['fs=', num2str(fs), 'Hz']);

时域离散信号和时域离散系统

时域离散信号、系统!!!

时域离散信号

常用的典型序列

MATLAB产生各种典型序列

序列的运算

加、减、乘、除、反转等。

时域离散系统

线性系统

当系统T的输入为x1(n)x_1(n)x1​(n)时,输出是y1(n)y_1(n)y1​(n);输入为x2(n)x_2(n)x2​(n)时,输出是y2(n)y_2(n)y2​(n)。若满足线性,则输入为x1(n)+x2(n)x_1(n)+x_2(n)x1​(n)+x2​(n)时,输出应为y1(n)+y2(n)y_1(n)+y_2(n)y1​(n)+y2​(n);且输入为ax1(n)ax_1(n)ax1​(n)时,输出是ay1(n)ay_1(n)ay1​(n)。
if{y1(n)=T[x1(n)]y2(n)=T[x2(n)]have{T[x1(n)+x2(n)]=y1(n)+y2(n)T[ax1(n)]=ay1(n)if{\quad} \begin{cases} y_1(n)=T\big[x_1(n)\big]\\ y_2(n)=T\big[x_2(n)\big]\\ \end{cases} \\ have{\quad} \begin{cases} T\big[x_1(n)+x_2(n)\big]=y_1(n)+y_2(n)\\ T\big[ax_1(n)\big]=ay_1(n) \end{cases} if{y1​(n)=T[x1​(n)]y2​(n)=T[x2​(n)]​have{T[x1​(n)+x2​(n)]=y1​(n)+y2​(n)T[ax1​(n)]=ay1​(n)​

时不变系统

ify(n)=T[x(n)]havey(n−n0)=T[x(n−n0)]if{\quad}y(n)=T\big[x(n)\big]\\ have{\quad}y(n-n_0)=T\big[x(n-n_0)\big] ify(n)=T[x(n)]havey(n−n0​)=T[x(n−n0​)]

线性时不变系统及其输入与输出之间的关系

系统单位冲激响应:h(n)=T[δ(n)]输入信号:x(n)=∑m=−∞+∞x(m)δ(n−m)则输出为:y(n)=T[∑m=−∞+∞x(m)δ(n−m)]=∑m=−∞+∞x(m)[δ(n−m)]根据时不变性质有:y(n)=∑m=−∞+∞x(m)h(n−m)=x(n)∗h(n)系统单位冲激响应:{\quad}h(n)=T\Big[\delta(n)\Big]\\ 输入信号:x(n)=\sum_{m=-\infin}^{+\infin}x(m)\delta(n-m)\\ 则输出为:y(n)=T\Big[\sum_{m=-\infin}^{+\infin}x(m)\delta(n-m)\Big]\\ =\sum_{m=-\infin}^{+\infin}x(m)\Big[\delta(n-m)\Big]\\ 根据时不变性质有:\\ y(n)=\sum_{m=-\infin}^{+\infin}x(m)h(n-m)=x(n)*h(n) 系统单位冲激响应:h(n)=T[δ(n)]输入信号:x(n)=m=−∞∑+∞​x(m)δ(n−m)则输出为:y(n)=T[m=−∞∑+∞​x(m)δ(n−m)]=m=−∞∑+∞​x(m)[δ(n−m)]根据时不变性质有:y(n)=m=−∞∑+∞​x(m)h(n−m)=x(n)∗h(n)

系统的因果性和稳定性

系统当前的输出只与之前的输入有关,后之后的输入无关。
h(n)=0n<0h(n)=0{\quad}n<0 h(n)=0n<0

时域离散系统的输入输出描述法—线性常系数差分方程

线性常系数差分方程

y(n)=∑i=0Mbix(n−i)−∑i=1Naiy(n−i)or∑i=0Naiy(n−i)=∑i=0Mbix(n−i)a0=1y(n)=\sum_{i=0}^{M}b_ix(n-i)-\sum_{i=1}^{N}a_iy(n-i)\\ or{\quad}\sum_{i=0}^{N}a_iy(n-i)=\sum_{i=0}^{M}b_ix(n-i){\quad}a_0=1 y(n)=i=0∑M​bi​x(n−i)−i=1∑N​ai​y(n−i)ori=0∑N​ai​y(n−i)=i=0∑M​bi​x(n−i)a0​=1

差分方程的阶数是用方程y(n−i)y(n-i)y(n−i)项中iii的最大取值与最小取值之差确定的,即上式是N阶线性常系数差分方程。

线性常系数差分方程的求解

  • 经典解法:齐次解、特解
  • 递推解法
  • 交换域方法:将差分方程变换到zzz域
  • 还可以由差分方程求出系统的单位脉冲响应,然后与已知的输入序列进行卷积运算。

模拟信号数字处理方法

采样定理及A/D变换

xa(t)x_a(t)xa​(t)是模拟信号、pδ(t)p_{\delta}(t)pδ​(t)是单位冲激序列、xa^(t)\hat{x_a}(t)xa​^​(t)是经理想采样后的信号。
pδ(t)=∑n=−∞+∞δ(t−nT)xa^(t)=xa(t)pδ(t){Xa(jω)=F[xa(t)]Xa^(jω)=F[xa^(t)]Pδ(jω)=F[pδ(t)]p_{\delta}(t)=\sum_{n=-\infin}^{+\infin}\delta(t-nT)\\ \hat{x_a}(t)=x_a(t)p_{\delta}(t)\\ \begin{cases} X_a(j\omega)=\mathscr{F}\Big[x_a(t)\Big]\\ \hat{X_a}(j\omega)=\mathscr{F}\Big[\hat{x_a}(t)\Big]\\ P_{\delta}(j\omega)=\mathscr{F}\Big[p_{\delta}(t)\Big]\\ \end{cases} pδ​(t)=n=−∞∑+∞​δ(t−nT)xa​^​(t)=xa​(t)pδ​(t)⎩⎪⎪⎪⎨⎪⎪⎪⎧​Xa​(jω)=F[xa​(t)]Xa​^​(jω)=F[xa​^​(t)]Pδ​(jω)=F[pδ​(t)]​
下面推导理想采样信号的频谱与原模拟信号频谱的关系:
Xa^(jΩ)=12πXa(jΩ)∗Pδ(jΩ)...Xa^(jΩ)=1T∑k=−∞+∞Xa(jΩ−jkΩs)\hat{X_a}(j\Omega)=\frac{1}{2\pi}X_a(j\Omega)*P_{\delta}(j\Omega)\\ ...\\ \hat{X_a}(j\Omega)=\frac{1}{T}\sum_{k=-\infin}^{+\infin}X_a(j\Omega-jk\Omega_s) Xa​^​(jΩ)=2π1​Xa​(jΩ)∗Pδ​(jΩ)...Xa​^​(jΩ)=T1​k=−∞∑+∞​Xa​(jΩ−jkΩs​)
上式表明理想采样信号的频谱原模拟信号频谱沿频率轴,每间隔采样角频率Ωs=2πFS=2πT\Omega_s=2{\pi}F_S=\frac{2{\pi}}{T}Ωs​=2πFS​=T2π​重复出现一次,并叠加而形成的周期函数。或者说理想采样信号的频谱是原模拟信号的频谱以Ωs\Omega_sΩs​为周期,进行周期性延拓而成的。

因此,若要理想采样信号的频谱不重合,则需要满足:Ωs≥wmax\Omega_s{\ge}w_{max}Ωs​≥wmax​或Fs≥fmaxF_s{\ge}f_{max}Fs​≥fmax​,这就是采样定理

数字序列转换成模拟信号

如果x(n)x(n)x(n)是在满足抽样定理的条件下得到的,那么可以通过一个低通滤波器不失真地将原模拟信号xa(t)x_a(t)xa​(t)恢复出来,低通滤波器的传输函数如下:
G(jΩ)={T∣Ω∣<12Ωs0∣Ω∣≥12ΩsG(j\Omega)= \begin{cases} T & \big|\Omega\big|<\frac{1}{2}\Omega_s\\ 0 & \big|\Omega\big|\ {\ge}\ \frac{1}{2}\Omega_s\\ \end{cases} G(jΩ)={T0​∣∣​Ω∣∣​<21​Ωs​∣∣​Ω∣∣​ ≥ 21​Ωs​​
其时域表达式为:
g(t)=12π∫−∞+∞G(jΩ)ejΩtdΩ=12π∫−Ωs/2+Ωs/2TejΩtdΩ=sin⁡(Ωst/2)Ωst/2∵Ωs=2πFs=2π/T∴g(t)=sin⁡(πt)/Tπt/Tg(t)=\frac{1}{2\pi}\int_{-\infin}^{+\infin}G(j\Omega)e^{j{\Omega}t}d_{\Omega}=\frac{1}{2\pi}\int_{-\Omega_s/2}^{+\Omega_s/2}Te^{j{\Omega}t}d_{\Omega}=\frac{\sin({\Omega_s}t/2)}{{\Omega_s}t/2}\\ {\because}{\qquad}{\Omega_s}=2{\pi}F_s=2{\pi}/T\\ {\therefore}g(t)=\frac{\sin({\pi}t)/T}{{\pi}t/T} g(t)=2π1​∫−∞+∞​G(jΩ)ejΩtdΩ​=2π1​∫−Ωs​/2+Ωs​/2​TejΩtdΩ​=Ωs​t/2sin(Ωs​t/2)​∵Ωs​=2πFs​=2π/T∴g(t)=πt/Tsin(πt)/T​
g(t)g(t)g(t)被称为内插函数。

x(n)=xa(nT)x(n)=x_a(nT)x(n)=xa​(nT)是经xa(t)x_a(t)xa​(t)满足采样定理采样后的离散信号,我们现在知道离散信号,如何恢复出模拟信号呢?转换公式如下(详细推导见DSP书第26页):
xa(t)=∑n=−∞+∞xa(nT)sin⁡[π(t−nT)]/Tπ(t−nT)/Tx_a(t)=\sum_{n=-\infin}^{+\infin}x_a(nT)\frac{\sin\Big[{\pi}(t-nT)\Big]\Big/T}{{\pi}(t-nT)\Big/T} xa​(t)=n=−∞∑+∞​xa​(nT)π(t−nT)/Tsin[π(t−nT)]/T​
实际中采用D/AC完成数字信号到模拟信号的转换,包括三部分:解码器、零阶保持器和平滑滤波器。框图如下:

#mermaid-svg-xV4WoMnX7jSUlIC7 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .label text{fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .node rect,#mermaid-svg-xV4WoMnX7jSUlIC7 .node circle,#mermaid-svg-xV4WoMnX7jSUlIC7 .node ellipse,#mermaid-svg-xV4WoMnX7jSUlIC7 .node polygon,#mermaid-svg-xV4WoMnX7jSUlIC7 .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-xV4WoMnX7jSUlIC7 .node .label{text-align:center;fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .node.clickable{cursor:pointer}#mermaid-svg-xV4WoMnX7jSUlIC7 .arrowheadPath{fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-xV4WoMnX7jSUlIC7 .flowchart-link{stroke:#333;fill:none}#mermaid-svg-xV4WoMnX7jSUlIC7 .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-xV4WoMnX7jSUlIC7 .edgeLabel rect{opacity:0.9}#mermaid-svg-xV4WoMnX7jSUlIC7 .edgeLabel span{color:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-xV4WoMnX7jSUlIC7 .cluster text{fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-xV4WoMnX7jSUlIC7 .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-xV4WoMnX7jSUlIC7 text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-xV4WoMnX7jSUlIC7 .actor-line{stroke:grey}#mermaid-svg-xV4WoMnX7jSUlIC7 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .sequenceNumber{fill:#fff}#mermaid-svg-xV4WoMnX7jSUlIC7 #sequencenumber{fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 #crosshead path{fill:#333;stroke:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .messageText{fill:#333;stroke:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-xV4WoMnX7jSUlIC7 .labelText,#mermaid-svg-xV4WoMnX7jSUlIC7 .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-xV4WoMnX7jSUlIC7 .loopText,#mermaid-svg-xV4WoMnX7jSUlIC7 .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-xV4WoMnX7jSUlIC7 .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-xV4WoMnX7jSUlIC7 .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-xV4WoMnX7jSUlIC7 .noteText,#mermaid-svg-xV4WoMnX7jSUlIC7 .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-xV4WoMnX7jSUlIC7 .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-xV4WoMnX7jSUlIC7 .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-xV4WoMnX7jSUlIC7 .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-xV4WoMnX7jSUlIC7 .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xV4WoMnX7jSUlIC7 .section{stroke:none;opacity:0.2}#mermaid-svg-xV4WoMnX7jSUlIC7 .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-xV4WoMnX7jSUlIC7 .section2{fill:#fff400}#mermaid-svg-xV4WoMnX7jSUlIC7 .section1,#mermaid-svg-xV4WoMnX7jSUlIC7 .section3{fill:#fff;opacity:0.2}#mermaid-svg-xV4WoMnX7jSUlIC7 .sectionTitle0{fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .sectionTitle1{fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .sectionTitle2{fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .sectionTitle3{fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xV4WoMnX7jSUlIC7 .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-xV4WoMnX7jSUlIC7 .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xV4WoMnX7jSUlIC7 .grid path{stroke-width:0}#mermaid-svg-xV4WoMnX7jSUlIC7 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-xV4WoMnX7jSUlIC7 .task{stroke-width:2}#mermaid-svg-xV4WoMnX7jSUlIC7 .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xV4WoMnX7jSUlIC7 .taskText:not([font-size]){font-size:11px}#mermaid-svg-xV4WoMnX7jSUlIC7 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xV4WoMnX7jSUlIC7 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-xV4WoMnX7jSUlIC7 .task.clickable{cursor:pointer}#mermaid-svg-xV4WoMnX7jSUlIC7 .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-xV4WoMnX7jSUlIC7 .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-xV4WoMnX7jSUlIC7 .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-xV4WoMnX7jSUlIC7 .taskText0,#mermaid-svg-xV4WoMnX7jSUlIC7 .taskText1,#mermaid-svg-xV4WoMnX7jSUlIC7 .taskText2,#mermaid-svg-xV4WoMnX7jSUlIC7 .taskText3{fill:#fff}#mermaid-svg-xV4WoMnX7jSUlIC7 .task0,#mermaid-svg-xV4WoMnX7jSUlIC7 .task1,#mermaid-svg-xV4WoMnX7jSUlIC7 .task2,#mermaid-svg-xV4WoMnX7jSUlIC7 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-xV4WoMnX7jSUlIC7 .taskTextOutside0,#mermaid-svg-xV4WoMnX7jSUlIC7 .taskTextOutside2{fill:#000}#mermaid-svg-xV4WoMnX7jSUlIC7 .taskTextOutside1,#mermaid-svg-xV4WoMnX7jSUlIC7 .taskTextOutside3{fill:#000}#mermaid-svg-xV4WoMnX7jSUlIC7 .active0,#mermaid-svg-xV4WoMnX7jSUlIC7 .active1,#mermaid-svg-xV4WoMnX7jSUlIC7 .active2,#mermaid-svg-xV4WoMnX7jSUlIC7 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-xV4WoMnX7jSUlIC7 .activeText0,#mermaid-svg-xV4WoMnX7jSUlIC7 .activeText1,#mermaid-svg-xV4WoMnX7jSUlIC7 .activeText2,#mermaid-svg-xV4WoMnX7jSUlIC7 .activeText3{fill:#000 !important}#mermaid-svg-xV4WoMnX7jSUlIC7 .done0,#mermaid-svg-xV4WoMnX7jSUlIC7 .done1,#mermaid-svg-xV4WoMnX7jSUlIC7 .done2,#mermaid-svg-xV4WoMnX7jSUlIC7 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-xV4WoMnX7jSUlIC7 .doneText0,#mermaid-svg-xV4WoMnX7jSUlIC7 .doneText1,#mermaid-svg-xV4WoMnX7jSUlIC7 .doneText2,#mermaid-svg-xV4WoMnX7jSUlIC7 .doneText3{fill:#000 !important}#mermaid-svg-xV4WoMnX7jSUlIC7 .crit0,#mermaid-svg-xV4WoMnX7jSUlIC7 .crit1,#mermaid-svg-xV4WoMnX7jSUlIC7 .crit2,#mermaid-svg-xV4WoMnX7jSUlIC7 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-xV4WoMnX7jSUlIC7 .activeCrit0,#mermaid-svg-xV4WoMnX7jSUlIC7 .activeCrit1,#mermaid-svg-xV4WoMnX7jSUlIC7 .activeCrit2,#mermaid-svg-xV4WoMnX7jSUlIC7 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-xV4WoMnX7jSUlIC7 .doneCrit0,#mermaid-svg-xV4WoMnX7jSUlIC7 .doneCrit1,#mermaid-svg-xV4WoMnX7jSUlIC7 .doneCrit2,#mermaid-svg-xV4WoMnX7jSUlIC7 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-xV4WoMnX7jSUlIC7 .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-xV4WoMnX7jSUlIC7 .milestoneText{font-style:italic}#mermaid-svg-xV4WoMnX7jSUlIC7 .doneCritText0,#mermaid-svg-xV4WoMnX7jSUlIC7 .doneCritText1,#mermaid-svg-xV4WoMnX7jSUlIC7 .doneCritText2,#mermaid-svg-xV4WoMnX7jSUlIC7 .doneCritText3{fill:#000 !important}#mermaid-svg-xV4WoMnX7jSUlIC7 .activeCritText0,#mermaid-svg-xV4WoMnX7jSUlIC7 .activeCritText1,#mermaid-svg-xV4WoMnX7jSUlIC7 .activeCritText2,#mermaid-svg-xV4WoMnX7jSUlIC7 .activeCritText3{fill:#000 !important}#mermaid-svg-xV4WoMnX7jSUlIC7 .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xV4WoMnX7jSUlIC7 g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-xV4WoMnX7jSUlIC7 g.classGroup text .title{font-weight:bolder}#mermaid-svg-xV4WoMnX7jSUlIC7 g.clickable{cursor:pointer}#mermaid-svg-xV4WoMnX7jSUlIC7 g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-xV4WoMnX7jSUlIC7 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-xV4WoMnX7jSUlIC7 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-xV4WoMnX7jSUlIC7 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-xV4WoMnX7jSUlIC7 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-xV4WoMnX7jSUlIC7 .dashed-line{stroke-dasharray:3}#mermaid-svg-xV4WoMnX7jSUlIC7 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xV4WoMnX7jSUlIC7 #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xV4WoMnX7jSUlIC7 #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-xV4WoMnX7jSUlIC7 #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-xV4WoMnX7jSUlIC7 #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xV4WoMnX7jSUlIC7 #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xV4WoMnX7jSUlIC7 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xV4WoMnX7jSUlIC7 #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-xV4WoMnX7jSUlIC7 .commit-id,#mermaid-svg-xV4WoMnX7jSUlIC7 .commit-msg,#mermaid-svg-xV4WoMnX7jSUlIC7 .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xV4WoMnX7jSUlIC7 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xV4WoMnX7jSUlIC7 .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xV4WoMnX7jSUlIC7 g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xV4WoMnX7jSUlIC7 g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-xV4WoMnX7jSUlIC7 g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-xV4WoMnX7jSUlIC7 g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-xV4WoMnX7jSUlIC7 g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-xV4WoMnX7jSUlIC7 .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-xV4WoMnX7jSUlIC7 .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-xV4WoMnX7jSUlIC7 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-xV4WoMnX7jSUlIC7 .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-xV4WoMnX7jSUlIC7 .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-xV4WoMnX7jSUlIC7 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-xV4WoMnX7jSUlIC7 .edgeLabel text{fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-xV4WoMnX7jSUlIC7 .node circle.state-start{fill:black;stroke:black}#mermaid-svg-xV4WoMnX7jSUlIC7 .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-xV4WoMnX7jSUlIC7 #statediagram-barbEnd{fill:#9370db}#mermaid-svg-xV4WoMnX7jSUlIC7 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-xV4WoMnX7jSUlIC7 .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-xV4WoMnX7jSUlIC7 .statediagram-state .divider{stroke:#9370db}#mermaid-svg-xV4WoMnX7jSUlIC7 .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-xV4WoMnX7jSUlIC7 .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-xV4WoMnX7jSUlIC7 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-xV4WoMnX7jSUlIC7 .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-xV4WoMnX7jSUlIC7 .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-xV4WoMnX7jSUlIC7 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-xV4WoMnX7jSUlIC7 .note-edge{stroke-dasharray:5}#mermaid-svg-xV4WoMnX7jSUlIC7 .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-xV4WoMnX7jSUlIC7 .error-icon{fill:#522}#mermaid-svg-xV4WoMnX7jSUlIC7 .error-text{fill:#522;stroke:#522}#mermaid-svg-xV4WoMnX7jSUlIC7 .edge-thickness-normal{stroke-width:2px}#mermaid-svg-xV4WoMnX7jSUlIC7 .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-xV4WoMnX7jSUlIC7 .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-xV4WoMnX7jSUlIC7 .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-xV4WoMnX7jSUlIC7 .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-xV4WoMnX7jSUlIC7 .marker{fill:#333}#mermaid-svg-xV4WoMnX7jSUlIC7 .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-xV4WoMnX7jSUlIC7 {color: rgba(0, 0, 0, 0.75);font: ;}

x_a(nT)
x'_a(t)
x_a(t)
xn
解码器
零阶保持器
平滑滤波器
out

由时域离散信号xa(nT)x_a(nT)xa​(nT)恢复模拟信号的过程是内插过程。

时域离散信号和系统的频域分析

时域离散信号的傅里叶变换的定义及性质

x(t)x(t)x(t)的傅里叶变换是X(ejω)X(e^{j\omega})X(ejω),x(n)x(n)x(n)的傅里叶变换也是X(ejω)X(e^{j\omega})X(ejω),在频域都是连续的。

DTFT的定义

推导:
∵x(n)=x(t)δT(t)=x(t)∑n=−∞∞δ(t−nT)∴X(jω)=F[x(n)]=∫−∞+∞x(t)∑n=−∞∞δ(t−nT)e−jωtdt=∑n=−∞∞∫−∞+∞x(t)δ(t−nT)e−jωtdt=∑n=−∞∞x(nT)e−jωnT∫−∞+∞δ(t−nT)dt=∑n=−∞∞x(nT)e−jωnT{\because}{\quad}x(n)=x(t){\delta_T}(t)=x(t)\sum_{n=-\infin}^{\infin}{\delta}(t-nT)\\ {\therefore}{\quad} X(j\omega)={\mathscr{F}}[x(n)]=\int_{-\infin}^{+\infin}x(t)\sum_{n=-\infin}^{\infin}{\delta}(t-nT)e^{-j{\omega}t}d_t\\ =\sum_{n=-\infin}^{\infin}\int_{-\infin}^{+\infin}x(t)\delta(t-nT)e^{-j{\omega}t}d_t\\ =\sum_{n=-\infin}^{\infin}x(nT)e^{-j{\omega}nT}\int_{-\infin}^{+\infin}\delta(t-nT)d_t\\ =\sum_{n=-\infin}^{\infin}x(nT)e^{-j{\omega}nT} ∵x(n)=x(t)δT​(t)=x(t)n=−∞∑∞​δ(t−nT)∴X(jω)=F[x(n)]=∫−∞+∞​x(t)n=−∞∑∞​δ(t−nT)e−jωtdt​=n=−∞∑∞​∫−∞+∞​x(t)δ(t−nT)e−jωtdt​=n=−∞∑∞​x(nT)e−jωnT∫−∞+∞​δ(t−nT)dt​=n=−∞∑∞​x(nT)e−jωnT

令T=1T=1T=1,则变为:
x(n)=xa(nT)=x(t)∣t=nT{X(ejω)=∑n=−∞+∞x(n)e−jωnx(n)=12π∫−ππX(ejω)ejωndωx(n)=x_a(nT)=x(t)\Big|_{t=nT}\\ \begin{cases} X(e^{j\omega})=\sum_{n=-\infin}^{+\infin}x(n)e^{-j{\omega}n}\\ \\ x(n)=\frac{1}{2\pi}\int_{-\pi}^{\pi}X(e^{j\omega})e^{j{\omega}n}d_{\omega} \end{cases} x(n)=xa​(nT)=x(t)∣∣∣​t=nT​⎩⎪⎨⎪⎧​X(ejω)=∑n=−∞+∞​x(n)e−jωnx(n)=2π1​∫−ππ​X(ejω)ejωndω​​

DTFT的性质

  • 周期性:X(ejω)=X(ejω+2πM)X(e^{j\omega})=X(e^{j{\omega+2{\pi}M}})X(ejω)=X(ejω+2πM),周期为2π2\pi2π。

  • 线性

  • 时移和频移:
    F[x(n−n0)]=e−jωn0X(ejω)F[ejΩ0nx(n)]=X(ej(ω−Ω0))\mathscr{F}\Big[x(n-n_0)\Big]=e^{-j{\omega}n_0}X(e^{j\omega})\\ \mathscr{F}\Big[e^{j{\Omega_0}n}x(n)\Big]=X(e^{j({\omega}-{\Omega_0})}) F[x(n−n0​)]=e−jωn0​X(ejω)F[ejΩ0​nx(n)]=X(ej(ω−Ω0​))

  • 对称性:xe(n)x_e(n)xe​(n)为共轭对称序列(其实部是偶函数、虚部是奇函数,即满足xe(n)=xe∗(−n)x_e(n)=x_e^{*}(-n)xe​(n)=xe∗​(−n));xo(n)x_o(n)xo​(n)为共轭反对称序列(其实部是奇函数、虚部是偶函数,即满足xo(n)=−xo∗(−n)x_o(n)=-x_o^{*}(-n)xo​(n)=−xo∗​(−n))。
    {x(n)=xr(n)+jxi(n)X(ejω)=Xe(ejω)+Xo(ejω){x(n)=xe(n)+xo(n)X(ejω)=XR(ejω)+jXI(ejω)\begin{cases} x(n)={\color{blue}x_r(n)}+{\color{red}jx_i(n)}\\ \\ X(e^{j\omega})={\color{blue}X_e(e^{j\omega})}+{\color{red}X_o(e^{j\omega})} \end{cases} \\ \begin{cases} x(n)={\color{blue}x_e(n)}+{\color{red}x_o(n)}\\ \\ X(e^{j\omega})={\color{blue}X_R(e^{j\omega})}+{\color{red}jX_I(e^{j\omega})} \end{cases} ⎩⎪⎨⎪⎧​x(n)=xr​(n)+jxi​(n)X(ejω)=Xe​(ejω)+Xo​(ejω)​⎩⎪⎨⎪⎧​x(n)=xe​(n)+xo​(n)X(ejω)=XR​(ejω)+jXI​(ejω)​

  • 频域卷积定理:

若y(n)=h(n)x(n)则有Y(ejω)=12πH(ejω)∗X(ejω)=12π∫−ππH(ejθ)X(ejθ)dθ若{\quad}y(n)=h(n)x(n)\\ 则有{\quad}Y(e^{j\omega})=\frac{1}{2\pi}H(e^{j\omega})*X(e^{j\omega})\\ =\frac{1}{2\pi}\int_{-\pi}^{\pi}H(e^{j\theta})X(e^{j\theta})d_{\theta} 若y(n)=h(n)x(n)则有Y(ejω)=2π1​H(ejω)∗X(ejω)=2π1​∫−ππ​H(ejθ)X(ejθ)dθ​

  • 帕斯维尔定理:信号时域的能量和频域的能量的关系。
    ∑n=−∞+∞∣x(n)∣2=12π∫−ππ∣X(ejω)∣2dω\sum_{n=-\infin}^{+\infin}\big|x(n)\big|^2=\frac{1}{2\pi}\int_{-\pi}^{\pi}\big|X(e^{j\omega})\big|^2d_{\omega} n=−∞∑+∞​∣∣​x(n)∣∣​2=2π1​∫−ππ​∣∣​X(ejω)∣∣​2dω​

周期序列的离散傅里叶级数及傅里叶变换表达式

周期序列的离散傅里叶级数(DFS)

X(k)~=DFS[x(n)~]=∑n=0N−1x(n)~e−j2πNkn(1)x(n)~=IDFS[X(k)~]=1N∑k=0N−1X(k)~ej2πNkn(2)\widetilde{X(k)}=DFS[\widetilde{x(n)}]=\sum_{n=0}^{N-1}\widetilde{x(n)}e^{-j{\frac{2\pi}{N}}kn}{\qquad}(1)\\ \widetilde{x(n)}=IDFS[\widetilde{X(k)}]=\frac{1}{N}\sum_{k=0}^{N-1}\widetilde{X(k)}e^{j{\frac{2\pi}{N}}kn}{\qquad}(2) X(k)​=DFS[x(n)​]=n=0∑N−1​x(n)​e−jN2π​kn(1)x(n)​=IDFS[X(k)​]=N1​k=0∑N−1​X(k)​ejN2π​kn(2)

基波分量的频率为2π/N{2\pi}/N2π/N,幅度是(1/N)X~(1)(1/N){\widetilde{X}}(1)(1/N)X(1),一个周期序列可以用其DFSDFSDFS系数X~(k)\widetilde{X}(k)X(k)表示它的频谱分布规律。

周期序列的傅里叶变换表达式(FT)

复指数序列ejω0ne^{j{\omega_0}n}ejω0​n的FTFTFT

首先推导复指数序列ejω0ne^{j{\omega_0}n}ejω0​n的傅里叶变换如下:
X(ejω)=F[ejω0n]=∑r=−∞+∞2πδ(ω−(ω0+2πr))r为整数X(e^{j\omega})=\mathscr{F}[e^{j{\omega_0}n}]=\sum_{r=-\infin}^{+\infin}2{\pi}\delta\Big({\omega}-({\omega_0}+2{\pi}r)\Big){\quad}r为整数 X(ejω)=F[ejω0​n]=r=−∞∑+∞​2πδ(ω−(ω0​+2πr))r为整数
上式表明:复指数序列ejω0ne^{j{\omega_0}n}ejω0​n的FTFTFT是在ω0+2πr\omega_0+2{\pi}rω0​+2πr处的单位冲激函数,强度为2π2\pi2π

周期序列的FTFTFT

一般周期序列都能表示成不同复指数序列ejωne^{j{\omega}n}ejωn的叠加,因此再根据线性就可以得出该周期序列的傅里叶变换:
x(n)~=a0ejω0n+a1ejω1n+...+amejωmn\widetilde{x(n)}=a_0e^{j{\omega_0}n}+a_1e^{j{\omega_1}n}+...+a_me^{j{\omega_m}n}\\ x(n)​=a0​ejω0​n+a1​ejω1​n+...+am​ejωm​n
或者这样考虑,对一般周期序列x(n)~\widetilde{x(n)}x(n)​展开成DFSDFSDFS,第k次谐波为(X(k)~/N)ej2πNkn(\widetilde{X(k)}/N)e^{j\frac{2\pi}{N}kn}(X(k)​/N)ejN2π​kn,类似于复指数序列的FTFTFT,其FTFTFT为:
∑r=−∞+∞2πX(k)~Nδ(ω−(2πNk+2πr))r为整数\color{blue}\sum_{r=-\infin}^{+\infin}2{\pi}\frac{\widetilde{X(k)}}{N}\delta\Big({\omega}-({\frac{2\pi}{N}k}+2{\pi}r)\Big){\quad}r为整数 r=−∞∑+∞​2πNX(k)​​δ(ω−(N2π​k+2πr))r为整数
上面是第k次谐波的FTFTFT,那么整个周期序列的FTFTFT为:
X(ejω)=F[x(n)~]=∑k=0N−1∑r=−∞+∞2πX(k)~Nδ(ω−(2πNk+2πr))r为整数X(e^{j\omega})={\mathscr{F}}[\widetilde{x(n)}]=\sum_{k=0}^{N-1}{\color{blue}\sum_{r={-\infin}}^{+\infin}2{\pi}\frac{{\widetilde{X(k)}}}{N}\delta\Big({\omega}-({\frac{2\pi}{N}k}+2{\pi}r)\Big){\quad}r为整数}\\ X(ejω)=F[x(n)​]=k=0∑N−1​r=−∞∑+∞​2πNX(k)​​δ(ω−(N2π​k+2πr))r为整数
式中,K=0,1,2,...,N−1K=0,1,2,...,N-1K=0,1,2,...,N−1。如果让k在−∞-\infin−∞到+∞+\infin+∞区间变换,上式可简化为:
X(ejω)=∑k=−∞∞2πX(k)~Nδ(ω−2πNk)式中X(k)~=∑n=0N−1x(n)~e−j2πNknX(e^{j\omega})=\sum_{k={-\infin}}^{\infin}{2\pi}\frac{\widetilde{X(k)}}{N}\delta(\omega-\frac{2\pi}{N}k)\\ 式中{\qquad}{\widetilde{X(k)}}=\sum_{n=0}^{N-1}\widetilde{x(n)}e^{-j{\frac{2\pi}{N}}kn} X(ejω)=k=−∞∑∞​2πNX(k)​​δ(ω−N2π​k)式中X(k)​=n=0∑N−1​x(n)​e−jN2π​kn
对于同一个周期信号,其DTS和FT的模的形状是一样的,不同的是FT用单位冲激函数表示(用带箭头的竖线表示)。因此周期序列的频谱分布用其DFS或者FT表示都可以,但画图时应注意单位冲激函数的画法。

周期序列的FTFTFT与周期信号FTFTFT的联系

还记得周期信号fT(t)f_T(t)fT​(t)的傅里叶变换(FT(jω))(F_T(j\omega))(FT​(jω))是什么吗?(省略掉推导):
FT(jw)=∑n=−∞∞2πFnδ(ω−nω0)F(ejω)=∑k=0N−1∑r=−∞+∞2πF(k)~Nδ(ω−(2πNk+2πr))r为整数F_T(jw)=\sum_{n=-\infin}^{\infin}2{\pi}F_n{\delta}(\omega-n\omega_0)\\ F(e^{j\omega})=\sum_{k=0}^{N-1}{\color{blue}\sum_{r={-\infin}}^{+\infin}2{\pi}\frac{{\widetilde{F(k)}}}{N}\delta\Big({\omega}-({\frac{2\pi}{N}k}+2{\pi}r)\Big){\quad}r为整数}\\ FT​(jw)=n=−∞∑∞​2πFn​δ(ω−nω0​)F(ejω)=k=0∑N−1​r=−∞∑+∞​2πNF(k)​​δ(ω−(N2π​k+2πr))r为整数
上式表明:周期信号的傅里叶变换由无穷多个出现在谐波频率nω0n\omega_0nω0​上的冲激函数组成,每一冲激的强度为傅里叶系数FnF_nFn​乘上2π2\pi2π

看出来周期序列周期信号的傅里叶变换有什么关系了吗?其实两者是一样的:

  • 都是由不同位置的冲激叠加而成;
  • 冲激的强度都是傅氏系数乘上2π2\pi2π(复指数序列的系数为1)。

但也有不同点,就是冲激位置的规律有点不一样:

  • 周期信号的冲激在谐波频率nω0n\omega_0nω0​上
  • 周期序列的冲激在2πNk+2πr,r\frac{2{\pi}}{N}k+2{\pi}r,rN2π​k+2πr,r为整数​处,具有周期性为2π2\pi2π。

为什么会出现周期性呢?并且周期为2π2\pi2π,请看开头的数字频率与模拟频率的关系与特点。

时域离散信号的FT与模拟信号FT之间的关系

X(ejΩT)=1T∑k=−∞∞Xa(jΩ−jkΩs)X(ejω)=1T∑k=−∞∞Xa(jω−2πkT)Ωs=2πFs=2πTX(e^{j{\Omega}T})=\frac{1}{T}\sum_{k=-\infin}^{\infin}X_a(j\Omega-jk\Omega_s)\\ X(e^{j\omega})=\frac{1}{T}\sum_{k=-\infin}^{\infin}X_a(j\frac{\omega-2{\pi}k}{T})\\ \Omega_s=2{\pi}F_s=\frac{2\pi}{T} X(ejΩT)=T1​k=−∞∑∞​Xa​(jΩ−jkΩs​)X(ejω)=T1​k=−∞∑∞​Xa​(jTω−2πk​)Ωs​=2πFs​=T2π​

上式表明:时域离散信号的频谱也是模拟信号频谱的周期性延拓,周期为Ωs=2πFs=2πT\Omega_s=2{\pi}F_s=\frac{2{\pi}}{T}Ωs​=2πFs​=T2π​。

序列的ZZZ变换

Z变换的定义及与序列的FT的关系

X(z)=def=∑n=−∞+∞x(n)z−n∑n=−∞+∞∣x(n)z−n∣<∞X(z)=^{def}=\sum_{n=-\infin}^{+\infin}x(n)z^{-n}\\ \sum_{n=-\infin}^{+\infin}\Big|x(n)z^{-n}\Big|<{\infin}\\ X(z)=def=n=−∞∑+∞​x(n)z−nn=−∞∑+∞​∣∣∣​x(n)z−n∣∣∣​<∞

ZZZ变换的收敛域一般是一个环带状,即Rx−<∣z∣<Rx+R_{x-}<\big|z\big|<R_{x+}Rx−​<∣∣​z∣∣​<Rx+​。如果ZZZ变换的收敛域包括单位圆,那么:
X(ejω)=X(z)∣z=ejωX(e^{j\omega})=X(z)\Big|_{z=e^{j\omega}} X(ejω)=X(z)∣∣∣​z=ejω​
即单位圆上的Z变换就是序列的傅里叶变换(前提是在单位圆上收敛)。

Z变换的性质

设X(z)=Z[x(n)]Rx−<∣z∣<Rx+X(z)=\mathscr{Z}\big[x(n)\big]{\quad}R_{x-}<\big|z\big|<R_{x+}X(z)=Z[x(n)]Rx−​<∣∣​z∣∣​<Rx+​,则有如下性质:

  • 线性

  • 移位性质:
    Z[x(n−n0)]=z−n0X(z)Rx−<∣z∣<Rx+\mathscr{Z}\big[x(n-n_0)\big]=z^{-n_0}X(z){\quad}R_{x-}<\big|z\big|<R_{x+} Z[x(n−n0​)]=z−n0​X(z)Rx−​<∣∣​z∣∣​<Rx+​

  • 序列乘以指数序列的性质:
    y(n)=anx(n)Y(z)=Z[anx(n)]=X(a−1Z)∣a∣Rx−<∣z∣<∣a∣Rx+y(n)=a^{n}x(n)\\ Y(z)=\mathscr{Z}\big[a^{n}x(n)\big]=X(a^{-1}Z){\quad}|a|R_{x-}<\big|z\big|<|a|R_{x+} y(n)=anx(n)Y(z)=Z[anx(n)]=X(a−1Z)∣a∣Rx−​<∣∣​z∣∣​<∣a∣Rx+​

  • 序列乘以n的ZT
    X(z)=Z[nx(n)]=−zdX(z)dzRx−<∣z∣<Rx+X(z)=\mathscr{Z}\big[nx(n)\big]=-z\frac{dX(z)}{dz}{\quad}R_{x-}<\big|z\big|<R_{x+} X(z)=Z[nx(n)]=−zdzdX(z)​Rx−​<∣∣​z∣∣​<Rx+​

  • 复共轭序列的ZT
    X(z)=Z[x∗(n)]=X∗(z∗)Rx−<∣z∣<Rx+X(z)=\mathscr{Z}\big[x^{*}(n)\big]=X^{*}(z^{*}){\quad}R_{x-}<\big|z\big|<R_{x+} X(z)=Z[x∗(n)]=X∗(z∗)Rx−​<∣∣​z∣∣​<Rx+​

  • 初值定理:x(n)x(n)x(n)是因果序列,则:
    x(0)=lim⁡z→∞X(z)x(0)=\lim_{z{\to}\infin}X(z) x(0)=z→∞lim​X(z)

  • 终值定理:x(n)x(n)x(n)是因果序列,其ZZZ变换的极点除可以有一个一阶极点在z=1z=1z=1上,其它极点都在单位圆内,则:
    lim⁡n→∞x(n)=lim⁡z→1(z−1)X(z)\lim_{n{\to}\infin}x(n)=\lim_{z{\to}1}(z-1)X(z) n→∞lim​x(n)=z→1lim​(z−1)X(z)

  • 时域卷积定理:W(z)W(z)W(z)的收敛域就是X(z)X(z)X(z)和Y(z)Y(z)Y(z)的公共收敛域。
    W(z)=Z[x(n)∗y(n)]=X(z)Y(z)Rw−<∣z∣<Rw+{Rw+=min⁡[Rx+,Ry+]Rw−=max⁡[Rx−,Ry−]W(z)=\mathscr{Z}\big[x(n)^{*}y(n)\big]=X(z)Y(z){\quad}R_{w-}<\big|z\big|<R_{w+}\\ \begin{cases} R_{w+}=\min{\big[R_{x+},R_{y+}\big]}\\ R_{w-}=\max{\big[R_{x-},R_{y-}\big]}\\ \end{cases} W(z)=Z[x(n)∗y(n)]=X(z)Y(z)Rw−​<∣∣​z∣∣​<Rw+​{Rw+​=min[Rx+​,Ry+​]Rw−​=max[Rx−​,Ry−​]​

  • 复卷积定理:不常用

  • 帕斯维尔定理:不常用

利用Z变换分析信号和系统的频响特性

频率响应函数与系统函数

设系统初始状态为0,系统对δ(n)\delta(n)δ(n)的响应h(n)h(n)h(n)的傅里叶变换H(ejω)H(e^{j\omega})H(ejω)称为系统的频率响应函数,即:
H(ejω)=∑n=−∞+∞h(n)e−jωn=∣H(ejωn)∣ejϕ(ω){幅频特性:∣H(ejωn)∣相频特性:ϕ(ω)H(e^{j\omega})=\sum_{n=-\infin}^{+\infin}h(n)e^{-j{\omega}n}=\Big|H(e^{j{\omega}n})\Big|e^{j\phi(\omega)}\\ \begin{cases} 幅频特性:\Big|H(e^{j{\omega}n})\Big|\\ 相频特性:\phi(\omega) \end{cases} H(ejω)=n=−∞∑+∞​h(n)e−jωn=∣∣∣​H(ejωn)∣∣∣​ejϕ(ω){幅频特性:∣∣∣​H(ejωn)∣∣∣​相频特性:ϕ(ω)​
将序列h(n)h(n)h(n)进行Z变换得到H(z)H(z)H(z),这就是该系统的系统函数,即:
H(z)=Y(z)X(z)=∑i=0Mbiz−i∑i=0Naiz−iH(z)=\frac{Y(z)}{X(z)}=\frac{\sum_{i=0}^{M}b_iz^{-i}}{\sum_{i=0}^{N}a_iz^{-i}} H(z)=X(z)Y(z)​=∑i=0N​ai​z−i∑i=0M​bi​z−i​
如果Z变换的收敛域包含单位圆,则:
H(ejω)=H(z)∣z=ejωH(e^{j\omega})=H(z)\Big|_{z=e^{j\omega}} H(ejω)=H(z)∣∣∣​z=ejω​

输入序列ejωne^{j{\omega}n}ejωn的频率响应

y(n)=h(n)∗x(n)=...=H(ejω)ejωn=∣H(ejωn)∣ej[ωn+ϕ(ω)]y(n)=h(n)^{*}x(n)=...=H(e^{j\omega})e^{j{\omega}n}\\ =\Big|H(e^{j{\omega}n})\Big|e^{j\big[{\omega}n+\phi(\omega)\big]}\\ y(n)=h(n)∗x(n)=...=H(ejω)ejωn=∣∣∣​H(ejωn)∣∣∣​ej[ωn+ϕ(ω)]

上式说明:单频复指数序列ejωne^{j{\omega}n}ejωn通过频率响应函数为H(ejω)H(e^{j\omega})H(ejω)的系统后,输出还是单频复指数序列,只不过幅度放大∣H(ejωn)∣\Big|H(e^{j{\omega}n})\Big|∣∣∣​H(ejωn)∣∣∣​倍,相移为ϕ(ω)\phi(\omega)ϕ(ω)。

利用系统的零极点分布分析系统的频率响应特性

H(z)=A∏r=1M(1−crz−1)∏r=1N(1−drz−1)∣H(ejω)∣=∣A∣∏r=1M∣zr∣∏r=1N∣Pr∣ϕ(ω)=ω(N−M)+∑r=1Nαr−∑r=1MβrH(z)=A\frac{\prod_{r=1}^M(1-c_rz^{-1})}{\prod_{r=1}^{N}(1-d_rz^{-1})} \\ |H(e^{j\omega})|=|A|\frac{\prod_{r=1}^M|z_r|}{\prod_{r=1}^N{|P_r|}} \\ \phi(\omega)=\omega(N-M)+\sum_{r=1}^{N}\alpha_r-\sum_{r=1}^{M}\beta_r H(z)=A∏r=1N​(1−dr​z−1)∏r=1M​(1−cr​z−1)​∣H(ejω)∣=∣A∣∏r=1N​∣Pr​∣∏r=1M​∣zr​∣​ϕ(ω)=ω(N−M)+r=1∑N​αr​−r=1∑M​βr​

即:

  • 幅频响应等于所有的零点到ω\omegaω的模长的乘积除以所有的极点到ω\omegaω的模长的乘积;
  • 相频响应等于所有的零点与ω\omegaω形成的夹角之和减去所有的极点与ω\omegaω形成的夹角之和。

几种特殊系统的系统函数及特点

全通滤波器

∣H(ejω)∣=10≤ω≤2π|H(e^{j\omega})|=1{\quad}0{\le}\omega{\le}2\pi ∣H(ejω)∣=10≤ω≤2π

梳妆滤波器

H(zN)=1−z−N1−az−N0<a<1H(z^{N})=\frac{1-z^{-N}}{1-az^{-N}}{\qquad}0<a<1 H(zN)=1−az−N1−z−N​0<a<1

梳妆滤波器可以滤除输入信号中ω=2πNk,k=0,1,...,N−1\omega=\frac{2\pi}{N}k,\ k=0,1,...,N-1ω=N2π​k, k=0,1,...,N−1的频率分量,可以滤除电网谐波干扰和其它频谱等间隔分布的干扰。当a=1a=1a=1时就变成了全通滤波器,下面给出频率响应和零极点分布的MATLABMATLABMATLAB代码:

% y(n) -0.9y(n-8) = x(n) - x(n-8);
% H(z) = (1 - z^-8) / (1 - 0.9z^-8)
B = [1 0 0 0 0 0 0 0 -1];
A = [1 0 0 0 0 0 0 0 -0.9];
% impz(B, A, 200);
% [Z, P, K] = tf2zp(B, A)
zplane(B, A);
legend('零点', '极点');
title('$$ H(z) = \frac{1-z^{-8}}{1-0.9z^{-8}}$$', ...'Interpreter', 'latex');[H, w] = freqz(B, A, 500, 'whole');
Hm = abs(H);
Hp = angle(H);
subplot(2, 1, 1);
plot(w, Hm), grid on;
xlabel('\omega(rad/s)');
ylabel('Magnitude');
title('幅频特性曲线');
subplot(2, 1, 2);
plot(w, Hp), grid on;
xlabel('\omega(rad/s)');
ylabel('Phase');
title('相频特性曲线');

a=0.2a=0.2a=0.2时的频率响应和零极点分布图:


a=0.9a=0.9a=0.9时的频率响应和零极点分布图:


离散傅里叶变换(DFT)

对离散时间序列x(n)x(n)x(n)进行FT得到的结果在频域仍然是连续的,不便于计算机处理。因此目的是对频域也进行离散化,方法有多种,如DFT、DFS。对于DFS,主要步骤就是对x(n)x(n)x(n)进行周期性延拓,然后计算其傅里叶级数,该结果和DFT的结果是有关联的。

DFT的定义

X(k)=DFT[x(n)]=∑n=0N−1x(n)WNknk=0,1,...,N−1x(n)=IDFT[X(k)]=1N∑k=0N−1X(K)WN−knn=0,1,...,N−1WN=e−j2πNX(k)=DFT[x(n)]=\sum_{n=0}^{N-1}x(n)W_N^{kn}{\quad}k=0,1,...,N-1\\ x(n)=IDFT[X(k)]=\frac{1}{N}\sum_{k=0}^{N-1}X(K)W_N^{-kn}{\quad}n=0,1,...,N-1\\ W_N=e^{-j\frac{2\pi}{N}}\\ X(k)=DFT[x(n)]=n=0∑N−1​x(n)WNkn​k=0,1,...,N−1x(n)=IDFT[X(k)]=N1​k=0∑N−1​X(K)WN−kn​n=0,1,...,N−1WN​=e−jN2π​

将WN=e−j2πNW_N=e^{-j\frac{2\pi}{N}}WN​=e−jN2π​(旋转因子)带入即得:
X(k)=DFT[x(n)]=∑n=0N−1x(n)e−j2πNknk=0,1,...,N−1x(n)=IDFT[X(k)]=1N∑k=0N−1X(k)ej2πNknn=0,1,...,N−1X(k)=DFT[x(n)]=\sum_{n=0}^{N-1}x(n)e^{-j\frac{2\pi}{N}kn}{\quad}k=0,1,...,N-1\\ x(n)=IDFT[X(k)]=\frac{1}{N}\sum_{k=0}^{N-1}X(k)e^{j\frac{2\pi}{N}kn}{\quad}n=0,1,...,N-1 X(k)=DFT[x(n)]=n=0∑N−1​x(n)e−jN2π​knk=0,1,...,N−1x(n)=IDFT[X(k)]=N1​k=0∑N−1​X(k)ejN2π​knn=0,1,...,N−1

和DFS的比较

DFS:{X(k)~=DFS[x(n)~]=∑n=0N−1x(n)~e−j2πNkn(1)x(n)~=IDFS[X(k)~]=1N∑k=0N−1X(k)~ej2πNkn(2)DFT:{X(k)=DFT[x(n)]=∑n=0N−1x(n)e−j2πNknk=0,1,...,N−1(3)x(n)=IDFT[X(k)]=1N∑k=0N−1X(k)ej2πNknn=0,1,...,N−1(4)DFS: \begin{cases} \widetilde{X(k)}=DFS[\widetilde{x(n)}]=\sum_{n=0}^{N-1}\widetilde{x(n)}e^{-j{\frac{2\pi}{N}}kn}{\qquad}(1)\\ \\ \widetilde{x(n)}=IDFS[\widetilde{X(k)}]=\frac{1}{N}\sum_{k=0}^{N-1}\widetilde{X(k)}e^{j{\frac{2\pi}{N}}kn}{\qquad}(2)\\ \end{cases} \\ DFT: \begin{cases} X(k)=DFT[x(n)]=\sum_{n=0}^{N-1}x(n)e^{-j\frac{2\pi}{N}kn}{\quad}k=0,1,...,N-1{\quad}(3)\\ \\ x(n)=IDFT[X(k)]=\frac{1}{N}\sum_{k=0}^{N-1}X(k)e^{j\frac{2\pi}{N}kn}{\quad}n=0,1,...,N-1{\quad}(4)\\ \end{cases} DFS:⎩⎪⎨⎪⎧​X(k)​=DFS[x(n)​]=∑n=0N−1​x(n)​e−jN2π​kn(1)x(n)​=IDFS[X(k)​]=N1​∑k=0N−1​X(k)​ejN2π​kn(2)​DFT:⎩⎪⎨⎪⎧​X(k)=DFT[x(n)]=∑n=0N−1​x(n)e−jN2π​knk=0,1,...,N−1(3)x(n)=IDFT[X(k)]=N1​∑k=0N−1​X(k)ejN2π​knn=0,1,...,N−1(4)​

其实没有什么不同,只是对序列的取值有限定,这样的限定有如下结论:

  • 如果s(n)s(n)s(n)是周期序列,周期为NNN,那么其一个周期s1N(n)s_{1N}(n)s1N​(n)的NNN点DFTDFTDFT就等于其DFSDFSDFS的主值序列。即:
    S(k)=DFT[s1N(n)]=S(k)~RN(n)=DFS[s(n)~]RN(n){\color{blue}S(k)}=DFT[s_{1N}(n)]={\color{blue}\widetilde{S(k)}R_N(n)}=DFS[\widetilde{s(n)}]R_N(n) S(k)=DFT[s1N​(n)]=S(k)​RN​(n)=DFS[s(n)​]RN​(n)

  • 如果s(n)s(n)s(n)是非周期序列,那么对其进行周期性延拓得到s(n)~\widetilde{s(n)}s(n)​的DFS的主值序列就等于其DFT的结果。即:
    S(k)~RN(n)=DFS[s(n)~]RN(n)=S(k)=DFT[s(n)]{\color{blue}\widetilde{S(k)}R_N(n)}=DFS[\widetilde{s(n)}]R_N(n)={\color{blue}S(k)}=DFT[s(n)] S(k)​RN​(n)=DFS[s(n)​]RN​(n)=S(k)=DFT[s(n)]

DFT与FT/ZT的关系

设序列x(n)x(n)x(n)的长度为M。

#mermaid-svg-UlgmaRD47Vngve5x .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-UlgmaRD47Vngve5x .label text{fill:#333}#mermaid-svg-UlgmaRD47Vngve5x .node rect,#mermaid-svg-UlgmaRD47Vngve5x .node circle,#mermaid-svg-UlgmaRD47Vngve5x .node ellipse,#mermaid-svg-UlgmaRD47Vngve5x .node polygon,#mermaid-svg-UlgmaRD47Vngve5x .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-UlgmaRD47Vngve5x .node .label{text-align:center;fill:#333}#mermaid-svg-UlgmaRD47Vngve5x .node.clickable{cursor:pointer}#mermaid-svg-UlgmaRD47Vngve5x .arrowheadPath{fill:#333}#mermaid-svg-UlgmaRD47Vngve5x .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-UlgmaRD47Vngve5x .flowchart-link{stroke:#333;fill:none}#mermaid-svg-UlgmaRD47Vngve5x .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-UlgmaRD47Vngve5x .edgeLabel rect{opacity:0.9}#mermaid-svg-UlgmaRD47Vngve5x .edgeLabel span{color:#333}#mermaid-svg-UlgmaRD47Vngve5x .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-UlgmaRD47Vngve5x .cluster text{fill:#333}#mermaid-svg-UlgmaRD47Vngve5x div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-UlgmaRD47Vngve5x .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-UlgmaRD47Vngve5x text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-UlgmaRD47Vngve5x .actor-line{stroke:grey}#mermaid-svg-UlgmaRD47Vngve5x .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-UlgmaRD47Vngve5x .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-UlgmaRD47Vngve5x #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-UlgmaRD47Vngve5x .sequenceNumber{fill:#fff}#mermaid-svg-UlgmaRD47Vngve5x #sequencenumber{fill:#333}#mermaid-svg-UlgmaRD47Vngve5x #crosshead path{fill:#333;stroke:#333}#mermaid-svg-UlgmaRD47Vngve5x .messageText{fill:#333;stroke:#333}#mermaid-svg-UlgmaRD47Vngve5x .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-UlgmaRD47Vngve5x .labelText,#mermaid-svg-UlgmaRD47Vngve5x .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-UlgmaRD47Vngve5x .loopText,#mermaid-svg-UlgmaRD47Vngve5x .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-UlgmaRD47Vngve5x .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-UlgmaRD47Vngve5x .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-UlgmaRD47Vngve5x .noteText,#mermaid-svg-UlgmaRD47Vngve5x .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-UlgmaRD47Vngve5x .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-UlgmaRD47Vngve5x .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-UlgmaRD47Vngve5x .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-UlgmaRD47Vngve5x .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-UlgmaRD47Vngve5x .section{stroke:none;opacity:0.2}#mermaid-svg-UlgmaRD47Vngve5x .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-UlgmaRD47Vngve5x .section2{fill:#fff400}#mermaid-svg-UlgmaRD47Vngve5x .section1,#mermaid-svg-UlgmaRD47Vngve5x .section3{fill:#fff;opacity:0.2}#mermaid-svg-UlgmaRD47Vngve5x .sectionTitle0{fill:#333}#mermaid-svg-UlgmaRD47Vngve5x .sectionTitle1{fill:#333}#mermaid-svg-UlgmaRD47Vngve5x .sectionTitle2{fill:#333}#mermaid-svg-UlgmaRD47Vngve5x .sectionTitle3{fill:#333}#mermaid-svg-UlgmaRD47Vngve5x .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-UlgmaRD47Vngve5x .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-UlgmaRD47Vngve5x .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-UlgmaRD47Vngve5x .grid path{stroke-width:0}#mermaid-svg-UlgmaRD47Vngve5x .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-UlgmaRD47Vngve5x .task{stroke-width:2}#mermaid-svg-UlgmaRD47Vngve5x .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-UlgmaRD47Vngve5x .taskText:not([font-size]){font-size:11px}#mermaid-svg-UlgmaRD47Vngve5x .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-UlgmaRD47Vngve5x .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-UlgmaRD47Vngve5x .task.clickable{cursor:pointer}#mermaid-svg-UlgmaRD47Vngve5x .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-UlgmaRD47Vngve5x .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-UlgmaRD47Vngve5x .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-UlgmaRD47Vngve5x .taskText0,#mermaid-svg-UlgmaRD47Vngve5x .taskText1,#mermaid-svg-UlgmaRD47Vngve5x .taskText2,#mermaid-svg-UlgmaRD47Vngve5x .taskText3{fill:#fff}#mermaid-svg-UlgmaRD47Vngve5x .task0,#mermaid-svg-UlgmaRD47Vngve5x .task1,#mermaid-svg-UlgmaRD47Vngve5x .task2,#mermaid-svg-UlgmaRD47Vngve5x .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-UlgmaRD47Vngve5x .taskTextOutside0,#mermaid-svg-UlgmaRD47Vngve5x .taskTextOutside2{fill:#000}#mermaid-svg-UlgmaRD47Vngve5x .taskTextOutside1,#mermaid-svg-UlgmaRD47Vngve5x .taskTextOutside3{fill:#000}#mermaid-svg-UlgmaRD47Vngve5x .active0,#mermaid-svg-UlgmaRD47Vngve5x .active1,#mermaid-svg-UlgmaRD47Vngve5x .active2,#mermaid-svg-UlgmaRD47Vngve5x .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-UlgmaRD47Vngve5x .activeText0,#mermaid-svg-UlgmaRD47Vngve5x .activeText1,#mermaid-svg-UlgmaRD47Vngve5x .activeText2,#mermaid-svg-UlgmaRD47Vngve5x .activeText3{fill:#000 !important}#mermaid-svg-UlgmaRD47Vngve5x .done0,#mermaid-svg-UlgmaRD47Vngve5x .done1,#mermaid-svg-UlgmaRD47Vngve5x .done2,#mermaid-svg-UlgmaRD47Vngve5x .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-UlgmaRD47Vngve5x .doneText0,#mermaid-svg-UlgmaRD47Vngve5x .doneText1,#mermaid-svg-UlgmaRD47Vngve5x .doneText2,#mermaid-svg-UlgmaRD47Vngve5x .doneText3{fill:#000 !important}#mermaid-svg-UlgmaRD47Vngve5x .crit0,#mermaid-svg-UlgmaRD47Vngve5x .crit1,#mermaid-svg-UlgmaRD47Vngve5x .crit2,#mermaid-svg-UlgmaRD47Vngve5x .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-UlgmaRD47Vngve5x .activeCrit0,#mermaid-svg-UlgmaRD47Vngve5x .activeCrit1,#mermaid-svg-UlgmaRD47Vngve5x .activeCrit2,#mermaid-svg-UlgmaRD47Vngve5x .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-UlgmaRD47Vngve5x .doneCrit0,#mermaid-svg-UlgmaRD47Vngve5x .doneCrit1,#mermaid-svg-UlgmaRD47Vngve5x .doneCrit2,#mermaid-svg-UlgmaRD47Vngve5x .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-UlgmaRD47Vngve5x .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-UlgmaRD47Vngve5x .milestoneText{font-style:italic}#mermaid-svg-UlgmaRD47Vngve5x .doneCritText0,#mermaid-svg-UlgmaRD47Vngve5x .doneCritText1,#mermaid-svg-UlgmaRD47Vngve5x .doneCritText2,#mermaid-svg-UlgmaRD47Vngve5x .doneCritText3{fill:#000 !important}#mermaid-svg-UlgmaRD47Vngve5x .activeCritText0,#mermaid-svg-UlgmaRD47Vngve5x .activeCritText1,#mermaid-svg-UlgmaRD47Vngve5x .activeCritText2,#mermaid-svg-UlgmaRD47Vngve5x .activeCritText3{fill:#000 !important}#mermaid-svg-UlgmaRD47Vngve5x .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-UlgmaRD47Vngve5x g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-UlgmaRD47Vngve5x g.classGroup text .title{font-weight:bolder}#mermaid-svg-UlgmaRD47Vngve5x g.clickable{cursor:pointer}#mermaid-svg-UlgmaRD47Vngve5x g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-UlgmaRD47Vngve5x g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-UlgmaRD47Vngve5x .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-UlgmaRD47Vngve5x .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-UlgmaRD47Vngve5x .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-UlgmaRD47Vngve5x .dashed-line{stroke-dasharray:3}#mermaid-svg-UlgmaRD47Vngve5x #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-UlgmaRD47Vngve5x #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-UlgmaRD47Vngve5x #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-UlgmaRD47Vngve5x #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-UlgmaRD47Vngve5x #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-UlgmaRD47Vngve5x #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-UlgmaRD47Vngve5x #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-UlgmaRD47Vngve5x #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-UlgmaRD47Vngve5x .commit-id,#mermaid-svg-UlgmaRD47Vngve5x .commit-msg,#mermaid-svg-UlgmaRD47Vngve5x .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-UlgmaRD47Vngve5x .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-UlgmaRD47Vngve5x .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-UlgmaRD47Vngve5x g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-UlgmaRD47Vngve5x g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-UlgmaRD47Vngve5x g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-UlgmaRD47Vngve5x g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-UlgmaRD47Vngve5x g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-UlgmaRD47Vngve5x g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-UlgmaRD47Vngve5x .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-UlgmaRD47Vngve5x .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-UlgmaRD47Vngve5x .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-UlgmaRD47Vngve5x .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-UlgmaRD47Vngve5x .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-UlgmaRD47Vngve5x .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-UlgmaRD47Vngve5x .edgeLabel text{fill:#333}#mermaid-svg-UlgmaRD47Vngve5x .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-UlgmaRD47Vngve5x .node circle.state-start{fill:black;stroke:black}#mermaid-svg-UlgmaRD47Vngve5x .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-UlgmaRD47Vngve5x #statediagram-barbEnd{fill:#9370db}#mermaid-svg-UlgmaRD47Vngve5x .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-UlgmaRD47Vngve5x .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-UlgmaRD47Vngve5x .statediagram-state .divider{stroke:#9370db}#mermaid-svg-UlgmaRD47Vngve5x .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-UlgmaRD47Vngve5x .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-UlgmaRD47Vngve5x .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-UlgmaRD47Vngve5x .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-UlgmaRD47Vngve5x .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-UlgmaRD47Vngve5x .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-UlgmaRD47Vngve5x .note-edge{stroke-dasharray:5}#mermaid-svg-UlgmaRD47Vngve5x .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-UlgmaRD47Vngve5x .error-icon{fill:#522}#mermaid-svg-UlgmaRD47Vngve5x .error-text{fill:#522;stroke:#522}#mermaid-svg-UlgmaRD47Vngve5x .edge-thickness-normal{stroke-width:2px}#mermaid-svg-UlgmaRD47Vngve5x .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-UlgmaRD47Vngve5x .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-UlgmaRD47Vngve5x .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-UlgmaRD47Vngve5x .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-UlgmaRD47Vngve5x .marker{fill:#333}#mermaid-svg-UlgmaRD47Vngve5x .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-UlgmaRD47Vngve5x {color: rgba(0, 0, 0, 0.75);font: ;}

N点DFT
ZT
FT
单位圆上N点等间隔采样
0到2pi区间N点等间隔采样
xn
Xk
Xz
Xw

X(z)=ZT[x(n)]=∑n=0M−1x(n)z−n(1)X(ejω)=DTFT[x(n)]=∑n=0M−1x(n)e−jωn(2)X(k)=DFT[x(n)]N=∑n=0M−1x(n)WNkn=∑n=0M−1x(n)e−j2πNnkk=0,1,...,N−1(3)X(z)=ZT[x(n)]=\sum_{n=0}^{M-1}x(n)z^{-n}{\quad}(1)\\ X(e^{j\omega})=DTFT[x(n)]=\sum_{n=0}^{M-1}x(n)e^{-j{\omega}n}{\quad}(2)\\ X(k)=DFT[x(n)]_N=\sum_{n=0}^{M-1}x(n)W_N^{kn}\\ =\sum_{n=0}^{M-1}x(n)e^{-j\frac{2\pi}{N}nk}{\quad}k=0,1,...,N-1{\quad}(3) X(z)=ZT[x(n)]=n=0∑M−1​x(n)z−n(1)X(ejω)=DTFT[x(n)]=n=0∑M−1​x(n)e−jωn(2)X(k)=DFT[x(n)]N​=n=0∑M−1​x(n)WNkn​=n=0∑M−1​x(n)e−jN2π​nkk=0,1,...,N−1(3)

  • 序列x(n)x(n)x(n)的N点DFT-X(k)X(k)X(k)是x(n)x(n)x(n)的Z变换在单位圆上的N点等间隔采样;
    X(k)=X(z)∣z=ej2πNkk=0,1,...,N−1X(k)=X(z)\big|_{\color{blue}z=e^{j\frac{2\pi}{N}k}}{\quad}k=0,1,...,N-1 X(k)=X(z)∣∣​z=ejN2π​k​k=0,1,...,N−1

  • X(k)X(k)X(k)是x(n)x(n)x(n)的傅里叶变换X(ejω)X(e^{j\omega})X(ejω)在区间[0,2π][0,\ 2\pi][0, 2π]上的N点等间隔采样;
    X(k)=X(ejω)∣w=2πNkk=0,1,...,N−1X(k)=X(e^{j\omega})\big|_{\color{blue}w=\frac{2\pi}{N}k}{\quad}k=0,1,...,N-1 X(k)=X(ejω)∣∣​w=N2π​k​k=0,1,...,N−1

DFT的隐含周期性

∵WNk=WNk+mNk,m为整数,N为自然数∴X(k+mN)=...=X(k){\because}{\quad}W_N^k=W_N^{k+mN}{\qquad}k,m为整数,N为自然数\\ {\therefore}{\quad}X(k+mN)=...=X(k) ∵WNk​=WNk+mN​k,m为整数,N为自然数∴X(k+mN)=...=X(k)

任何周期为N的周期序列x(n)~\widetilde{x(n)}x(n)​都可以看做长度为N的有限长序列x(n)x(n)x(n)的周期性延拓序列,而x(n)x(n)x(n)是x(n)~\widetilde{x(n)}x(n)​的一个周期,即:
x(n)~=∑m=−∞+∞x(n+mN)x(n)=x(n)~RN(n)\widetilde{x(n)}=\sum_{m=-\infin}^{+\infin}x(n+mN)\\ x(n)=\widetilde{x(n)}R_N(n) x(n)​=m=−∞∑+∞​x(n+mN)x(n)=x(n)​RN​(n)
有限长序列x(n)x(n)x(n)的N点DFT的结果X(k)X(k)X(k)恰好是x(n)x(n)x(n)的周期性延拓序列x((n))Nx((n))_Nx((n))N​的DFS的结果X(k)~\widetilde{X(k)}X(k)​的主值序列,即:
X(k)=X(k)~RN(k)X(k)=\widetilde{X(k)}R_N(k) X(k)=X(k)​RN​(k)
因此X(k)X(k)X(k)实质上就是x(n)x(n)x(n)的周期延拓序列x((n))Nx((n))_Nx((n))N​的频谱特性。

DFT的性质

线性

时/频域循环移位定理

时域循环移位定理{y(n)=x((n+m))NRN(n)Y(k)=DFT[y(n)]=WN−kmX(k)频域循环移位定理{Y(k)=X((k+l))NRN(k)y(n)=IDFT[Y(K)]N=WNnlx(n)时域循环移位定理 \begin{cases} & y(n)=x((n+m))_NR_N(n)\\ & Y(k)=DFT[y(n)]=W_N^{-km}X(k)\\ \end{cases} \\ 频域循环移位定理 \begin{cases} & Y(k)=X((k+l))_NR_N(k)\\ & y(n)=IDFT[Y(K)]_N=W_N^{nl}x(n) \end{cases} 时域循环移位定理{​y(n)=x((n+m))N​RN​(n)Y(k)=DFT[y(n)]=WN−km​X(k)​频域循环移位定理{​Y(k)=X((k+l))N​RN​(k)y(n)=IDFT[Y(K)]N​=WNnl​x(n)​

循环卷积定理

ifx(n)=x2(n)∗Lx1(n)=[∑m=0N−1x2(m)x1((n−m))N]RN(n)haveX(k)=DFT[x(n)]N=X1(k)X2(k)X1(k)=DFT[x1(n)]X2(k)=DFT[x2(n)]if{\quad}x(n)=x_2(n){\color{blue}*_L}x_1(n)\\ =[\sum_{m=0}^{N-1}x_2(m)x_1((n-m))_N]R_N(n)\\ have{\quad}X(k)=DFT[x(n)]_N=X_1(k)X_2(k)\\ X_1(k)=DFT[x_1(n)]\\ X_2(k)=DFT[x_2(n)]\\ ifx(n)=x2​(n)∗L​x1​(n)=[m=0∑N−1​x2​(m)x1​((n−m))N​]RN​(n)haveX(k)=DFT[x(n)]N​=X1​(k)X2​(k)X1​(k)=DFT[x1​(n)]X2​(k)=DFT[x2​(n)]

复共轭序列的DFT及其对称性

{x(n)=xep(n)+xop(n)X(k)=XR(k)+jXI(k){XR(k)=DFT[xep(n)]jXI(k)=DFT[xop(n)]\begin{cases} &x(n)=x_{ep}(n)+x_{op}(n)\\ &X(k)=X_R(k)+jX_I(k)\\ \end{cases} \\ \begin{cases} &X_R(k)=DFT[x_{ep}(n)]\\ &jX_I(k)=DFT[x_{op}(n)]\\ \end{cases} {​x(n)=xep​(n)+xop​(n)X(k)=XR​(k)+jXI​(k)​{​XR​(k)=DFT[xep​(n)]jXI​(k)=DFT[xop​(n)]​

线性卷积和循环卷积的关系

yc(n)=[∑i=−∞∞yl(n+iL)]RL(n)y_c(n)=\Big[\sum_{i=-\infin}^{\infin}y_l(n+iL)\Big]R_L(n) yc​(n)=[i=−∞∑∞​yl​(n+iL)]RL​(n)

循环卷积等于线性卷积以L为周期进行周期延拓后的序列的主值序列,若要求循环卷积和线性卷积相等,则需要周期延拓后无混叠,即L≥N+M−1L{\ge}N+M-1L≥N+M−1。

频率域采样

由X(k)X(k)X(k)恢复出x(n)x(n)x(n)的条件

#mermaid-svg-F8eLfd5LkA7YQT9B .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .label text{fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .node rect,#mermaid-svg-F8eLfd5LkA7YQT9B .node circle,#mermaid-svg-F8eLfd5LkA7YQT9B .node ellipse,#mermaid-svg-F8eLfd5LkA7YQT9B .node polygon,#mermaid-svg-F8eLfd5LkA7YQT9B .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-F8eLfd5LkA7YQT9B .node .label{text-align:center;fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .node.clickable{cursor:pointer}#mermaid-svg-F8eLfd5LkA7YQT9B .arrowheadPath{fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-F8eLfd5LkA7YQT9B .flowchart-link{stroke:#333;fill:none}#mermaid-svg-F8eLfd5LkA7YQT9B .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-F8eLfd5LkA7YQT9B .edgeLabel rect{opacity:0.9}#mermaid-svg-F8eLfd5LkA7YQT9B .edgeLabel span{color:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-F8eLfd5LkA7YQT9B .cluster text{fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-F8eLfd5LkA7YQT9B .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-F8eLfd5LkA7YQT9B text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-F8eLfd5LkA7YQT9B .actor-line{stroke:grey}#mermaid-svg-F8eLfd5LkA7YQT9B .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-F8eLfd5LkA7YQT9B #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .sequenceNumber{fill:#fff}#mermaid-svg-F8eLfd5LkA7YQT9B #sequencenumber{fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B #crosshead path{fill:#333;stroke:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .messageText{fill:#333;stroke:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-F8eLfd5LkA7YQT9B .labelText,#mermaid-svg-F8eLfd5LkA7YQT9B .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-F8eLfd5LkA7YQT9B .loopText,#mermaid-svg-F8eLfd5LkA7YQT9B .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-F8eLfd5LkA7YQT9B .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-F8eLfd5LkA7YQT9B .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-F8eLfd5LkA7YQT9B .noteText,#mermaid-svg-F8eLfd5LkA7YQT9B .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-F8eLfd5LkA7YQT9B .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-F8eLfd5LkA7YQT9B .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-F8eLfd5LkA7YQT9B .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-F8eLfd5LkA7YQT9B .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-F8eLfd5LkA7YQT9B .section{stroke:none;opacity:0.2}#mermaid-svg-F8eLfd5LkA7YQT9B .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-F8eLfd5LkA7YQT9B .section2{fill:#fff400}#mermaid-svg-F8eLfd5LkA7YQT9B .section1,#mermaid-svg-F8eLfd5LkA7YQT9B .section3{fill:#fff;opacity:0.2}#mermaid-svg-F8eLfd5LkA7YQT9B .sectionTitle0{fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .sectionTitle1{fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .sectionTitle2{fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .sectionTitle3{fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-F8eLfd5LkA7YQT9B .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-F8eLfd5LkA7YQT9B .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-F8eLfd5LkA7YQT9B .grid path{stroke-width:0}#mermaid-svg-F8eLfd5LkA7YQT9B .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-F8eLfd5LkA7YQT9B .task{stroke-width:2}#mermaid-svg-F8eLfd5LkA7YQT9B .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-F8eLfd5LkA7YQT9B .taskText:not([font-size]){font-size:11px}#mermaid-svg-F8eLfd5LkA7YQT9B .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-F8eLfd5LkA7YQT9B .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-F8eLfd5LkA7YQT9B .task.clickable{cursor:pointer}#mermaid-svg-F8eLfd5LkA7YQT9B .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-F8eLfd5LkA7YQT9B .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-F8eLfd5LkA7YQT9B .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-F8eLfd5LkA7YQT9B .taskText0,#mermaid-svg-F8eLfd5LkA7YQT9B .taskText1,#mermaid-svg-F8eLfd5LkA7YQT9B .taskText2,#mermaid-svg-F8eLfd5LkA7YQT9B .taskText3{fill:#fff}#mermaid-svg-F8eLfd5LkA7YQT9B .task0,#mermaid-svg-F8eLfd5LkA7YQT9B .task1,#mermaid-svg-F8eLfd5LkA7YQT9B .task2,#mermaid-svg-F8eLfd5LkA7YQT9B .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-F8eLfd5LkA7YQT9B .taskTextOutside0,#mermaid-svg-F8eLfd5LkA7YQT9B .taskTextOutside2{fill:#000}#mermaid-svg-F8eLfd5LkA7YQT9B .taskTextOutside1,#mermaid-svg-F8eLfd5LkA7YQT9B .taskTextOutside3{fill:#000}#mermaid-svg-F8eLfd5LkA7YQT9B .active0,#mermaid-svg-F8eLfd5LkA7YQT9B .active1,#mermaid-svg-F8eLfd5LkA7YQT9B .active2,#mermaid-svg-F8eLfd5LkA7YQT9B .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-F8eLfd5LkA7YQT9B .activeText0,#mermaid-svg-F8eLfd5LkA7YQT9B .activeText1,#mermaid-svg-F8eLfd5LkA7YQT9B .activeText2,#mermaid-svg-F8eLfd5LkA7YQT9B .activeText3{fill:#000 !important}#mermaid-svg-F8eLfd5LkA7YQT9B .done0,#mermaid-svg-F8eLfd5LkA7YQT9B .done1,#mermaid-svg-F8eLfd5LkA7YQT9B .done2,#mermaid-svg-F8eLfd5LkA7YQT9B .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-F8eLfd5LkA7YQT9B .doneText0,#mermaid-svg-F8eLfd5LkA7YQT9B .doneText1,#mermaid-svg-F8eLfd5LkA7YQT9B .doneText2,#mermaid-svg-F8eLfd5LkA7YQT9B .doneText3{fill:#000 !important}#mermaid-svg-F8eLfd5LkA7YQT9B .crit0,#mermaid-svg-F8eLfd5LkA7YQT9B .crit1,#mermaid-svg-F8eLfd5LkA7YQT9B .crit2,#mermaid-svg-F8eLfd5LkA7YQT9B .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-F8eLfd5LkA7YQT9B .activeCrit0,#mermaid-svg-F8eLfd5LkA7YQT9B .activeCrit1,#mermaid-svg-F8eLfd5LkA7YQT9B .activeCrit2,#mermaid-svg-F8eLfd5LkA7YQT9B .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-F8eLfd5LkA7YQT9B .doneCrit0,#mermaid-svg-F8eLfd5LkA7YQT9B .doneCrit1,#mermaid-svg-F8eLfd5LkA7YQT9B .doneCrit2,#mermaid-svg-F8eLfd5LkA7YQT9B .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-F8eLfd5LkA7YQT9B .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-F8eLfd5LkA7YQT9B .milestoneText{font-style:italic}#mermaid-svg-F8eLfd5LkA7YQT9B .doneCritText0,#mermaid-svg-F8eLfd5LkA7YQT9B .doneCritText1,#mermaid-svg-F8eLfd5LkA7YQT9B .doneCritText2,#mermaid-svg-F8eLfd5LkA7YQT9B .doneCritText3{fill:#000 !important}#mermaid-svg-F8eLfd5LkA7YQT9B .activeCritText0,#mermaid-svg-F8eLfd5LkA7YQT9B .activeCritText1,#mermaid-svg-F8eLfd5LkA7YQT9B .activeCritText2,#mermaid-svg-F8eLfd5LkA7YQT9B .activeCritText3{fill:#000 !important}#mermaid-svg-F8eLfd5LkA7YQT9B .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-F8eLfd5LkA7YQT9B g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-F8eLfd5LkA7YQT9B g.classGroup text .title{font-weight:bolder}#mermaid-svg-F8eLfd5LkA7YQT9B g.clickable{cursor:pointer}#mermaid-svg-F8eLfd5LkA7YQT9B g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-F8eLfd5LkA7YQT9B g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-F8eLfd5LkA7YQT9B .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-F8eLfd5LkA7YQT9B .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-F8eLfd5LkA7YQT9B .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-F8eLfd5LkA7YQT9B .dashed-line{stroke-dasharray:3}#mermaid-svg-F8eLfd5LkA7YQT9B #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-F8eLfd5LkA7YQT9B #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-F8eLfd5LkA7YQT9B #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-F8eLfd5LkA7YQT9B #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-F8eLfd5LkA7YQT9B #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-F8eLfd5LkA7YQT9B #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-F8eLfd5LkA7YQT9B #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-F8eLfd5LkA7YQT9B #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-F8eLfd5LkA7YQT9B .commit-id,#mermaid-svg-F8eLfd5LkA7YQT9B .commit-msg,#mermaid-svg-F8eLfd5LkA7YQT9B .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-F8eLfd5LkA7YQT9B .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-F8eLfd5LkA7YQT9B .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-F8eLfd5LkA7YQT9B g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-F8eLfd5LkA7YQT9B g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-F8eLfd5LkA7YQT9B g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-F8eLfd5LkA7YQT9B g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-F8eLfd5LkA7YQT9B g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-F8eLfd5LkA7YQT9B .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-F8eLfd5LkA7YQT9B .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-F8eLfd5LkA7YQT9B .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-F8eLfd5LkA7YQT9B .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-F8eLfd5LkA7YQT9B .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-F8eLfd5LkA7YQT9B .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-F8eLfd5LkA7YQT9B .edgeLabel text{fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-F8eLfd5LkA7YQT9B .node circle.state-start{fill:black;stroke:black}#mermaid-svg-F8eLfd5LkA7YQT9B .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-F8eLfd5LkA7YQT9B #statediagram-barbEnd{fill:#9370db}#mermaid-svg-F8eLfd5LkA7YQT9B .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-F8eLfd5LkA7YQT9B .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-F8eLfd5LkA7YQT9B .statediagram-state .divider{stroke:#9370db}#mermaid-svg-F8eLfd5LkA7YQT9B .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-F8eLfd5LkA7YQT9B .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-F8eLfd5LkA7YQT9B .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-F8eLfd5LkA7YQT9B .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-F8eLfd5LkA7YQT9B .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-F8eLfd5LkA7YQT9B .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-F8eLfd5LkA7YQT9B .note-edge{stroke-dasharray:5}#mermaid-svg-F8eLfd5LkA7YQT9B .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-F8eLfd5LkA7YQT9B .error-icon{fill:#522}#mermaid-svg-F8eLfd5LkA7YQT9B .error-text{fill:#522;stroke:#522}#mermaid-svg-F8eLfd5LkA7YQT9B .edge-thickness-normal{stroke-width:2px}#mermaid-svg-F8eLfd5LkA7YQT9B .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-F8eLfd5LkA7YQT9B .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-F8eLfd5LkA7YQT9B .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-F8eLfd5LkA7YQT9B .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-F8eLfd5LkA7YQT9B .marker{fill:#333}#mermaid-svg-F8eLfd5LkA7YQT9B .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-F8eLfd5LkA7YQT9B {color: rgba(0, 0, 0, 0.75);font: ;}

FT
0-2piN点
等间隔采样
IDFT
周期延拓
DFS
主值序列
ZT
单位圆上N点
等间隔采样
x(n)
X(e^jw)
X(k)
X(n)N
x~n
X~k
X(z)

如何从x(n)N推导出x(n)呢?下面直接给出结论:
xN(n)=x(n)~RN(n)=[∑i=−∞∞x(n+iN)]RN(n)x_N(n)=\widetilde{x(n)}R_N(n)\\ =\Big[\sum_{i=-\infin}^{\infin}x(n+iN)\Big]R_N(n) xN​(n)=x(n)​RN​(n)=[i=−∞∑∞​x(n+iN)]RN​(n)
如果序列x(n)x(n)x(n)的长度为M,则只有当频域采样点数N≥MN{\ge}MN≥M时,才有:
xN(n)=IDFT[X(k)]=x(n)x_N(n)=IDFT\Big[X(k)\Big]=x(n) xN​(n)=IDFT[X(k)]=x(n)
即可由频域采样值X(k)X(k)X(k)恢复出原序列x(n)x(n)x(n),否则产生时域混叠现象。

如何由X(k)X(k)X(k)恢复X(z)X(z)X(z)和X(ejω)X(e^{j\omega})X(ejω)

结论如下,省略推导:
X(z)=∑k=0N−1X(k)1N1−z−N1−WN−kz−1=∑k=0N−1X(k)ϕk(z)X(z)=\sum_{k=0}^{N-1}X(k)\frac{1}{N}\frac{1-z^{-N}}{1-W_N^{-k}z^{-1}}\\ =\sum_{k=0}^{N-1}X(k){\phi}_k(z)\\ X(z)=k=0∑N−1​X(k)N1​1−WN−k​z−11−z−N​=k=0∑N−1​X(k)ϕk​(z)
将z=ejωz=e^{j\omega}z=ejω带入上式得:
X(ejω)=∑k=0N−1X(k)ϕ(ω−2πNk)ϕ(ω)=1Nsin(ωN/2)sin⁡(ω/2)e−jω(N−12)X(e^{j\omega})=\sum_{k=0}^{N-1}X(k){\phi}({\omega}-\frac{2\pi}{N}k)\\ {\phi}(\omega)=\frac{1}{N}\frac{sin({\omega}N/2)}{\sin({\omega}/2)}e^{-j{\omega}(\frac{N-1}{2})} X(ejω)=k=0∑N−1​X(k)ϕ(ω−N2π​k)ϕ(ω)=N1​sin(ω/2)sin(ωN/2)​e−jω(2N−1​)
上式中X(z)X(z)X(z)表示内插公式,ϕk(z)\phi_k(z)ϕk​(z)称为内插函数

用DFT对信号进行频谱分析

对连续信号进行频谱分析

Xa(kF)=TX(k)=T⋅DFT[x(n)N]k=0,1,...,N−1X_a(kF)=TX(k)=T{\cdot}DFT[x(n)_N]{\quad}k=0,1,...,N-1 Xa​(kF)=TX(k)=T⋅DFT[x(n)N​]k=0,1,...,N−1

上式表明,可以通过对连续信号采样并进行DFTDFTDFT再乘TTT,近似得到模拟信号频谱的周期延拓函数在第一个周期[0,Fs]\Big[0,F_s\Big][0,Fs​]上的N点等间隔采样Xa(kF)X_a(kF)Xa​(kF)。
TpT_pTp​和N可以按照下面两式进行选择:
{N>2fcFTp>1F\begin{cases} N > \frac{2f_c}{F}\\ T_p > \frac{1}{F} \end{cases} {N>F2fc​​Tp​>F1​​
fcf_cfc​是信号最高频率,FFF是谱分辨率,TpT_pTp​是信号持续时间。

对序列进行频谱分析

误差分析

混叠现象

采样速率必须满足采样定理,否则会在ω=π\omega=\piω=π(对应模拟频率f=Fs/2f=F_s/2f=Fs​/2)附近发生频谱混叠现象。一般在采样前进行预滤波,滤除高于折叠频率Fs/2F_s/2Fs​/2的频率成分,以免发生频谱混叠现象。

栅栏效应

N点DFT是在频率区间[0,2π][0,2\pi][0,2π]上对时域离散信号的频谱进行N点等间隔采样,而采样点之间的频谱是看不到的。对有限长序列,可以在原序列尾部补零;对无限长序列,可以增大截取长度DFT变换区间长度,从而使频域采样间隔变小,增加频域采样点数和采样点位置,使原来漏掉的某些频谱成分被检测出来。

截断效应

实际中遇到的x(n)x(n)x(n)可能是无限长的,用DFT对其进行频谱分析时,必须将其截短,形成有限长序列y(n)=x(n)w(n)y(n)=x(n)w(n)y(n)=x(n)w(n),w(n)w(n)w(n)称为窗函数,长度为N。

数字信号处理-基础一相关推荐

  1. 数字信号处理基础----FM的调制与解调

    1. FM调制与解调的数学原理 1.1 FM调制中的常用指标   FM是模拟调制中的一种,也就是频率调制.就是把基带信号用载波的频率来承载.直接的表现方式是调角,也是一种非线性调制.   角度调制时, ...

  2. (4)FPGA面试技能提升篇(数字信号处理基础)

    1.1 FPGA面试技能提升篇4(数字信号处理基础) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试技能提升篇4(数字信号处理基础): 5)结束语. 1.1 ...

  3. 数字信号处理基础----FM的调制与解调(1)

    1. FM调制与解调的数学原理 1.1 FM调制中的常用指标   FM是模拟调制中的一种,也就是频率调制.就是把基带信号用载波的频率来承载.直接的表现方式是调角,也是一种非线性调制.   角度调制时, ...

  4. matlab数字信号处理实验报告,数字信号处理实验报告(Matlab与数字信号处理基础).doc...

    西华大学实验报告(理工类) 开课学院及实验室:电气信息学院 6A-205实验时间 :年月日学 生 姓 名学号成 绩学生所在学院电气信息学院年级/专业/班课 程 名 称数字信号处理课 程 代 码实验项目 ...

  5. MATLAB数字信号处理基础

    MATLAB数字信号处理基础 1.波形产生函数 函数 说明 square 方波 sawtooth 锯齿波 sinc sinc函数 diric diric函数 rectpuls 非周期方波 tripul ...

  6. 数字信号处理基础----xilinx除法器IP使用

    前言 在进行数字信号处理的时候,计算是必不可少的,通常情况下,能够不用乘法器和除法器就不用乘除法器,可以采用移位和加减法的方式来完成计算.但在一些特殊情况下,希望采用乘除法,这时候在FPGA当中就需要 ...

  7. 数字信号处理基础知识00

    数字信号处理 Digital Signal Processing 离散时间信号与系统分析 Z变换 离散傅立叶变换(DFT) 快速傅立叶变换(FFT) 离散时间系统的结构 IIR滤波器的设计 FIR滤波 ...

  8. matlab如何进行数字信号处理,数字信号处理基础及MATLAB实现(第2版)

    [内容简介] 本书系统地介绍了数字信号处理基本理论.设计方法和实现等方面的内容.全书共分9章,第1章介绍数字信号处理的研究对象.学科概貌.系统基本组成.特点.发展及应用等内容:第2章介绍离散时间信号与 ...

  9. 数字信号处理基础----快速傅里叶变换

    1 旋转矢量   在前面曾多次提到了旋转矢量,也就是在单位圆上旋转的一个复指数信号.旋转的方向为逆时针,旋转的角速度Ω=2π/N,N为旋转矢量的周期.   现在若使旋转的方向相反,则可以得到顺时针旋转 ...

  10. 数字信号处理基础总结--7.28

    第一章 离散时间信号与系统 1.我们实际用的信号,一般都是实信号,理论研究可能用到复信号. 2.x(n-m),m为正,表示延时m位.右移. 3.matlab 卷积函数conv,单位阶跃序列的后向差分就 ...

最新文章

  1. com+ 三层布署[未成功验证]
  2. php文件锁 阻塞区别,php文件锁阻塞模式和非阻塞模式
  3. mysql 建表覆盖原先表_mysql表与表之间建关系
  4. robocode java_IBM Robocode Java学习利器(1)Robocode 入门
  5. SolidWorks修改工程图中文字字体的方法
  6. android 数据线有几种,安卓数据线有几种
  7. 云计算 IaaS PaaS SaaS 基础概念和区别终于搞清楚了
  8. win10 系统锁屏壁纸的目录
  9. WIN10解包分区和磁盘分区教程
  10. 使用@media screen解决分web不同分辨率问题
  11. js统一社会信用代码正则验证
  12. 基于汇编语言的文本对比算法
  13. 西电计算机学院有保研清华的吗,2021届清华录取保研学生3520余人,本校学生约一半,西电实力强大...
  14. 角度制与弧度制的相互转换np.deg2radnp.rad2deg
  15. 【线段树】L - GTY‘s gay friends
  16. 百度地图绘画行政区域
  17. 微信敏感词都有什么?
  18. C++之string类型详解
  19. hypermill后处理构造器安装_NX后处理直白易操作教程
  20. 两列模糊对比 oracle,excel 模糊比对两列数据并将比对结果显示出来 | excel表格两列数据模糊对比...

热门文章

  1. 1407 :上三角矩阵的判断(c语言)
  2. [论文阅读] 激光点云分割-RPVNet
  3. matlab2010反复激活
  4. Windows终端配置emoji
  5. 计算几何之计算三角形的外接圆(三维)
  6. java面试填空题 jsp_JSP面试题及答案
  7. Python数学建模系列(九):回归
  8. latex教程 / 矢量图转换 / 文献引用bibitem
  9. DH算法 | Diffie-Hellman 密钥交换
  10. 如何看oracle 删除完全,怎么查看以前Oracle卸载干净没?