案例四——滤波可以卷出来
内容概要案例设置目的相关基础理论情境任务及步骤线性卷积的编程实现卷积运算竟是滤波确定系统单位脉冲响应思考题总结报告要求
案例设置目的通过编制线性卷积算法程序,进一步理解线性卷积的原理;通过对一噪声污染的正弦波用线性卷积实现滑动平均,从感官上理解线性卷积的作用及滤波的概念;通过测试代码执行时间,建立代码效率概念;通过单位脉冲响应的求解,理解系统的时域描述方式。
相关基础理论输入序列x(n)和线性时不变系统单位脉冲响应h(n)的线性卷积运算定义为当h(n)为M+1点的有限长序列,且h(n)仅在0≤n≤M有非零值时,则h(n)描述了一FIR(FiniteImpulseResponse)系统。此时式(4.1)改写为或者 当x(n)也为有限长序列,且仅在n1≤n≤n2有非零值时,n1≥0,则使乘积h(m)·x(n-m)取非零值的n必定在如下范围:即????
相关基础理论由式(4.4)容易推导出输出序列的长度L=n2+M-n1+1.若n1=0,n2=N,x(n)和h(n)卷积的结果y可用一个1×L的矩阵来描述,其中L=N+M+1,而计算过程可以写成如下两个矩阵的乘积,单位脉冲响应h(n)各系数构成的左侧矩阵是1×(M+1)维,根据输入x(n)构造的右侧矩阵是(M+1)×L维,且右侧矩阵第一行补M个零。 ?
相关基础理论若x(n)是n1≠0的因果序列,同样也可以用式(4.5)进行计算,只是前n1项为0而已。将式(4.5)中由输入x(n)构造的矩阵的每一行看成一个向量,h(n)各系数构成的矩阵的每一列看成一个向量,则式(4.5)的运算可以看出是如下排列的有(N+1)项的(M+1)个行向量的和,这种方法也称为对位相乘相加法。?
相关基础理论当h(n)为无限长序列时,系统可选择用差分方程描述,即(4.6)式(4.6)也常等价为(4.7)其中x(n)和y(n)分别为系统的输入和输出;bk和ak分别表示输入和已有输出对当前输出的贡献权重,它们取值的变化决定不同的系统,因此差分方程描述的系统也可以用权重矩阵或系数矩阵表示,b=[b0,b1,?…,?bM],a=[a0,?a1,?…,?aN],其中a0?1,当b和a为常数时系统称为线性常系数差分方程;有时将N或N与M的较大者称为差分方程的阶数。式(4.1)也可以看成是差分方程,此时有b0=h(0),b1=h(1),…,bM=h(M),a0=1,an=0,n=1,2,…,N。
情境任务及步骤一、线性卷积的编程实现?1.根据线性卷积原理编制自定义函数实现线性卷积要求函数名为个人姓名的首字母+学号后两位+conv;输入参数为hn,M,xn,n1,n2;输出参数为yn和ny,其中hn代表序列h(n),xn代表序列x(n),yn表示输出序列y(n),ny表示输出序列yn各样点值对应的标号n。编制子函数除注意使用关键词function外,非常重要的是要编制成单独的m文件。2.对编制程序进行初检取h(n)=R4(n),x(n)=R4(n)进行函数验证。建议编制单独的m文件,在m文件中调用自己编制的程序,而不是在命令窗口中执行。程序调试中注意断点设置、单步运行、进入函数内部、中间变量值观察等功能的使用。3.对编制程序进行再检在命令窗口调用自己编制的卷积计算程序进行验证,输入序列h(n)=R4(n),x(n)=R4(n-5)计算结果与手动计算结果进行对比,并画图显示计算结果,要求图中对横坐标进行标注。
情境任务及步骤二、卷积运算竟是滤波1.产生纯净信号生成信号x(t)=sin(2??200?t),时间长度取5s,采样率Fs=8000Hz,并听其音观其形。2.生成噪声调用函数wgn生成长度与x(t)相同的?10dBW的高斯白噪声信号,记为noise,并听其音观其形。3.引狼入室用噪声信号noise对x(t)进行干扰,得到noisyx=noise+x(t),并听其音观