(实验六 随机信号功率谱分析)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验课程:数字信号处理实验开课时间:2020—2021 学年秋季学期
实验名称:随机信号功率谱分析实验时间: 2020年9月30日星期三
学院:物理与电子信息学院年级:大三班级:182 学号:1843202000234 姓名:武建璋
一、实验预习
实验目的要求深刻理解随机信号的特性,掌握随机信号功率谱估计的基本原理,灵活运用各种随机信号功率谱估计的基本方法。
实验
仪器
用具
装有Matlab的计算机一台
实验原理
功率谱估计是随机信号处理中的一个重要的研究和应用领域.功率谱估计基本上可以非参数估计的经典方法和参数估计的近代方法.典型功率谱估计是基于FFT 算法的非参数估计,对足够长的记录数据效果较好。
在工程实际中,经典功率谱估计法获得广泛应用的是修正期图发。
该方法采取数据加窗处理再求平均的办法。
通过求各段功率谱平均,最后得到功率谱计P(m),即:
式中:为窗口函数ω[k]的方差。
K表示有重叠的分数段。
由于采用分段加窗求功率谱平均,有效地减少了方差和偏差,提高了估计质量,使修正周期图法在经典法中得到普遍应用。
但在估计过程存在两个与实际不
符的假设,即
(1)利用有限的N个观察数据进行自相关估计,隐含着在已知N个数据之外的全部数据均为零的假设。
(2)假定数据是由N个观察数据以N为周期的周期性延拓。
同时在计算过程中采用加窗处理,使得估计的方差和功率泄露较大,频率分辨率较低,不适用于短系列的谱分析和对微弱信号的检测。
近代谱估计是建立在随机信号参数模型的基础上,通过信号参数模型或预测误差滤波器(一步预测器)参数的估计,实现功率谱估计。
由于既不需要加窗,又不需要对相关函数的估计进行如经典法那样的假设,从而减少公里泄露,提高了频谱分辨率。
常用的参数模型有自回归(AR)模型、滑动平均(MA)模型、自回归滑动平均(ARMA)模型。
其中AR模型是基本模型,求解AR模型的参数主要有L—D算法和Burg算法。
1.某随机信号由两余弦信号与噪声构成x(t)=cos(20*pi*t)+cos(40*pi*t)+s(t)式中:s(t)是均值为0、方差为1的高斯白噪声。
(1)生成信号x(t)=cos(20*pi*t)+cos(40*pi*t)+s(t),绘出其时域波形。
(2)试分别用周期图发、bartlett发和welch发分析该序列的功率频谱估计,并对上述各种的估计效果经行比较。
(3)选用不同的窗函数,利用修正周期图发估计信号的功率谱有何结论?
【解】
clc,clear,close all
Fs=1000;
t=0:1/Fs:1;
figure(1);
x(t)=cos(20*pi*t)+cos(40*pi*t)++randn(size(t));
plot(t,x);
xlabel('时域信号波形')
grid on
figure(2);subplot(2,1,1);
Pxx=abs(fft(x,1024)).*2/1001;
plot([0:1023]*Fs/1024,10*log10(Pxx));
axis([0,1023,-30,30]);
xlabel('周期图法功率谱')
grid on
二、实验内容
问题讨论1.在利用周期图法进行随机信号功率谱估计中,如何提高功率谱的估计精度?答:Matlab中Prierdogram()函数就是运用周期图法进行谱估计。
调用格式如下:[psdestx,Fxx] = periodogram(xn,rectwin(length(xn)),length(xn),Fs);
其中输入参数xn为待估计的离散信号,rectwin(length(xn))表示窗长为xn点的矩形窗(rectangle window),Fs表示采样频率。
输出参数Fxx表示频率,psdestx为对应Fxx频率的功率谱密度。
为了使周期图法得到的功率谱密度更为平滑,提出了许多改进的方法,Welch平均周期图法就是其中一种,在matlab中pwelch()函数就是使用该方法进行功率谱估计,pwelch()函数的调用格式如下:
pwelch(xn,hamming(256),128,1024,Fs)
输入参数xn为输入信号,hamming(256)为窗长为256的汉明窗,Fs为信号采样频率。
调用后可绘制得到信号功率谱密度图,如需要观察得到的功率谱密度数值,可以添加相应的输出参数,相应可以参阅matlab帮助文档。
2.L-D算法的基本思想是什么?有哪些主要计算步骤?
答:L-D算法的基本思想是计算出两字符序列的编辑距离,同时也能求出两序列的匹配序列,初始化算法分数矩阵H,使行i表示字符ai,列j表示字符bj;
计算矩阵中每一项的LD(i, j):
若ai = bj,则LD(i, j) = LD(i-1, j-1) 取左上角的值
若ai ≠ bj,则LD(i, j) = Min( LD(i-1, j-1), LD(i-1, j), LD(i, j-1) ) +1
回溯,从矩阵右下角开始:
若ai=bj,则回溯到左上角单元格;
若ai≠bj,回溯到左上角、上边、左边中值最小的单元格,若有相同最小值的单元格,优先级按照左上角、上边、左边的顺序。
根据回溯路径,写出匹配字符串:
若回溯到左上角单元格,将ai添加到匹配字串A‘,将bj添加到匹配字串B’;若回溯到上边单元格,将ai添加到匹配字串A’,将_添加到匹配字串B’;
若回溯到左边单元格,将_添加到匹配字串A’,将bj添加到匹配字串B’。
矩阵右下角的值即为俩序列的编辑距离,回溯结果为全部匹配序列。
3.Burg算法的基本思想是什么?有哪些主要计算步骤?为什么利用Burg算法估
计随机信号功率谱时,容易出现伪峰?
答:伯格(Brug)谱估计是一种AR谱估计方法,可调用matalb中pburg函数,其调用格式如下:
pburg(xn,5,1024,Fs)
输入参数xn为信号,Fs为采样频率。
调用后可绘制得到信号功率谱密度图,如需要观察得到的功率谱密度数值,可以添加相应的输出参数,相应可以参阅matlab帮助文档。
4.在利用AR模型进行随机信号功率谱估计中,如何提高功率谱估计的精度?答:现代AR谱估计中,模型的阶数选择是一个很重要的问题,选择合适的阶
数,可以有效的检查出有效信号的谱峰,如果模型阶数过低,则频率分辨率不够,可能会丢失有效信号谱峰,如果模型阶数过高,则可能出现假峰。