{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 时域中的离散时间信号\n", "\n", "数字信号处理是处理一种称之为输入信号的离散时间信号,以产生另一种称之为输出信号的离散时间信号,这种输出信号具有更多人们所需要的性质.在某些应用中,需要使用特定的数字信号处理算法来提取原信号的一些重要性质.通过观察系统对给定输入信号的输出信号,还可以研究离散时间系统的特性.\n", "\n", "因此,我们首先要学会用Python在时域中产生一些基本的离散时间信号,并对这些信号进行一些基本的运算.其次,学会使用基本的Python命令,并将它们应用到简单的数字信号处理问题中.\n", "\n", "## 相关Python包\n", "\n", "### 科学计算包\n", "\n", "科学计算包Numpy作为基础包在后学学习数字信号处理过程中会大量使用,这里通过下面的命令可以加载到程序中.\n", "\n", "```python\n", "import numpy as np\n", "```\n", "\n", "### 绘图包\n", "\n", "绘图包Matplotlib包含大量的绘图工具,可以完成跟Matlab中plot函数相当的功能,因此后续学习过程中需要可视化最终结果时,会用到这个包中的函数.\n", "\n", "```python\n", "import matplotlib.pyplot as plt\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 离散时间信号\n", "离散时间信号由样本构成的数字序列来表示.典型的离散时间信号或者序列表示为\n", "\n", "$$\n", "\\{x[n]\\}\n", "$$\n", "\n", "其中$x[n]$为样本值,$n$为样本的序号(整数),取值范围为$-\\\\infty\\\\sim \\\\infty$.\n", "\n", "一般,我们为了简便起见,将外面的花括号去掉." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, -1, -4]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 产生一个样本序列$x[n] = \\{1,2,-1,-4\\}$\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "n = np.linspace(0,3,4) # 定义序号\n", "xn = [1,2,-1,-4] # 定义序列\n", "plt.stem(n,xn) # 画出序列图形\n", "\n", "print(xn) # 显示序列" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 序列的能量和平均功率\n", "序列$x[n]$的能量定义为\n", "\n", "$$\n", " \\mathcal{E} = \\sum_{n=-\\infty}^\\infty |x[n]|^2\n", "$$\n", "\n", "有限长度序列的能量定义为\n", "\n", "$$\n", " \\mathcal{E}_K = \\sum_{n=-K}^K |x[n]|^2\n", "$$\n", "\n", "非周期信号$x[n]$的平均功率定义为\n", "\n", "$$\n", " \\mathcal{P}_{av} = \\lim_{K\\to \\infty} \\frac{1}{2K+1} \\mathcal{E}_K = \\lim_{K\\to \\infty} \\frac{1}{2K+1} \\sum_{n=-K}^K |x[n]|^2\n", "$$\n", "\n", "周期信号$\\\\tilde{x}[n]$的平均功率为\n", "\n", "$$\n", "\\mathcal{P}_{av} = \\frac{1}{N} \\sum_{n=0}^{N-1}|\\tilde{x}[n]|^2\n", "$$" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "信号x[n]的能量为E=1.595\n" ] } ], "source": [ "# 计算给定序列的能量\n", "n = np.linspace(0,3,4) # 定义序号\n", "xn = np.sin(2*np.pi*0.2*n)\n", "E = np.sum(xn**2) # 序列的能量\n", "print('信号x[n]的能量为E=%.3f' % E)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "信号x[n]的平均功率为P=0.500\n" ] } ], "source": [ "# 计算周期正弦序列的平均功率\n", "n = np.linspace(0,4,5) # 定义序号\n", "xn = np.sin(2*np.pi*0.2*n) # 周期为5的正弦序列\n", "P = np.sum(xn**2)/5 # 序列的能量\n", "print('信号x[n]的平均功率为P=%.3f' % P)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 单位样本序列和单位阶跃序列\n", "单位样本序列(或者离散时间沖激或单位沖激),用$\\\\delta[n]$来表示,其定义为\n", "\n", "$$\n", "\\delta[n] = \n", "\\begin{cases} \n", "1, & \\quad n=0 \\\\\n", "0, & \\quad n\\neq 0\n", "\\end{cases}\n", "$$\n", "\n", "单位阶跃序列用$\\\\mu[n]$来表示,定义为\n", "\n", "$$\n", "\\mu[n] = \n", "\\begin{cases} \n", "1, & \\quad n\\geq 0 \\\\\n", "0, & \\quad n< 0\n", "\\end{cases}\n", "$$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "n = np.arange(-10,21,1)\n", "hn = np.concatenate((np.zeros([1,10]),np.ones([1,1]),np.zeros([1,20])),axis=1)#,np.zeros([1,20]))\n", "un = np.concatenate((np.zeros([1,10]),np.ones([1,21])),axis=1)\n", "\n", "plt.subplot(121)\n", "plt.stem(n,hn.transpose())\n", "plt.xlabel('Time index n')\n", "plt.ylabel('Amplitude')\n", "plt.title('Unit Sample Sequence')\n", "plt.axis([-10,20,0,1.2])\n", "\n", "plt.subplot(122)\n", "plt.stem(n,un.transpose())\n", "plt.xlabel('Time index n')\n", "plt.title('Unit Step Sequence')\n", "plt.axis([-10,20,0,1.2])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 指数序列\n", "指数序列定义为\n", "\n", "$$\n", "x[n] = A \\alpha ^n \n", "$$\n", "\n", "其中,$A$和$\\\\alpha$是任意的实数或者复数,表示为\n", "\n", "$$\n", "\\alpha = e^{\\sigma_0+j\\omega_0} \\quad A = |A|e^{j\\phi}\n", "$$\n", "\n", "所以指数序列还可以改写为\n", "\n", "$$\n", "x[n] = |A|e^{\\sigma_0 n+ j(\\omega_0n + \\phi)} = |A|e^{\\sigma_0n}(\\cos(\\omega_0n + \\phi)+j\\sin(\\omega_0n + \\phi))\n", "$$\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 产生一个指数序列:sigma=-0.5,w0=0.15,phi=0.2,|A|=10\n", "n = np.linspace(0,24,25) # 定义序号\n", "w0=0.15\n", "phi=0.2\n", "A=10\n", "sigma=-0.5\n", "en = A*np.exp(sigma*n+1j*(2*np.pi*n*w0+phi))\n", "\n", "plt.subplot(121)\n", "plt.stem(n,en.real)\n", "plt.xlabel('Time index n')\n", "plt.ylabel('Amplitude')\n", "plt.title('Real part of exp. seq.')\n", "plt.subplot(122)\n", "plt.stem(n,en.imag)\n", "plt.xlabel('Time index n')\n", "plt.title('Image part of exp. seq.')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 正弦序列及其周期性\n", "正弦序列定义为\n", "\n", "$$\n", "x[n] = |A|\\cos(\\omega_0n + \\phi)\n", "$$\n", "\n", "式子中的$|A|$,$\\\\omega_0$和$\\\\phi$分别被称为正弦序列的幅度,角频率和相位.\n", "\n", "若$\\\\omega_0N$为$2\\\\pi$的整数倍,当$\\\\sigma_0=0$时,复指数序列和正弦序列都是周期序列,此时周期为满足条件的最小的$N$" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 产生一个周期为12的正弦序列\n", "n = np.linspace(0,24,25) # 定义序号\n", "xn = np.sin(2*np.pi*n/12)\n", "plt.stem(n,xn)\n", "plt.xlabel('Time index n')\n", "plt.ylabel('Amplitude')\n", "plt.title('Sinsoid sequence with Periodicity of 12')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 序列的基本运算\n", "长度为N的两个序列$x[n]$和$h[n]$的乘积,产生长度为N的序列$y[n]$\n", "\n", "$$y[n]=x[n] \\cdot h[n]$$\n", "\n", "长度为N的两个序列$x[n]$和$h[n]$的相加,产生长度为N的序列$y[n]$\n", "\n", "$$y[n]=x[n] + h[n]$$\n", "\n", "标量A和长度为N的序列$x[n]$相乘,产生长度为N的序列$y[n]$\n", "\n", "$$y[n]=A\\cdot x[n]$$\n", "\n", "无限长序列$x[n]$通过时间翻转,得到无限长序列$y[n]$\n", "\n", "$$y[n]=x[-n]$$\n", "\n", "无限长序列$x[n]$通过时间延迟(超前),得到无限长序列$y[n]$\n", "\n", "$$\n", "y[n] = x[n-m]\n", "$$\n", "\n", "长度为N的序列$x[n]$,可以被长度为M的序列$g[n]$扩充,得到长度为$N+M$的序列$y[n]$\n", "\n", "$$\n", "\\{y[n]\\} = \\{\\{x[n]\\},\\{g[n]\\}\\}\n", "$$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 循环平移函数\n", "x = np.linspace(0.1, 2 * np.pi, 41)\n", "y1 = np.sin(x)\n", "y2 = np.cos(2*x)\n", "def cshift(key,array):\n", " return np.append(array[-key:],array[:-key])\n", "\n", "# 线性平移\n", "\n", "def lshift(key,array):\n", " if key<0:\n", " return np.append(array[-key:],np.zeros([-key]))\n", " else:\n", " return np.append(np.zeros([key]),array[:-key])\n", "\n", "ylr = np.flipud(y1) # flip left and right\n", "yls = lshift(-10,y1) # left shift\n", "yrs = lshift(10,y1) # right shift \n", "\n", "plt.subplot(221)\n", "plt.title('Original')\n", "plt.stem(x, y1)\n", "plt.subplot(222)\n", "plt.title('Reversal')\n", "plt.stem(x, ylr)\n", "plt.subplot(223)\n", "plt.title('Linear Shift -10')\n", "plt.stem(x, yls)\n", "plt.subplot(224)\n", "plt.title('Linear Shift 10')\n", "plt.stem(x, yrs)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 例子: 信号平滑\n", "数字信号处理应用的一个常见的例子就是从被加性噪声污染的信号中移除噪声.假定信号$s[n]$被噪声$d[n]$污染,得到了一个含有噪声的信号\n", "\n", "$$\n", "x[n] = s[n] +d[n]\n", "$$\n", "\n", "我们的目的是对$x[n]$进行计算,产生一个合理的逼近$s[n]$的信号$y[n]$.因此,对时刻$n$的样本附近的样本求平均,产生输出信号是一种简单有效的方法,例如三点滑动平均\n", "\n", "$$\n", "y[n] = \\frac{1}{3}(x[n-1]+x[n]+x[n+1])\n", "$$" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 通过滑动平均平滑信号\n", "R = 51\n", "d = .8*np.random.normal(0,1,[R,])\n", "n = np.arange(0,R,1)\n", "\n", "s = 2*n*(0.9**n)\n", "x = s+d\n", "\n", "x1 = np.concatenate((np.zeros([2,]),x),axis=0)\n", "x2 = np.concatenate((np.zeros([1,]),x,np.zeros([1,])),axis=0)\n", "x3 = np.concatenate((x,np.zeros([2,])),axis=0)\n", "# Average\n", "y1 = (x1+x2+x3)/3\n", "y = y1[1:-1]\n", "\n", "# 绘制结果\n", "fig = plt.figure(figsize=(5,5))\n", "ax = fig.add_subplot(211)\n", "ax.plot(n,d,'r-',label='d[n]')\n", "ax.plot(n,s,'g--',label='s[n]')\n", "ax.plot(n,x,'b-',label='x[n]')\n", "ax.axis([0,50,-2,9])\n", "plt.legend(loc='upper right')\n", "plt.ylabel('Amplitude')\n", "\n", "ax = fig.add_subplot(212)\n", "ax.plot(n,y,'r-',label='y[n]')\n", "ax.plot(n,s,'g--',label='s[n]')\n", "ax.axis([0,50,-2,9])\n", "plt.legend(loc='upper right')\n", "plt.xlabel('Time index (n)')\n", "plt.ylabel('Amplitude')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }