matlab问题:产生一组(0,1)均匀分布的随机序列,画出其自相关函数和功率谱密度

matlab问题:产生一组(0,1)均匀分布的随机序列,画出其自相关函数和功率谱密度,第1张

clear all;

close all;

warning off all;

Fs = 1000;

nfft=1024;

idx = 0:round(nfft/2-1);

k = idxFs/nfft;

t = 0:1/Fs:1;

x1 = rand(1,1001);

[cor1 lag1] = xcorr(x1,'unbiased');

figure(1);

subplot(211),plot(lag1/Fs,cor1),title('(0,1)均匀分布自相关函数');

Xk1 = fft(cor1,nfft);

Px1 = abs(Xk1);

subplot(212),plot(k,10log10(Px1(idx+1))),title('(0,1)均匀分布功率密度');

将能量等式两边同时除以信号持续时间长度2T,得到该时间区间内的平均功率。

信号的功率谱密度当且仅当信号是广义的平稳过程的时候才存在。如果信号不是平稳过程,那么自相关函数一定是两个变量的函数,这样就不存在功率谱密度,但是可以使用类似的技术估计时变谱密度。f(t) 的谱密度和 f(t) 的自相关组成一个傅里叶变换对(对于功率谱密度和能量谱密度来说,使用着不同的自相关函数定义)。通常使用傅里叶变换技术估计谱密度,但是也可以使用如Welch法(Welch's method)和最大熵这样的技术。傅里叶分析的结果之一就是Parseval定理(Parseval's theorem),这个定理表明能量谱密度曲线下的面积等于信号幅度平方下的面积。 另外的一个结论是功率谱密度下总的功率与对应的总的平均信号功率相等,它是逐渐趋近于零的自相关函数。

bnet2 = mk_bnet(dag, node_sizes);

seed = 0;

rand('state', seed);

%随机初始化网络参数

bnet2CPD{C} = tabular_CPD(bnet2, C);

bnet2CPD{R} = tabular_CPD(bnet2, R);

bnet2CPD{S} = tabular_CPD(bnet2, S);

bnet2CPD{W} = tabular_CPD(bnet2, W);

bnet3 = learn_params(bnet2, samples);

CPT3 = cell(1,N);

for i=1:N

s=struct(bnet3CPD{i}); % violate object privacy

clear all;

close all;

warning off all;

Fs = 1000;

nfft=1024;

idx = 0:round(nfft/2-1);

k = idxFs/nfft;

t = 0:1/Fs:1;

x1 = rand(1,1001);

[cor1 lag1] = xcorr(x1,'unbiased');

figure(1);

subplot(211),plot(lag1/Fs,cor1),title('(0,1)均匀分布自相关函数');

Xk1 = fft(cor1,nfft);

Px1 = abs(Xk1);

subplot(212),plot(k,10log10(Px1(idx+1))),title('(0,1)均匀分布功率谱密度');

x2 = normrnd(2,5,1,1001);

[cor2 lag2] = xcorr(x2,'unbiased');

figure(2);

subplot(211),plot(lag2/Fs,cor2),title('(2,5)正态分布自相关函数');

Xk2 = fft(cor2,nfft);

Px2 = abs(Xk2);

subplot(212),plot(k,10log10(Px2(idx+1))),title('(2,5)正态分布功率谱密度');

x3 = cos(600pit)+cos(640pit)+randn(1,1001);

[cor3 lag3] = xcorr(x3,'unbiased');

figure(3);

subplot(211),plot(lag3/Fs,cor3),title('随机信号自相关函数');

Xk3 = fft(cor3,nfft);

Px3 = abs(Xk3);

subplot(212),plot(k,10log10(Px3(idx+1))),title('随机信号功率谱密度');

fai = 2pirand(1,1001);

x4 = 2cos(1000pit+fai);

[cor4 lag4] = xcorr(x4,'unbiased');

figure(4);

subplot(211),plot(lag4/Fs,cor4),title('随机相位信号自相关函数');

Xk4 = fft(cor4,nfft);

Px4 = abs(Xk4);

subplot(212),plot(k,10log10(Px4(idx+1))),title('随机相位信号功率谱密度');

[cory,lag]=xcorr(f,'unbiased');

plot(lag/fs,cory); %自相关函数(无偏差的),其中,f为原函数,cory为要求的自相关函数,lag为自相关函数的长度。fs为地函数的取样频率。

fc=fft(cory);

cm=abs(fc);

fl=(0:length(fc)-1)'fs/length(fc);

plot(fl,cm);%自相关函数的傅里叶变换:即功率谱密度。其中。cm是cory付里叶变换后的幅值。fl为fc的长度。

功率谱密度谱是一种概率统计方法,是对随机变量均方值的量度。一般用于随机振动分析,连续瞬态响应只能通过概率分布函数进行描述,即出现某水平响应所对应的概率。

功率谱密度是结构在随机动态载荷激励下响应的统计结果,是一条功率谱密度值—频率值的关系曲线,其中功率谱密度可以是位移功率谱密度、速度功率谱密度、加速度功率谱密度、力功率谱密度等形式。数学上,功率谱密度值—频率值的关系曲线下的面积就是方差,即响应标准偏差的平方值。

功率谱的概念是针对功率有限信号的(能量有限信号可用能量谱分析),所表现的是单位频带内信号功率随频率的变换情况。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11679223.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存