




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学 号: 课 程 设 计题 目确定信号的盲分离学 院信息工程学院专 业通信工程班 级通信1405姓 名指导教师2017年7月5日信息处理课群综合训练与设计任务书学生姓名: 专业班级: 通信1405班 指导教师: 工作单位: 信息工程学院 题 目: 确定信号的盲分离 初始条件:Matlab软件、信号与系统、通信处理等要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)设计任务根据盲信号分离原理,用matlab生成两个以上确定信号,选择合适的混合矩阵生成若干混合图像。选取合适的盲信号分离算法(如独立成分分析ICA等)进行训练学习,求出分离矩阵和分离后的信号。设计要求(1)用matlab做出采样之后信号的时域和频域波形图(2)选择合适的混合矩阵,得到混合信号,并做出其时域波形和频谱图(3)采用混合信号进行训练学习,求出分离矩阵,编写出相应的确matlab代码。(4)用求出的分离矩阵从混合信号中分离出原信号,并画出各分离信号的时域波形和频谱图。(5)对结果进行对比分析。参考书:1 刘泉. 信号与系统. 高等教育出版社. 2006年2 刘泉. 数字信号处理. 电子工业出版社. 2008年3 Edward W. Kamen, Bonnie S.Heck . 信号与系统基础应用Web 和MATLAB(第二版). 科学出版社. 2002年时间安排:1、理论讲解,老师布置课程设计题目,学生根据选题开始查找资料;2、课程设计时间为2周。 (1)理解相关技术原理,确定技术方案, 时间2天; (2)选择仿真工具,进行仿真设计与分析,时间6天; (3)总结结果,完成课程设计报告,时间2天。指导教师签名: 2017年 6月20日系主任(或责任教师)签名: 年 月 日目 录摘要IAbstractII1 绪论12 确定信号盲分离原理22.1 盲分离原理22.1.1 盲分离的数学模型22.1.2 盲分离的目标准则22.2 独立分量分析(ICA)32.2.1 ICA的线性模型32.2.2 ICA的基本算法43 确定信号盲分离方案设计73.1 盲信号处理原理框图73.1.1 确定信号的选择73.1.2 盲信号分离的分类83.2 程序流程设计8 3.2.1 仿真流程83.2.2 运用fastICA算法解混93.2.3 运用FFT求频谱104 确定信号盲分离的方案实现与仿真134.1 信号混合134.2 盲信号分离144.3 结果分析175 总结22参考文献24附录25武汉理工大学信息处理课群综合训练与设计报告摘要盲源分离(BSS)是一种多维信号处理方法,它指在未知源信号以及混合模型也未知的情况下,仅从观测信号中恢复出源信号各个独立分量的过程。本次课程设计旨在使学生加强对信号处理的理解,学会查寻资料方案比较,以及设计计算等环节,培养学生综合运用所学知识分析和解决工程技术问题的能力。本文从盲源分离的理论出发,研究了确定信号盲分离的数学模型以及基本方法,引出了独立分量分析(ICA),并对其的概念以及相关的知识进行了研究。最后,运用FastICA对三路信号进行盲分离的MATLAB仿真并求出了混合矩阵和分解矩阵,巧妙得通过频谱分析得出结论。关键词:盲源分离;独立分量分析;频谱分析Abstract Blind source separation (BSS) is a kind of multidimensional signal processing method, it refers to the unknown source signals, and the hybrid model also unknown circumstances, only from the observation signal to restore the source signal from the process of each independent component. This course is designed to make students strengthen the understanding of signal processing, learn to search data, scheme comparison, as well as the design and calculation, training students integrated use of knowledge in the ability to analyze and solve engineering problems.Starting from the theory of blind source separation, this paper studies the mathematical model and basic method of the blind source separation, raises the independent component analysis (ICA), and the concept and related knowledge is studied.Finally, using FastICA to simulate the blind separation of the three channel signals and the mixing matrix and decomposition matrix, the conclusion is obtained through the spectrum analysis.Key words: blind source separation; Independent component analysis; Spectrum analysis291 绪论盲源分离已经成为现代信号处理领域研究的热点问题,在通信、语音处理、图像处理等领域具有非常重要的理论意义和广泛的应用价值。目前,解决盲信号分离最常用的方法是独立分量分析(ICA,Independent Component Analysis),主要思路是按照统计独立的原则通过一系列的优化算法将混合的观测信号分离为若干个独立变量,然后把这些独立分量作为源信号的一种近似估计。所以,根据本次课程设计的任务和要求:设计任务:根据盲信号分离原理,用matlab生成两个以上确定信号,选择合适的混合矩阵生成若干混合图像。选取合适的盲信号分离算法(如独立成分分析ICA等)进行训练学习,求出分离矩阵和分离后的信号。设计要求:(1)用matlab做出采样之后信号的时域和频域波形图(2)选择合适的混合矩阵,得到混合信号,并做出其时域波形和频谱图(3)采用混合信号进行训练学习,求出分离矩阵,编写出相应的确matlab代码。(4)用求出的分离矩阵从混合信号中分离出原信号,并画出各分离信号的时域波形和频谱图。(5)对结果进行对比分析。 本文首先从理论出发,在熟悉了确定信号和盲分离的概念之后分析了盲分离的数学模型并对独立分量分析方法进行简述,最后将理论付诸实践,运用matlab编程分析软件实现确定信号的盲分离。 2 确定信号盲分离原理 2.1 盲分离原理2.1.1 盲分离的数学模型盲源分离原理可用如下图所示的数学模型来描述:图2.1 盲源分离原理图BBS的数学模型如图2.1所示,其中是n维未知源信号向量,A为未知混合系统, 是m维的观测信号矢量,它们均是源信号矢量的组合,并受到噪声矢量的干扰.盲源分离的目的就是在源信号s和混合系统A均未知的情况下,仅由观测数据向量x通过调整分离系统W,使得输出y是源信号s的估计,即: (式2-1)2.1.2 盲分离的目标准则根据源信号不同的特征,盲源分离的实现方法有很多,但它们的原理可以归纳为以下四种准则:(1)独立分量分析(Independent Component Analysis,ICA):当假设源信号各分量间彼此统计独立,且没有时间结构时,在某一分离准则下通过对神经网络权值的反馈调整,使得变换后信号的不同分量之间的相依性最小,也即输出达到尽可能的独立。这种方法对多于一个高斯分布的源信号不适用(因为高斯信号的线性叠加仍是高斯信号),这是近年来盲源分离的主要解决方法。(2)主分量分析(Principal Component Analysis,PCA):在尽可能保持原始变量更多信息的前提下,导出一组零均值随机变量相对少的不相关线性组合(主分量),并由此恢复出对源信号的估计。(3)二阶非平稳性:即采用非平稳性和二阶统计量。由于源信号随时间有不同的变化,所以可以考虑利用二阶非平稳性,应用简单的解相关技术实现盲源分离。与其他方法相比,它能够分离具有相同功率谱形状的有色高斯源,然而却不能分离具有相同非平稳特性的源信号。(4)运用信号的不同多样性,典型的是时域多样性、频域多样性或时频域多样性,更一般的,即联合空间-时间-频率多样性,如果源信号具有不同的时频域多样性,信号的时频域特征不完全重叠,那么可以通过屏蔽时频域的单个源信号或干扰信号,并从一个(或多个)传感器信号中提取源信号,然后再在时频域中合成,然而这些情况下,通常需要一些源信号的先验知识,所以这种分离只能是一种半盲分离。2.2 独立分量分析(ICA)2.2.1 ICA的线性模型图2.2 ICA的线性模型如图2.2,设x1,x2,xn为t的n维随机观测混合信号,由m个未知源信号(或称独立源)s1,s2,sm线性组合而成,忽略时间下标t,并假设每个混合信号xi都是一个随机变量,而不是时间信号。每个观测值xi(t),为该随机变量的一次抽样,不失一般性,设混合的随机变量和独立源都具有零均值,下面用矩阵形式来定义ICA模型。令X=(x1,x2,xn)T为n维随机向量,S=(s1,s2,sm)T是m维未知源信号,则ICA的线性模型可表示为:, i=1,2,m (式2-2)式中,si称为独立分量,A=a1,a2,am是一满秩的n*m矩阵,称为混合矩阵,ai是混合矩阵的基向量。由方程可知,各观测数据xi是由独立源si经过不同的aij线性加权得到的。独立源si是隐含变量,不能被直接测量,混合矩阵A也是未知矩阵,唯一可利用的信息只剩观测的随机矢量X。若没有任何限制条件,要仅由X估计出S和A,方程的解必为多解。而ICA正是在某些限制条件下,根据X的统计特性,给出方程唯一解,实现独立分量的提取。如上所述,ICA的一个重要基本假设就是对未知源信号独立性的要求,针对ICA具体模型,未知源信号间相互独立即要求: (式2-3)在ICA模型中,除了要求源信号相互独立外,还必须满足非高斯分布的特性。此外为简化模型,假设未知混合矩阵A是方阵,即m=n。那么ICA的目的就是寻找一个变换矩阵,对X进行线性变换,得n维输出向量 (式2-4)当允许存在比例不定性和顺序不定性的前提下,Y成为对独立分量si的一个估计。2.2.2 ICA的基本算法ICA是在某一判据意义下进行的寻优算法,所以问题实际包含两个部分:首先是采用什么判据作为一组信号是否接近互相独立的准则(即目标函数),其次是用怎样的算法来达到这个目标(即优化算法)。ICA算法=目标函数+优化算法实际独立分量分析的算法主要就是利用最优化的思想和技术。主要包括信息极大化、非高斯性极大化、极大似然估计和互信息极小化等。近几年出现了一种快速ICA算法(fast ICA),该算法是基于定点递推算法得到的,它对任何类型的数据都适用,同时它的存在使得运用ICA分析高维的数据成为可能。它又称固定点(Fixed-Point)算法,是由芬兰赫尔辛基大学Hyvärinen等人提出来的。是一种快速寻优迭代算法,与普通的神经网络算法不同的是这种算法采用了批处理的方式,即在每一步迭代中有大量的样本数据参与运算。但是从分布式并行处理的观点看该算法仍可称之为是一种神经网络算法。FastICA算法有基于四阶累积量、基于似然最大、基于负熵最大等形式。此外,该算法采用了定点迭代的优化算法,使得收敛更加快速、稳健。因为FastICA算法以负熵最大作为一个搜寻方向,因此先讨论一下负熵判决准则。由信息论理论可知:在所有等方差的随机变量中,高斯变量的熵最大,因而我们可以利用熵来度量非高斯性,常用熵的修正形式,即负熵。根据中心极限定理,若一随机变量X由许多相互独立的随机变量之和组成,只要具有有限的均值和方差,则不论其为何种分布,随机变量X较更接近高斯分布。换言之,较的非高斯性更强。因此,在分离过程中,可通过对分离结果的非高斯性度量来表示分离结果间的相互独立性,当非高斯性度量达到最大时,则表明已完成对各独立分量的分离。负熵的定义: (式2-5)式2-5中,是一与具有相同方差的高斯随机变量,为随机变量的微分熵 (式2-6) 根据信息理论,在具有相同方差的随机变量中,高斯分布的随机变量具有最大的微分熵。当Y具有高斯分布时,;Y的非高斯性越强,其微分熵越小,值越大,所以可以作为随机变量Y非高斯性的测度。由于计算微分熵需要知道Y的概率密度分布函数,这显然不切实际,于是采用如下近似公式: (式2-7)其中,为均值运算;为非线性函数,可取,或或等非线性函数,这里,1a12,通常我们取a1=1。快速ICA学习规则是找一个方向以便具有最大的非高斯性。这里,非高斯性用负熵的近似值来度量,的方差约束为1,对于白化数据而言,这等于约束的范数为1。FastICA算法的推导如下。首先,的负熵的最大近似值能通过对进行优化来获得。根据Kuhn-Tucker条件,在的约束下,的最优值能在满足下式的点上获得。 (式2-8)这里,是一个恒定值, ,是优化后的W值。下面我们利用牛顿迭代法解方程,可得的雅可比矩阵如下: (式2-9)由于数据被球化,,所以 (式2-10)因而雅可比矩阵变成了对角阵,并且能比较容易地求逆。因而可以得到下面的近似牛顿迭代公式: (式2-11)这里,是的新值,规格化能提高解的稳定性。简化后就可以得到FastICA算法的迭代公式: (式2-12) 3 确定信号盲分离方案设计 3.1 盲信号处理原理框图噪声分量多路信号混合炬阵分离矩阵分离得到的信号图3.1 盲信号处理原理框图3.1.1 确定信号的选择确定信号是指其取值在任何时间都是确定的和可预知的信号,通常可以用数学公式表示它在任何时间的取值。确定信号的类型有周期信号和非周期信号,能量信号和功率信号。常见的确定信号有:1 单位冲激函数s(t)=(t)2 单位阶跃函数 1 t0 s(t)=u(t)= 0 t03 常数s(t)=14 单边指数函数s(t)=u(t)5 三角脉冲 E(1+) -t0 s(t)= E(1-) 0t 0 其他在本次课程设计中,为了使选取的输入信号更具代表性和对比性,并且方便观察与分析,拟采用正弦波形I1=2*sin(0.02*pi*n)、方波I2=2*square(100*t1,50)和由系统产生的随机波形I3= rand(1,N)作为输入信号。 3.1.2 盲信号分离的分类源信号经过传输通道的混合方式以后其处理方法可分为线性瞬时混合信号盲处理、线性卷积混合信号盲处理和非线性混合信号盲处理三类。根据通道传输特性中是否含有噪声、噪声特性(白噪声、有色噪声等)、噪声混合形式可分为有噪声、无噪声盲处理,含加性噪声和乘性噪声混合信号盲处理等。按源信号和观测信号数目的不同可以将混合方式分为欠定、适定和超定情况;按源信号特性的不同分为:平稳、非平稳、超高斯、亚高斯、超高斯和亚高斯混合分离等。 3.2 程序流程设计 3.2.1 仿真流程根据3.1.1节所选择的三个确定信号,首先将三个输入波形输出显示,然后由快速傅里叶变换(FFT)求得每一个输入信号的频谱并输出显示。接下来,为了方便后续的解混,在取得一个作为信号混合权矩阵的随机矩阵之前需要将这三个输入信号组成矩阵,然后将全矩阵与组合矩阵相乘得到三个信号的混合信号矩阵,输出重新排列后的混合矩阵。显然,前面这两个步骤都是在做前期工作,最主要的程序部分便是接下来的预处理和fastICA算法(将会在3.2.2节具体讲解)程序,由此可得解混后的信号和频谱。根据以上所介绍的Matlab仿真设计思路,很容易给出程序设计流程图,如图3.2所示。产生混合矩阵将混合矩阵重新排列并输出数据预处理运用fastICA算法解混输出分解信号及频谱结束开始显示3个输入波形和频谱图3.2 程序设计流程图3.2.2 运用fastICA算法解混图3.3 fastICA算法流程图如图3.3所示,一般情况下,所获得的数据都具有相关性,所以通常都要求对数据进行初步的白化或球化处理,因为白化处理可去除各观测信号之间的相关性,从而简化了后续独立分量的提取过程,而且,通常情况下,数据进行白化处理与不对数据进行白化处理相比,算法的收敛性较好。若一零均值的随机向量满足,其中:为单位矩阵,我们称这个向量为白化向量。白化的本质在于去相关,这同主分量分析的目标是一样的。以下是对数据进行白化处理的部分程序设计:MixedS_cov=cov(MixedS); E,D=eig(MixedS_cov); Q=inv(sqrt(D)*(E); MixedS_white=Q*MixedS; IsI=cov(MixedS_white); 其中,MixedS为三个信号的混合信号矩阵,cov为求协方差的函数,E,D=eig(MixedS_cov)是对矩阵的协方差函数进行特征值分解,Q为白化矩阵,经过上述过程,所得到的IsI应为单位阵。实践中,FastICA算法中用的期望必须用它们的估计值代替。当然最好的估计是相应的样本平均。理想情况下,所有的有效数据都应该参与计算,但这会降低计算速度。所以通常用一部分样本的平均来估计,样本数目的多少对最后估计的精确度有很大影响。迭代中的样本点应该分别选取,假如收敛不理想的话,可以增加样本的数量。这里,我们暂且将迭代次数定为100,在后续的程序运行及调试中,根据输出结果不断调整maxIterationsNum,使得收敛性更好,结果更加精确。3.2.3 运用FFT求频谱FFT,即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。FFT算法可分为按时间抽取算法和按频率抽取算法,先简要介绍FFT的基本原理。从DFT运算开始,说明FFT的基本原理。X(k)= ,k=0,.,N-1 (式3-1)x(n)= ,n=0,.,N-1 (式3-2)由这种方法计算DFT对于X(k)的每个K值,需要进行4N次实数相乘和(4N-2)次相加,对于N个k值,共需4N*N次实数相乘和(4N-2)*N次实数相加。改进DFT算法,减小它的运算量,利用DFT中的周期性和对称性,使整个DFT的计算变成一系列迭代运算,可大幅度提高运算过程和运算量,这就是FFT的基本思想。FFT对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。设x(n)为N项的复数序列,由DFT变换,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N项复数序列的X(m),即N点DFT变换大约就需要N2次运算。当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT中,利用的周期性和对称性,把一个N项序列(设N=2k,k为正整数)分为两个N/2项的子序列,每个N/2点DFT变换需要(N/2)2次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换。这样变换以后,总的运算次数就变成N+2*(N/2)2=N+(N2)/2。继续上面的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要Nlog2N次的运算,N在1024点时,运算量仅有10240次,是先前的直接算法的1%,点数越多,运算量的节约就越大,这就是FFT的优越性。根据以上介绍,我们给出按时间抽取的8点FFT的运算蝶形图以便更好的理解,如图3.4所示。图3.4 8点FFT运算蝶形图在Matlab中,运用其自带的fft函数以及幅频和相频整合函数abs便可以很容易得求得三个输入信号、三个混合信号以及三个解混信号各自的频谱图,再使用“axis(0 300 0 200);”语句对频谱图的横、纵坐标进行设置。 4 确定信号盲分离的方案实现与仿真4.1 信号混合根据本文第三部分方案设计中确定的三个源信号进行程序设计,得出三个原始信号I1,I2和I3分别为:N=200;n=1:N;%N为采样点数I1=2*sin(0.02*pi*n); t1=1:N;I2=2*square(100*t1,50);I3= rand(1,N);图4.1是这3个源信号的时域波形,图中的横坐标表示样本点数,纵坐标表示信号的幅度水平。图4.1 源信号波形图由于Matlab自带快速离散傅里叶变换函数fft,那么产生这三个输入信号的频谱就变得很容易,程序也很简单,只要设置好参数,调用函数即可,图4.2为三个源信号的频谱。图4.2 源信号的频谱图确定源信号之后便要产生混合矩阵以产生混合信号,这个混合矩阵由随机函数rand产生的,由于是随机产生,因此每次运行程序所得到的混合矩阵都不同,但可以肯定的是该矩阵为一个33的方阵。产生权矩阵的代码为:Sweight=rand(size(S,1)图4.3是某一次运行结果截图。图4.3 混合矩阵截图由图4.3可以看出,所谓混合矩阵,则它首先是一个矩阵,那么要想用相乘的形式得到混合信号,则源信号也要是矩阵的形式,借用Matlab软件处理数学问题的便利性,只需要S=I1;I2;I3;这一行代码便可实现源信号的矩阵化。利用“MixedS=Sweight*S;”这一句代码实现信号的混合,混合后的信号经重新排列以后输出时域波形和频谱图。图4.4为三个混合信号的波形图。图4.4 混合信号波形图同样,参照输入信号利用FFT求频谱图的程序,对信号做200点FFT再取模,整合幅频和相频,得到3个混合信号的频谱图,如图4.5所示。图4.5 混合信号频谱图4.2 盲信号分离在产生混合信号的基础上便可以进入到确定信号盲分离的核心部分,即运用fastICA算法对混合信号进行训练学习,求出分离矩阵。以下是运用fsatICA算法对混合信号进行解混的部分程序:X=MixedS_white; % 以下算法将对X进行操作VariableNum,SampleNum=size(X);numofIC=VariableNum; % 在此应用中,独立元个数等于变量个数B=zeros(numofIC,VariableNum); % 初始化列向量w的寄存矩阵,B=b1 .for r=1:numofICi=1;maxIterationsNum=100; % 设置最大迭代次数 IterationsNum=0; b=rand(numofIC,1)-.5; % 随机设置b初值 b=b/norm(b); % 对b标准化 norm(b):向量元素平方和开根号 while i=maxIterationsNum+1 if i = maxIterationsNum % 循环结束处理 fprintf(n第%d分量在%d次迭代内并不收敛。, r,maxIterationsNum); break; end bOld=b; a2=1; u=1; t=X*b; g=t.*exp(-a2*t.2/2); dg=(1-a2*t.2).*exp(-a2*t.2/2); b=(1-u)*t*g*b+u*X*g)/SampleNum-mean(dg)*b; % 核心公式 b=b-B*B*b; % 对b正交化 b=b/norm(b); if abs(abs(b*bOld)-1)1e-9 % 如果收敛,则 B(:,r)=b; % 保存所得向量b break; end i=i+1; end B(:,r)=b % 保存所得向量bend同样,分离矩阵也是33的矩阵,并且由于每次混合矩阵的随机性,导致混合信号的随机性,从而造成每次运行程序得到的分离矩阵也不同,图4.6是某一次运行程序所得的分离矩阵,这里,我们着重观察它的形式。图4.6 分离矩阵截图解混矩阵,或者说是分离矩阵的重新排列以及输出时域波形图和频谱图的方法与混合信号的重排和输出程序异曲同工,除了一些参数改变之外,输出函数及横纵坐标的设置,以及程序书写流程等都是相同的。图4.7和图4.8分别为解混信号的时域波形图和频谱图。图4.7 解混信号的波形图图4.8 解混信号的频谱图 4.3 结果分析将输出结果整合,首先进行波形分析。图4.9 波形对比图由图4.9所示的输入波形、混合波形和解混波形的对比图,我们可以发现解混后的时域波形图和源输入波形图形状基本一致,但幅度有所变化,并且由输入信号3和ICA解混信号3的波形对比图还能够看出相位的变化。 但是我们不得不注意到,并非每一次运行程序之后都会输出如图4.9所示的图形,因为通过之前的分析可以发现:ICA的任务是根据观测记录X=AS,在矩阵A未知且对S除独立性外无其它先验知识的情况下,求解混合矩阵W,使得变换结果Y=WX中各分量尽可能相互独立,且逼近S。从数学角度说,该方程的解并不是唯一的,至少会存在以下一些问题:(1)分离结果的幅度存在不确定性由于在X=AS中,A和S均未知,如果将S中任一分量Si扩大a倍,只需将A中相应的混合系数乘以1/a,上式仍成立。在观测信号幅度不变的前提下,源信号的幅度存在不确定性。因此,在求解独立分量时,往往事先假设S具有单位方差,且各分量均值为零。(2)分离结果的排列存在不确定性由于A和S的未知,公式中独立分量的顺序很容易调换。在X=AS中插入一个置换矩阵P和它的逆矩阵P-1,得到X=APP-1S,将AP-1看成新的混合矩阵,则PS中的各分量便成为新的已调换顺序的独立源si。这表明ICA分离结果存在排序上的不确定性。但是幅度和排序的不确定性不会对ICA算法的分离过程产生影响。比如,再次运行程序所得结果如图4.10所示。图4.10 随机波形对比图 在图4.9中,我们只能很明显地观察到输入信号3的解混信号3相位变化,但在图4.10中,不难发现,不仅信号3的相位发生变化,信号1的相位同样不一致。再来分析各个阶段的频谱图,和波形图的分析一样,我们仍然采用对比的方式,图4.11为输入信号、混合信号和解混信号的频谱图。图4.11 频谱对比图从图4.11三个信号的输入信号频谱和解混信号频谱对比图依然可以发现,频谱的形状没有发生变化,解混后的三个信号幅度发生变化,至于原因,我们已在波形对比分析部分详细介绍。同样,再次运行程序得到的频谱对比图一般与前一次运行结果不一致,因为分离结果排列的不确定性,总共由(=6)种可能的结果,除图4.11所示的结果输出图以外还有5种可能的情况,例如图4.12所示的频谱对比图。图4.12 随机频谱对比图仔细观察便可看出,在图4.12所示这种情况下,信号2和信号3在分离过程中调换了顺序,但幅度和相位特性依然如我们之前分析的一样,也就是说分离导致的排列不确定性并不影响信号的质量。下面,运行两次程序得到所有的波形和频谱图,如图4.13和图4.14所示,方便我们对于不确定性的观测和分析。图4.13 第一次运行结果图图4.14 第二次运行结果图5 总结通过本次课程设计,我清楚得了解了盲信号分离的具体过程及方法,同时也了解到盲源分离技术是近二十年发展起来的一门新型科学,在各国科学家和研究人员的努力下获得了长足的发展,但是它毕竟是一个涉及面广并且仍处在发展前沿的课题,在理论上还远没有成熟,许多问题有待进一步研究和解决。另一方面,由于本次设计中实践部分全部由Matlab软件完成,我进一步了解了Matlab的基础应用知识,提高了编程能力,同时,对于运用其编程输出的时域波形图和频谱图的调整有了更加熟练的掌握。在确定信号盲分离的课程设计过程中,我也遇到到了一些问题,首先就是盲分离这一理论对于我来说是一个全新的概念,理解掌握这一概念需要一定的时间;其次,如何通过编程实现一种算法,也是一个比较困难的过程。虽然起初遇到了一系列的问题,但结果还是令人满意的,最终,在多方查找资料以及老师、同学的帮助下,我不仅理解了独立分量分析的核心算法,并且能够将其运用在Matlab程序中,得到了准确的输出结果。本次课程设计所涉及到的主要知识是数字信号处理和信息理论方面的,比如快速傅里叶变换(FFT),联合熵、联合矩阵的求解等。通过本次课程设计,我再次回归课本,将这些理论知识点重新温习了一遍,但是,仅有书本上的这些知识是不足以解决盲分离问题的,于是我又上网查找资料,在阅读了几篇相关的学术论文之后,我对ICA算法和fastICA算法有了基础性的了解,随后我又将这些知识与Matlab编程语言相结合,写出了运行代码,在多次调试、修改以后,我很欣慰自己的付出得到了回报。接下来,我将把本次课程设计的心得和体会简述如下:(1)系统思维。必须有系统的设计思维,把每一个细节都放到整个系统中考虑,考虑整个系统设计的可行性、完整性、稳定性和功能的实现,这样才不会局限在细节上,才能快速的完成性能优越的软件设计。(2)把握细节。系统也是由细节构成的,在把握整个系统思维的基础上把握每一个细节,因为每一个细节都有可能决定整个系统的性能。在写代码时,把每一个变量与过程考虑清楚才可能完成整个程序。(3)勇于尝试。系统即使经过了非常严格的论证也仍然可能存在问题,或许面对问题一时没有很好的解决方案,但是有一个或许可行的大胆的想法,不要犹豫,试一试吧。勇于尝试往往能够找到更好的解决方法。(4)保持自信。无论遇到什么困难,我都相信自己一定能够找到解决的方法,有的时候只要稍微再用一点力、使一点劲,结果就会不一样。经过了几次课程设计之后,我也在慢慢积累经验,从当初的无从下手,到现在的思路清晰,从当初的忐忑不安到现在的信心满满,无疑,这是一个成长的过程。课程设计教会我的永远不是某一个知识点,而是一种学习的态度和学习方法,例如,在fastICA程序设计部分我曾遇到瓶颈,如果这是我第一次做课程设计,我也许会心烦意乱,也许会就此放弃,但现在不一样了,在遇到问题时我首先想到的是不能放弃,然后开始去图书馆查阅资料,在网上搜索答案,虚心向同学请教。所以,课程设计是大学课程里除了毕业设计以外最能锻炼学生能力的实践课程,我也很开心在老师的指导下可以学会更多的知识,更多的技能。参考文献1 刘泉. 信号与系统. 高等教育出版社. 2006年.2 刘泉. 数字信号处理. 电子工业出版社. 2008年.3 杨福生. 独立分量分析的原理与应用. 清华大学出版社. 2006年.4 吕峰. 信息理论与编码. 人民邮电出版社. 2010年.5 赵艳. 盲源分离与盲信号提取问题研究D. 西安理工大学. 2004年.6 张贤达. 盲信号分离. 电子学报第12A期. 2001年.7 Edward W. Kamen, Bonnie S.Heck. 信号与系统基础应用Web 和MATLAB(第二版). 科学出版社. 2002年.附录源代码:clc;clear all;close all;% 读入输入图像,混合,并输出混合图像 %fs=100; %信号采样频率为25600f=fs*(0:99)/200;% 读入混合前的输入图片并显示clear all;clc;N=200;n=1:N;%N为采样点数I1=2*sin(0.02*pi*n); t1=1:N;I2=2*square(100*t1,50);I3= rand(1,N);subplot(6,3,1);plot(I1);title(输入信号1);set(gca,ylim,-4,4);subplot(6,3,4);a=I1; y1=fft(a, 200); %对信号做200点FFT变换y=abs(y1);%取模,整合幅频和相频plot(y,r-)title(输入信号1频谱);axis(0 300 0 200);subplot(6,3,2);plot(I2);title(输入信号2);set(gca,ylim,-4,4);subplot(6,3,5);b=I2; y1=fft(b, 200); %对信号做200点FFT变换y=abs(y1);%取模,整合幅频和相频plot(y,r-)title(输入信号2频谱);axis(0 300 0 200);subplot(6,3,3);plot(I3);title(输入信号3);set(gca,ylim,-4,4);subplot(6,3,6);c=I3; y1=fft(c, 200); %对信号做200点FFT变换y=abs(y1);%取模,整合幅频和相频plot(y,r-)title(输入信号3频谱);axis(0 300 0 200)% 将其组成矩阵S=I1;I2;I3; % 因此S_all是一个变量个数采样个数的矩阵Sweight=rand(size(S,1) % 取一随机矩阵,作为信号混合的权矩阵MixedS=Sweight*S; % 得到三个信号的混合信号矩阵% 将混合矩阵重新排列并输出subplot(6,3,7),plot(MixedS(1,:),title(混合信号1),set(gca,ylim,-4,4);subplot(6,3,10);d=MixedS(1,:); y1=fft(d, 200); %对信号做200点FFT变换y=abs(y1);%取模,整合幅频和相频plot(y,r-)title(混合信号1频谱);axis(0 300 0 200);subplot(6,3,8),plot(MixedS(2,:),title(混合信号2),set(gca,ylim,-4,4);subplot(6,3,11);e=MixedS(2,:); y1=fft(e, 200); %对信号做200点FFT变换y=abs(y1);%取模,整合幅频和相频plot(y,r-)title(混合信号2频谱);axis(0 300 0 200);subplot(6,3,9),plot(MixedS(3,:),title(混合信号3),set(gca,ylim,-4,4);subplot(6,3,12);f1=MixedS(3,:); y1=fft(f1, 200); %对信号做200点FFT变换y=abs(y1);%取模,整合幅频和相频plot(y,r-)title(混合信号3频谱);axis(0 300 0 200);MixedS_bak=MixedS; % 将混合后的数据备份,以便在恢复时直接调用% 标准化 %MixedS_mean=zeros(3,1);for i=1:3 MixedS_mean(i)=mean(MixedS(i,:);end % 计算MixedS的均值for i=1:3 for j=1:size(MixedS,2) MixedS(i,j)=MixedS(i,j)-Mixe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025合同范本合作经营权与管理责任分配协议模板
- 实数及运算轴对称及中心对称图形整式的运算几何初步求解统计与概率选择题-2025年中考数学冲刺抢分押题秘籍(广州专用)
- 无人物流车相关分析报告
- 2024年宁夏回族自治区水利厅下属事业单位真题
- 2024年毕节医学高等专科学校辅导员考试真题
- 铜铝单晶合金的制备及其在二氧化碳还原中的应用
- 2025年二手交易电商信用体系构建策略研究报告
- 药品自动化包装生产线升级行业深度调研及发展项目商业计划书
- 2025年二手电商信用评价体系与消费者满意度调查报告
- 高山温泉度假村企业制定与实施新质生产力项目商业计划书
- 2025年全国I卷英语 高考真题
- 装修木工清包合同协议书
- 纪法知识测试题及答案
- 理论联系实际谈一谈你对矛盾的普遍性和特殊性的辩证关系原理的认识参考答案一
- 2024-2025学年青岛版三年级下学期期末阶段综合检测数学试卷(含答案)
- 办公经营场地转租合同书6篇
- 停车场物业合同协议书
- 中华护理学会团体标准|2024 针刺伤预防与处理
- 中考英语熟词僻义生义用法梳理含练习
- 工业机器人智能控制技术在食品包装行业的2025年成果鉴定报告
- 无人机维护与保养知识试题及答案
评论
0/150
提交评论