西南交通大学信号处理期末作业Word文档格式.docx
- 文档编号:17496227
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:18
- 大小:601.42KB
西南交通大学信号处理期末作业Word文档格式.docx
《西南交通大学信号处理期末作业Word文档格式.docx》由会员分享,可在线阅读,更多相关《西南交通大学信号处理期末作业Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
因此,最大似然估计ML为上述函数的零点值。
则
N^^N^
Acos(ciML)sin(ciML)yisin(ciML)
i1i1
该函数为非线性方程,不容易求解,若忽略双倍频率2c,则可简化到如下式子:
N^
yisin(ci)0
i1根据三角公式分解得到如下式子:
^N^N
sinMLyicos(ci)cosMLyisin(ci)
i1i1由此,可以得到如下公式
N
^yisinci
tanMLNyicos(ci)
所以相位的最大似然估计如下:
^yisin(ci)
MLarctan(iN1)
yicos(ci)
3.离散时间的二阶AR过程由差分方程x(n)a1x(n1)a2x(n2)w(n)描述,式中w(n)
w2
是一零均值、方差为w2的白噪声。
证明x(n)的功率谱为
Px(f)1a12a222a1(1a2)cos(2f)2a2cos(4f)
证明:
由AR过程的功率谱公式知
其中
1a1ej2fa2ej4f(1a1ej2fa2ej4f)(1a1ej2fa2ej4f)
1a12a22a2(ej4fe4f)a1a2ej2fa1a2ej2fa1(ej2fej2f)
1a12a222a1(1a2)cos(2f)2a2cos(4f)
将其带入第一个公式可得:
4、信号的函数表达式为:
xtsin(2100t)1.5sin(2300t)Atsin(2200t)dntnt,其中,At为一随时间变化的随机过程,dnt为经过390-410Hz带通滤波器后的高斯白噪声,nt为高斯白噪声,采样频率为1kHz,采样时间为2.048s。
分别利用周期图谱、ARMA、Burg最大熵方法估计信号功率谱,其中ARMA方法需要讨论定阶的问题。
由题意知采样点数一共为:
1000×
2.048=2048个数据点。
At为一随时间变化的随机过程,由于随机过程有很多类型,如维纳过程、正态随机过程,本文采用了均值为0,
方差为1的正态随机过程来作为演示,来代替At,高斯白噪声采用强度为2的高斯白噪声代替nt,其带通滤波后为dnt。
其中滤波器采用的是契比雪夫数字滤波器。
可得到x(t)如下图所示:
1、周期图法matlab中的周期图功率谱法原理是通过计算采样信号的FFT,获得离散点的幅度,再根
据幅度与功率之间的关系,转换为离散点的功率,再通过坐标变换将离散点的功率图转换为连续功率谱密度。
Step1:
计算采样信号x(n)的DFT,使用FFT方法来计算。
如果此处将复频率处的幅度对称到物理实际频率,得到的就是单边谱,否则就是双边谱
Step2:
根据正余弦信号功率与幅度的关系以及直流功率与幅度的关系,将幅度转换为离
散功率谱。
Step3:
对横纵坐标进行转换,横坐标乘以频率分辨率转换为实际连续物理频率,纵坐标除以频率分辨率转换为功率谱密度。
调用MATLAB中自带的matlab中[Pxx,f]=periodogram(x,window,nfft,fs)函数可得计
算结果如下:
2、ARMA方法参数模型估计的思想是:
假定研究的过程X(n)是一个输入序列u(n)激励一个线性系统H(z)的输出。
有已知的X(n),或其自相关函数来估计H(z)的参数。
由H(z)的参数来估计X(n)的功率谱。
不论X(n)是确定性信号还是随机信号,u(n)与X(n)之间总有如下输入输出关系:
pq
x(n)akx(nk)bku(nk)
k1k0
x(n)h(k)u(nk)
pkqkk
其中A(z)1akzk,B(z)1bkzk,H(z)h(k)zk。
k1k1k0
u(n)是
为了保证H(z)是稳定的最小相位系统,A(z)和B(z)的零点都应该在单位圆内。
假定
一个方差为2的白噪声序列,由随机信号通过线性系统的理论可知,输出序列X(n)的功率
谱为:
ARMA阶数确定:
本题目采用AIC准则确定ARMA的阶数。
分别计算p、q从1到20阶数的计算出AIC(p,q),如下图所示,当横坐标大概为230左右时,AIC(p,q)取得最小,将此时的p,q作为带入到模型即可。
ARMA法谱估计结果:
步骤3计算前向预测滤波器系数
步骤4计算预测误差功率
步骤5计算滤波器输出
am(m)Km
gm(n)Kmfm1(n)gm1(n1)
步骤6令m←m+1,并重复步骤2至步骤5,直到预测误差功率Pm不再明显减小。
最后,再利用Levinson递推关系式估计AR参数,继而得到功率谱估计。
Burg最大熵法谱估计结果如下图:
5.附件中表sheet1为某地2008年4月28日凌晨12点至2008年5月4日凌晨12点的电力系统负荷数据,采样时间间隔为1小时,利用Kalman方法预测该地5月5日的电力系统负荷,并给出预测误差(5月5日的实际负荷数据如表sheet2)。
卡尔曼滤波是以最小均方误差作为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:
采用信号与噪声的状态空间模型,利用前一时刻地估计值和现在时刻的观测值来更新对状态变量的估计,求得出现时刻的估计值。
它适合于实时处理和计算机运算。
现设线性时变系统的离散状态防城和观测方程为:
X(k)=F(k,k-1)X(k-1)+T(k,k-1)U(k-1)Y(k)=H(k)·
X(k)+N(k)其中:
X(k)和Y(k)分别是k时刻的状态矢量和观测矢量,F(k,k-1)为状态转移矩阵,U(k)为k时刻动态噪声,T(k,k-1)为系统控制矩阵,H(k)为k时刻观测矩阵,N(k)为k时刻观测噪声。
卡尔曼滤波的算法流程为:
1、预估计
X?
(k)=F(k,k-1)·
X(k-1)
2、计算预估计协方差矩阵
C?
(k)=F(k,k-1)×
C(k)×
F(k,k-1)'
+T(k,k-1)×
Q(k)×
T(k,k-1)'
Q(k)=U(k)×
U(k)'
3、计算卡尔曼增益矩阵
K(k)=C?
(k)×
H(k)'
×
[H(k)×
C?
H(k)'
+R(k)]-1
R(k)=N(k)×
N(k)'
4、更新估计
X(k)=X?
(k)+K(k)×
[Y(k)-H(k)×
X?
(k)]
5、计算更新后估计协方差矩阵
C(k)=[I-K(k)×
H(k)]×
[I-K(k)×
H(k)]'
+K(k)×
R(k)×
K(k)'
X(k+1)=X(k)
C(k+1)=C(k)
6、重复以上步骤最终可以获得如下结果:
本题将表中的作为观测数据,图中横坐标为1表示2008.4.28日1时刻数据,2表示2008.4.28日2时刻的数据,一次类推,168表示2008.5.5日1时刻的数据。
从表中可以看出预测误
差的最大值为300。
预测误差的大小与代码中的R、Q值得设置有关。
Q越大预测误差越小,但是同时也表明系统内的噪声很大。
本题中取得Q、R值均为高斯分布的协方差。
代码见附
录。
6.设某变压器内部短路后,故障电流信号分解得到下式:
分别利用小波变换、短时傅里叶变换和维格纳威利分
式中,ωπ,τ,布分析故障电流信号的时频特性。
(1)小波变换:
连续小波变换的定义:
计算连续时间小波变换的4个步骤:
1、选取一个小波,然后将其和待分析信号从起点开始的一部分进行相乘积分。
2、计算相关系数c。
3、将小波向右移,重复1和2的步骤直到分析完整个信号。
4、将小波进行尺度伸缩后再重复1,2,3步骤,直至完成所有尺度的分析。
(2)短时傅里叶变换
短时傅里叶变换定义如下:
STFTf(u,)f(t),gu,(t)f(t)g(tu)eitdt
STFTf(u,)f(t)g(tu)eitdt21f?
()g?
()eiu()d
(3)维格纳威利分布变换维格纳威利分布定义如下:
WDx(t,)xt2x*t2e-jd
在MATLAB中没有维格纳威利分布变换的相关函数,需要安装一个MATLAB版本的时频分析工
具箱。
调用里面的函数即可。
小波变换和短时傅里叶变换MATLAB均自带了相关的函数。
程
序见附录。
代码运行结果结果如下:
其中,采样频率为1024Hz,相位14为独立的均匀分布U,;
n为一噪声信号,信噪比取为20dB。
分别采用三种现代信号处理方法进行谐波与间谐波频率提取与谱估计。
本题目采用的频率提取的三种方法为小波变换、短时傅里叶变换和维格纳威利分布。
采用周期图法、MUSIC法、Burg法进行谱估计。
确定出谐波的频率为50Hz和150Hz。
附录代码:
第四题:
clc;
clear;
fs=1000;
%采样频率
T=2.048;
%采样时间t=0:
1/fs:
T;
A=normrnd(0,1,1,length(t));
%方差为1,
均值为0的高斯分布
N=wgn(1,length(t),2);
%强度为2的高斯白噪声
Dn=bandp(N,390,410,200,450,0.1,30,fs)
figure
(1);
subplot(211);
plot(t,N);
title('
原始高斯白噪声'
);
subplot(212);
plot(t,Dn);
带通滤波后高斯白噪声'
Sig=sin(2*pi*100.*t)+1.5*sin(2*pi*300
.*t)+A.*sin(2*pi*200.*t)+Dn+N;
figure
(2);
plot(t,Sig);
原始输入信号'
axis([02.1-77]);
%%周期图谱[Pxx,f]=periodogram(Sig,[],length(t),
fs);
%周期图法figure(3);
plot(f,Pxx);
周期图法求功率谱'
xlabel('
f/Hz'
ylabel('
功率/db'
%%ARMA谱估计
z=iddata(Sig'
%将信号转化为matlab接受的格式
RecordAIC=[];
forp=1:
20%自回归对应PACF,给定滞后长度上限p和q
forq=1:
20%移动平均对应ACF
m=armax(z(1:
length(t)),[p,q]);
AIC=aic(m);
%armax(p,q)选择
对应FPE最小,AIC值最小模型
RecordAIC=[RecordAIC;
pqAIC];
end
end
fork=1:
size(RecordAIC,1)
if
RecordAIC(k,3)==min(RecordAIC(:
3))%选择AIC最小模型
pa_AIC=RecordAIC(k,1);
qa_AIC=RecordAIC(k,2);
break;
endmAIC=armax(z(1:
length(t)),[pa_AIC,qa_
AIC]);
[Pxx2,f2]=freqz(mAIC.c,mAIC.a,fs);
P2=(abs(Pxx2).*1).^2;
P2tol=10*log10(P2);
figure(4);
plot(f2/pi*fs/2,P2tol);
title('
ARMA法
(AIC准则)'
xlabel('
ylabel('
振
幅/dB'
plot(RecordAIC(:
3));
AIC(p,q)'
%%burg法计算
[Pxx,F]
pburg(Sig,60,length(t),fs);
%burg法figure(6);
plot(F,Pxx);
Burg法谱估计'
f/fs'
%X轴坐标名称
功率谱/dB'
%Y轴坐标名称
%%
function
y=bandp(x,f1,f3,fsl,fsh,rp,rs,Fs)
%带通滤波
%使用注意事项:
通带或阻带的截止频率与采样率的选取范围是不能超过采样率的一半
%即,f1,f3,fs1,fsh,的值小于Fs/2
%x:
需要带通滤波的序列
%f1:
通带左边界
%f3:
通带右边界
%fs1:
衰减截止左边界
%fsh:
衰变截止右边界
%rp:
边带区衰减DB数设置
%rs:
截止区衰减DB数设置
%FS:
序列x的采样频率
%f1=300;
f3=500;
%通带截止频率上下限
%fsl=200;
fsh=600;
%阻带截止频率上下限
%rp=0.1;
rs=30;
%通带边衰减DB值和阻带边衰减DB值
%Fs=2000;
%采样率
%
wp1=2*pi*f1/Fs;
wp3=2*pi*f3/Fs;
wsl=2*pi*fsl/Fs;
wsh=2*pi*fsh/Fs;
wp=[wp1wp3];
ws=[wslwsh];
%设计切比雪夫滤波器;
[n,wn]=cheb1ord(ws/pi,wp/pi,rp,rs);
[bz1,az1]=cheby1(n,rp,wp/pi);
%查看设计滤波器的曲线
[h,w]=freqz(bz1,az1,256,Fs);
h=20*log10(abs(h));
y=filter(bz1,az1,x);
第5题
%本题目需要提醒一点:
给的数据为观测数
据Z而不是X
clc;
clear;
x1=xlsread('
./负荷数据.xls'
'
sheet1'
x1=x1(:
2);
x2=xlsread('
sheet2'
x2=x2(:
x=[x1;
x2];
N1=length(x1);
N=length(x);
A=1;
B=0;
H=1;
w=normrnd(0,1000,1,N);
%这里随便取值v=normrnd(0,1000,1,N);
P
(1)=16;
%随便取值
Z=x;
X
(1)=24;
R=cov(v);
Q=cov(w);
fori=2:
tempx=A*X(i-1);
%+B*u(i);
TempP=A*P(i-1)*A'
+Q;
K(i)=TempP*H'
*1/(H*TempP*H'
+R);
X(i)=X(i-1)+K(i)*(Z(i)-tempx);
P(i)=(1-K(i)*H)*TempP;
t=1:
length(Z);
figure;
plot(t,Z,'
b'
t,X(t),'
r'
使用Kalman对电力系统负荷数据进行预测'
时间点数'
电力系统负荷'
axistight;
legend('
负荷真实值'
Kalman预测值'
subplot(2,1,1);
t=length(x1):
length(x);
plot(t,x(t),'
电力系统负荷'
负荷真实值'
set(gca,'
XTick'
length(x1):
2:
length(x
));
subplot(2,1,2);
error=Z-X'
;
plot(t,error(t));
预测值与真实值之误差'
length(x));
5月5日预测值与真实值误差'
第六题:
%%小波变换
closeall;
f=50;
%信号频率
oumiga=2*pi*f;
N_sample=2048;
%总采样点数
Fs=1000;
%采样频率t=0:
1/Fs:
1;
Tao=0.03;
%信号幅度
x=20*exp(-t/Tao)+20*sin(oumiga*t+pi/3)+12*sin(2*oumiga*t+pi/4)+10*sin(3*oumiga*t+pi/6)+6*sin(4*oumiga*t+pi/8)+5*sin(5*oumiga*t+pi/5);
%信号函数表达式figure;
plot(t,x);
原始信号'
时间t/s'
FontSize'
14);
幅值'
%原信号函数wavename='
cmor3-3'
totalscal=256;
Fc=centfrq(wavename);
%小波中心频率c=2*Fc*totalscal;
scals=c./(1:
totalscal);
f=scal2frq(scals,wavename,1/Fs);
%将尺度转换为频率coefs=cwt(x,scals,wavename);
%求连续
小波系数figure;
imagesc(t,f,abs(coefs));
colorbar;
频率f/Hz'
小波时频图'
16);
axis([010300]);
%%短时傅里叶变换[S,F,T,P]=spectrogram(x,256,250,256,Fs);
surf(T,F,10*log10(P),'
edgecolor'
non
e'
axistight;
view(0,90);
时间/s'
频率/Hz'
短时傅里叶变换结果'
%%Wigner-Villetime-frequencydistribution.
X=hilbert(x'
[tfr,t,f]=tfrwv(X);
contour(t/Fs,f*Fs,abs(tfr));
Wigner-Villetime-frequencydistribution'
axis([010300])
%%第七题:
%参数设置
Fs=1024;
%采样频率
n=0:
2.01;
%采样时间
N=leng
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南交通大学 信号 处理 期末 作业