Advertisement

智能信息处理(1)

阅读量:

信号时域处理中,相干平均是一种通过重复测量信号并取平均以减少噪声的技术。其核心公式为:
\bar{y}(t) = \frac{1}{N} \sum{i=1}^{N} yi(t)
其中,y_i(t)为重复测量的信号,N为测量次数。通过此方法,噪声方差降低,信号功率增强。代码实现了这一过程,并生成了原始信号、噪声信号、叠加信号及其自相关和互相关函数的图形,展示了相干平均在提取信号中的作用。此外,相关技术讨论了自相关和互相关函数,用于判断信号是否存在噪声中。通过互相关函数,可以判断噪声信号中是否包含预知信号成分。

信号时域处理包括的主要内容

相干平均算法

相干平均主要用作能重复出现的信号源提取。当待检测的医学信号与噪声重叠存在时,若信号能够重复出现,而噪声为随机信号,通过叠加法可有效提升信噪比,从而实现有用信号的提取。

效果估计:

y_i=s+n_i

其中

y_i

为含有噪声的待检测信号,

s

为重复出现的有用信号,

n_i

为随机噪声。经过N次叠加求平均,则:
ar{y}=rac{1}{N} um_{i=1}^{N} y_{i}=rac{1}{N} um_{i=1}^{N}eft=s+rac{1}{N} um_{i=1}^{N} n_{i}.

若信号

s

的功率为P,噪声

n_i

的方差为

elta ^2

,那么对每一个

y_i

,其功率比为

P/elta^2

.经N次平均后,噪声的方差变为

elta^2/N

,所以平均后信号的功率比为

Ndot P /elta^2

,提高了N倍。

其matlab代码如下:

复制代码
 clc

    
 clear all
    
 t=1:1024;
    
 phi=2.15;
    
 N=500;%Number of signals
    
 omeag=(2*pi)*0.0050;
    
 x=sin(omeag*t+phi);%initial signal
    
 for i=1:N
    
     y(i,:)=x+3*randn(1,length(t));
    
     noise(i,:) =  3*randn(1,length(t)); %signals with random noises
    
 end
    
  
    
 figure(1)
    
 subplot(1,3,1)
    
 plot(x)
    
 xlim([0 1024])
    
 title('原始信号')
    
 subplot(1,3,2)
    
 plot(t,noise(1,:)); xlim([0 1024]); title ('噪声信号')
    
 subplot(1,3,3)
    
  plot(t,y(1,:),'b'); xlim([0 1024]); 
    
 title('被淹没在噪声中的信号')
    
 MeanY=mean(y);%Mean of the random signals
    
 figure(2)
    
 subplot(1,2,1); 
    
 plot(mean(noise)); 
    
 xlim([0 1024]), title ('平均噪声信号') 
    
 subplot(1,2,2); 
    
 plot(t,MeanY, 'r', t, x, 'k'); 
    
 xlim([0 1024]); 
    
 legend('噪声平均后混合信号', '原始信号')
    
 title('相干平均处理后的信号')

其结果如图一和图二所示

图一. 原始信号图

图二. 相干算法示意图

相干技术

概念:相关是一种数学运算,这里的线性相关与医学统计中的线性相关存在差异。这里重点讨论两信号之间的同步性、相似性、同相性,以及它们的变化规律是否呈现线性关系或接近线性关系的程度。同时,这里需要明确相关函数相关系数这两个相互关联但又有区别的概念。

该方法主要针对确定性信号 ,通过相关分析,可以将该方法视为滤波和分类识别手段,用于判断信号的同源性和波形相似性。对上述分析结果具有重要的指导意义。

y=s+ta

随机性存在的信号,不仅用于识别或检测周期性成分的存在,还可以被视为滤波器和分类识别工具。

设两个信号

x

y

命名为它们之间的相互关联性函数。

r_{xy}

为:

r_{xy}=um_{n=-nfty}^{nfty}xy,

m取值为任意整数。

它表示

x

不动,将

y

在时间轴上,时间点会随着参数m的正负值而发生移动,具体表现为向左或向右移动m个时间单位。当m为正数时,时间点向左移动;当m为负数时,时间点向右移动。移动后,新的时间点分别对应于原时间轴上的相应位置。

x

逐点对应相乘后求和,得到该m点时刻的相关函数值

r_{xy}

。以m为横轴,

r_{xy}

为纵轴可以画出相关函数曲线,该曲线反映了

x

y

的相似程度。

注意

r_{xy}

r_{yx}

是完全不同的:

r_{yx}=um_{n=-nfty}^{nfty}yx,

令k=m+n, 则n=k-m,得:

r_{yx}=um_{n=-nfty}{\infty}y(k-m)x(k)=\sum_{n=-\infty}{nfty}xy=r_{xy},
r_{xy}=um_{n=-nfty}^{nfty}xy,

任意整数m,上式所表示的运算,是两个数字序列的对应项相乘后相加的运算。计算一次后,序列。

y

左移一位。式中m表示位移量,每取一个m得一个

r_{xy}

值,如

r_{xy}

r_{xy}

,...,

r_{xy}

经过左移和右移操作,总共有2N-1个值生成。这些2N-1个值即构成了互相关序列,也称为互相关函数。当r值大于0时,表示存在同相成分;当r值小于0时,表示存在反相成分。当r值等于0时,表示两序列正交或相互独立。

相关运算的简洁表示为:

r_{xy}=x dot y

,式中 “·”表示相关算符(correlation operator)。

类似的,我们定义一个信号

x

的自相关函数为:

r_{xx}=um_{n=-nfty}^{nfty}xx,

其中,

r_{xx}

反映了信号

x

自身的能量。

r_{xx}

是偶函数,

r_{xx}

自相关函数曲线能够体现信号的周期特性及其噪声水平。该曲线可被视为该序列的最大值的体现。

相关技术应用的涵盖领域广泛,例如说在处理含有噪声的记录时,我们可以借助相关判断来识别是否存在我们期望的信号。假设我们记录到的信号为:

y=s+ta

. 其中

s

为信号,

ta

白噪声(其频谱为非零常数的噪声)表示为,目前无法确定当前所记录的

y

中是否存在

s

,但我们根据以前的工作已知道关于

s

的先验知识,因此我们可以做

y

s

的互相关:

r_{ys}=r_{ss}+r_{ta s}

. 通常我们认为信号与白噪声是不相关的,因此

r_{ta s}

等于零,于是

r_{ys}=r_{ss}

。因此我们可以根据互相关函数

r_{ys}

和自相关函数

r_{ss}

是否相等来判断在

y

中是否含有信号

s

相关技术的基础应用领域广泛,其中自相关与互相关具有显著的区别。自相关与互相关分别采用自相关函数和互相关函数来研究两个信号的一致性程度。例如,可以用于测定两信号之间的时滞或在噪声中提取信号。当两个信号完全不同时,互相关函数趋近于零;当两个信号具有相同的波形时,在提前或滞后方向上会出现峰值。

示例:正弦波函数自相关

复制代码
 Plot the autocorrelation sequence of a sinewave with

    
 frequency 1 Hz, sampling frequency of 200 Hz.
    
  
    
 N=1024; % Number of samples
    
 f1=1; % Frequency of the sinewave
    
 FS=200; % Sampling Frequency
    
 n=0:N-1; % Sample index numbers
    
 x=sin(2*pi*f1*n/FS); % Generate the signal, x(n)
    
 t=[1:N]*(1/FS); % Prepare a time axis 
    
 subplot(2,1,1); % Prepare the figure; plot(t,x); % Plot x(n)
    
 title('Sinwave of frequency 1Hz [FS=200Hz]');
    
 xlabel('Time, [s]');ylabel('Amplitude');grid;
    
 Rxx=xcorr(x); % Estimate its autocorrelation
    
 subplot(2,1,2); % Prepare the figure; plot(Rxx); grid;
    
 title('Autocorrelation function of the sinewave');
    
 xlable('lags'); ylabel('Autocorrelation');

图三. 自相关分析结果

因此,我们以带有噪声的信号自相干为例,有:

复制代码
 %Exam 自相关函数

    
 clear all; clc
    
 f0=0.1;
    
 t=1:1/f0:1024;
    
 N=500;%Number of signals
    
 f=0.003; phi=0;
    
 x0=sin(2*pi*f*t+phi);%initial signal
    
 y0=randn(1,length(t));
    
 y=x0+y0;%signals with random noises
    
 figure(1)
    
 subplot(3,2,1)
    
 plot(t,x0)
    
 title('原始信号x_0')
    
 subplot(3,2,3)
    
 plot(t,y0)
    
 title('噪声信号y_0')
    
 subplot(3,2,5)
    
 plot(t,y)
    
 title('原始信号+噪声信号')
    
 T=(1:2*length(t)-1)/(f0);
    
 Xx0=xcorr(x0,'unbias');
    
 subplot(3,2,2)
    
 plot(T,Xx0)
    
 title('原始信号自相关')
    
 Xy0y0=xcorr(y0,y0,'unbias');
    
 subplot(3,2,4)
    
 plot(T,Xy0y0)
    
 title('噪声信号自相关')
    
 Xyy=xcorr(y,y,'unbias');
    
 subplot(3,2,6)
    
 plot(T,Xyy)
    
 title('含噪声的信号自相关')

图四. 带有噪声的信号自相干示意图

以下是通过自相干和互相干进行成分分析的实例。

复制代码
 %Exam4_2_2 自相、互相关关函数

    
 clc
    
 clear all
    
 t=1:1024;
    
 phi=2.15;
    
 N=500;%Number of signals
    
 omeag=(2*pi)*0.0050;
    
 x0=sin(omeag*t+phi);%initial signal
    
 y0=5*randn(1,length(t));
    
 y=x0+y0;%signals with random noises
    
 figure(1)
    
 subplot(1,2,1)
    
 plot(x0)
    
 title('原始信号x_0')
    
 subplot(1,2,2)
    
 plot(y0,'b')
    
 title('噪声信号y_0')
    
 Xx0=xcorr(x0,'unbias');%原始信号自相关
    
 Xx0y0=xcorr(x0,y0,'unbias');%与噪声信号的互相关
    
 Xx0y=xcorr(x0,y,'unbias');%原始信号与带有噪声的信号互相关
    
 figure(2)
    
 subplot(1,2,1)
    
 plot(y)
    
 title('被淹没在噪声中的信号y—原始信号x_0+噪声信号y_0')
    
 subplot(1,2,2)
    
 plot(1:length(Xx0),Xx0,'.b',1:length(Xx0y),Xx0y,'r',
    
 1:length(Xx0y0),Xx0y0,'k')
    
 title('相关技术分析处理结果')
    
 text(1030,Xx0(1030),'\leftarrow Xx0','color','b',...
    
      'HorizontalAlignment','left')
    
 text(1300,Xx0y(1300),'\leftarrow x0y','color','r',...
    
      'HorizontalAlignment','left')
    
  text(800,Xx0y0(800),'\leftarrow x0y0','color','k',...
    
      'HorizontalAlignment','left')

图五. 自相干和互相干分析结果

由图可知:(1)带噪声的信号与原始信号的互相关函数x0y与原始信号的自相关函数Xx0具有相似性,可以推断,噪声信号中包含预知信号成分x0;(2)噪声信号y0与原始信号x0的互相关函数x0y0与原始信号的自相关函数Xx0存在显著差异,可以推断,噪声信号y0中不含预知信号成分x0。

全部评论 (0)

还没有任何评论哟~