基于神经网络的频谱分析设计
1.神经网络训练步骤
Step1. 以采样周期Ts =T/2N,对信号f ( t ) 采样, 获取2N + 1 个训练样本f ( k ) , k = 0, 1,...,N , 随机产生权值an 和bn, n = 1, 2,...,N . 给定任意小正实数Tol ,然后确定学习率eta = 0. 6 * 4/3*(N + 1)=0. 8/(N + 1), 令J = 0;
Step2. 由式( 6) 计算神经网络输出f nn( k ) ;
Step3. 由式( 7) 和( 8) 分别计算误差函数与性能指标e( k ) 和J ;
Step4. 由式( 9) 和式( 10) 进行权值调整;
Step5. 判断性能指标是否满足J < Tol?若满足, 结束训练; 否则令J = 0 返回Step2 重复上述训练过程.
2.频谱分析实例
设周期信号为
yd=240.*sin(s.*t)+0.1.*sin(2.*s.*t+10*pi/180)+12*sin(3.*s.*t+20*pi/18 0)+0.1.*sin(4.*s.*t+30*pi/180)+2.7.*sin(5.*s.*t+40*pi/180)+0.05.*sin( 6.*s.*t+50*pi/180)+2.1*sin(7.*s.*t+60*pi/180)+0.3.*sin(9.*s.*t+80*pi/ 180)+0.6.*sin(11.*s.*t+100*pi/180);
其中基波角频率为s=80*pi,M=40,是39个采样点:最低基频一个周波+2。
学习率为eta =0.0192,经过652次神经网络训练, 性能指标为: J = <1x652double>,tol=1.00e-19;a=<1x13double>,b=<1x13double>,幅频特性误差,如图2所示, 相频特性误差图,如图3所示。
3.程序
clear,close all,format long e
J=0;k=0;s1=0;s2=0;s3=0;
tol=1e-29;N=13;M=40;%39采样点:最低基频一个周波+2
fs=1510;eta=10/(N*M);a0=0;a=zeros(1,N);%权值初始值
b=zeros(1,N);t=0:1/fs:M/fs-1/fs;s=80*pi;%t=linspace(0,0.02,M);
yd=240.*sin(s.*t)+0.1.*sin(2.*s.*t+10*pi/180)+12*sin(3.*s.*t+20*pi/180)+0.1.*sin(4 .*s.*t+30*pi/180)+2.7.*sin(5.*s.*t+40*pi/180)+0.05.*sin(6.*s.*t+50*pi/180)+2.1*sin (7.*s.*t+60*pi/180)+0.3.*sin(9.*s.*t+80*pi/180)+0.6.*sin(11.*s.*t+100*pi/180); maxyd=max(abs(yd));yd=yd/240;
ydA=[240,0.1,12,0.1,2.7,0.05,2.1,0.3,0.6];
ydB=[360,10,20,30,40,50,60,80,100];
ydB1=[0,10,20,30,40,50,60,80,100];s1=2*50*pi;
ln=length(t);tic;%启动计时
for i=1:N
C(i,:)=cos(i.*s1.*t);%激励函数分布
S(i,:)=sin(i.*s1.*t);%激励函数分布
end
I=ones(1,ln);
for i=1:ln U(i)=i;end
for i=1:N P(i,:)=i*U;end
k=1;
for m=1:2000
s2(k)=0.5*s1/pi;y=a*C+b*S;e=yd-y;
J(k)=0.5*(norm(e))^2;a=a+eta*e*C';b=b+eta*e*S';
s1=s1+230/fs*e*(P'.*C'*b'-P'.*S'*a');
for i=1:N
C(i,:)=cos(i.*s1.*t);%激励函数分布S(i,:)=sin(i.*s1.*t);%激励函数分布
end
if J(k)<tol k=k-1,break; end
k=k+1;
end
time=toc,
for k=1:N-2
A(k)=240*((a(k))^2+b(k)^2)^0.5;%神经网络算法获得的谐波幅度B(k)=180.*atan(a(k)/b(k))/pi;%神经网络算法获得的谐波相角
if B(k)<0 B(k)=180+B(k);end
end
A(8)=[];A(9)=[];B(8)=[];B(9)=[];
f0=0.5*s1/pi,
xderrA=abs(A-ydA);xderrB=abs(B-ydB1);
plot(s2);figure, plot(J);figure,plot(xderrA);figure,plot(xderrB);
图1 性能指标变化图
图2 幅频特性误差图
图3 相频特性误差图。