随机信号分析作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课程的主要内容
随机信号是客观上广泛存在的一类信号,它是持续时间无限长,能量无限大的功率信号,这类信号的分析与处理主要是研究它们在各种变化域中的统计规律,建立相应的数学模型,以便定性和定量的描述其特性,给出相关性能指标,并研究如何改善对象的动静态性能等。
随机信号分析内容涉及线性系统与信号、时间序列分析、数字信号处理、自适应滤波理论、快速算法、谱估计等方面的知识。
课程的主要内容包括随机信号的基本概念,随机过程的严格平稳性、广义平稳性、周期平稳性及随机过程的均值各态历经性,随机过程的功率谱分析,随机信号与噪声通过线性系统,高斯与窄高斯随机过程分析,估值理论和检测理论。
二、基本应用原理与研究思路
1、基本应用原理:
(1)预处理技术:
几种简单的预处理方法:AMV、抹零、野值剔除、趋势值剔除、非平稳分析、堆成分析
几种时域加窗技术:矩形窗、Hanning、Hamming、指数窗
滤波技术:带通滤波、自适应滤波
(2)频域分析:傅里叶变换、DFT和FFT、相关分析、功率谱分析
谱分析:经典方法、自回归、滑动平均、精细谱分析、极小方差、高级谱估计、高阶谱估计
(3)时域分析:预处理、系统描述、建模、特征提取
2、研究思路:
(1)了解信号来源和分析要求
成样本选择
(3)明确分析需求及条件(速度、精度),锁定主要目标
(4)确定分析方法(预处理、频域方法、时域方法)、制定数据处理步骤、研发相关软件
(5)数据处理,得到具体结果(数据、图标等)
(6)结果整理,综合分析
(7)密切结合具体对象及测试背景,给予处理结果合理的物理解释
(8)形成报告
三、心得与建议
1、学习心得:
通过本课程的学习,我掌握了随机信号的基本分析方法,要点和思路,加深了对基本理论和概念的理解。
我们研究确定性信号的频谱,可以获得许多信息。
对于随机信号处理的一个重要任务就是由有限长并且受到干扰的信号中得到信号的某些特征(如均值、方差、自相关函数及功率谱等),或恢复出没有被干扰的信号,基于随机信号的以上特点,信号特征的提取和信号自身的恢复都要通过“估计”的手段来获得,因此必然涉及估值理论的问题。
功率谱估计是一项重要内容,包括经典功率谱估计和现代功率谱估计。
经典谱估计包括周期图法、自相关法及一些改进方法。
现代谱估计针对经典谱估计分辨率低和方差性能不好提出,内容非常丰富。
由于随机信号分析是一门理论性很强的学科,要求理解和记忆的内容非常多,我需要继续花费时间,才能更好的理解相关的内容。
2、建议:
工程举都让我们受益匪浅。
老师百忙之中抽出时间来给我们上课,非常感谢老师。
我在学习动态数据建模时,由于之前没有这方面的基础,所以听的云里雾里,应该在课前看看书,至少做到心中有数。
如果老师可以在上课时演示一些MATLAB例程,相信会让我们可以有更好的理解。
四、算例及结果分析
1、产生白噪声信号X1,计算其自相关函数,如图1所示
图1(a) 白噪声信号x1
自相关函数反映了同一序列在不同时刻的取值之间的相关程度,维纳-辛钦定理表明,自相关函数和功率谱密度函数是一对傅里叶
变换对。
如图所示,白噪声信号的自相关函数为单位冲激函数,这表征了白噪声的随机性质。
2、产生受到白噪声干扰的正弦信号,计算其自相关函数和自协方差函数,如图2所示
图2(a) 正弦加白噪声信号x2
图2(b) x2的自相关函数
由图可知,含有周期成分和干扰噪声信号的自相关函数在t=0时具有最大值,并且在t较大时仍具有明显的周期性,其频率和周期成分的周期相同。
自协方差是某个信号与其自身经过一定时间平移之后的相似性,自协方差表示了在那个时延的相关性。
3、计算X1和X2的互相关函数和互协方差函数,如图3所示
图3(a) x1和x2的互相关函数
图3(b) x1和x2的互协方差函数
在信号处理过程中经常要研究两个信号的相似性,或者一个信号经过一段延迟后自身的相似性,以实现信号的检测、识别、提取等。
互相关函数和互协方差函数是用来表示两个信号之间相似性的
一个度量,互协方差通常用于通过与已知信号做比较从来寻找未知信号的特点。
仅从X2的波形很难分辨出是否含有余弦分量,但是从它和x1的互相关函数及自相关函数的波形中可以辨别出信号具有余弦分量。
4、对X2信号使用周期图法进行功率谱估计,如图4所示
图4 周期图法进行功率谱估计
随机信号功率谱估计就是根据随机信号的一个样本信号来对该随机信号的功率谱密度函数做出估计,对功率谱估计有很多方法,最简单的方法是周期图法。
通过对样本信号进行离散傅里叶变换得
性能不好,当数据长度太大时,谱曲线起伏加剧,当数据长度太小时,谱的分辨率又不好,对其改进的经典谱估计方法有Bartlett 法,Welch法等方法。
5、基于Welch法的功率谱估计
Welch法是一种使用最为广泛的经典功率谱估计方法,该方法在周期图法的基础上进行了两处改进:其一是将采样数据进行分段,并允许各段数据有重叠的部分;其二是每段数据加窗处理时,窗函数不局限于矩形窗,也可以使用汉明窗或者海明窗,从而改善频谱失真现象。
因为Welch法允许各段数据重叠,所以数据段数会增加,使得方差得到更大的改善,但是数据的交叠有效减小了每一段数据的不相关性,使方差的减小不会达到理论程度,采用合适的窗函数可以减小信号的频谱泄露,同时可以增加谱峰的宽度,从而提高分辨率。
对信号加矩形窗如图5所示
对信号加汉明窗如图6所示
图6 Welch法窗功率谱估计:汉明窗
使用不同的窗函数谱估计的质量是不同的,矩形窗的主瓣比较窄,分辨率比较好,但是方差较大,噪声水平比较高,而汉明窗的主瓣较宽,分辨率较低,但是方差较小,噪声水平比较低。
因此,在进行谱分析时选择何种窗函数,要视具体情况而定。
经典谱估计中,存在着频率分辨率低、方差性能不好的问题,当数据很短时,这个问题更为突出,如何选取最佳窗函数,提高频谱分辨率,如何在短数据情况下提高谱估计质量,还需要进一步研究。
五、附录MATLAB程序代码:
clear all;
N=10^3;
n=[0:N-1];
Fs=500;
t=n/Fs;
Mlag=100;
x1=randn(1,length(t));
subplot(211);
plot(t,x1);
xlabel('n'); ylabel('x1(n)');
title('白噪声信号x1');
grid on;
[r1,lags]=xcorr(x1,Mlag,'unbiased');
subplot(212);
plot(lags/Fs,r1);
xlabel('n'); ylabel('Rx1(n)');
title('x1的自相关函数');
grid on;
x2=sin(2*pi*10*t)+0.7*randn(1,length(t)); figure(2);
subplot(311);
plot(t,x2);
xlabel('n'); ylabel('x2(n)');
title(‘正弦加白噪声x2');
grid on;
[r2,lags]=xcorr(x2,Mlag,'unbiased');
%figure(4);
subplot(312);
plot(lags/Fs,r2);
xlabel('n'); ylabel('Rx2(n)');
title('x2的自相关函数');
grid on;
auto_cx=xcov(x2,Mlag,'biased');
subplot(313);
plot((-Mlag:Mlag),auto_cx);
title('x2的自协方差函数');
grid on;
[corrx1x2,lags]=xcorr(x1,x2,Mlag,'unbiased');
subplot(211);
plot(lags/Fs,corrx1x2);
title('x1和x2的互相关函数 ');
grid on;
cross_cxy=xcov(x1,x2,Mlag,'biased');
subplot(212);
plot((-Mlag:Mlag),cross_cxy);
title('x1和x2的互协方差函数');
grid on;
Fs1=1000;
nfft=256;
window=boxcar(length(x2));%¼Ó¾ØÐδ°
[Pxx,f]=periodogram(x2,window,nfft,Fs1);
figure(3);
plot(f,10*log10(Pxx));
title('周期图法功率谱估计');
grid on;
figure(4);
noverlap=20;
window1=hamming(100);
window2=boxcar(100);
range='half';
[Pxx2,f]=pwelch(x2,window2,noverlap,nfft,Fs1,range); [Pxx1,f]=pwelch(x2,window1,noverlap,nfft,Fs1,range); plot(f,10*log10(Pxx2));
title('welch法功率谱估计:矩形窗');
grid on;
figure(5);
plot(f,10*log10(Pxx1));
title(' welch法功率谱估计:汉明窗');
grid on;
order1=30;
order2=50;
subplot(412);
grid on;
pyulear(x2,order1,nfft,Fs);
grid on;
subplot(413);
pyulear(x2,order2,nfft,Fs);
grid on;
subplot(414);
pburg(x2,order1,nfft,Fs);。