现代信号处理大型作业题目+答案Word文件下载.docx

上传人:b****5 文档编号:17367237 上传时间:2022-12-01 格式:DOCX 页数:20 大小:240.76KB
下载 相关 举报
现代信号处理大型作业题目+答案Word文件下载.docx_第1页
第1页 / 共20页
现代信号处理大型作业题目+答案Word文件下载.docx_第2页
第2页 / 共20页
现代信号处理大型作业题目+答案Word文件下载.docx_第3页
第3页 / 共20页
现代信号处理大型作业题目+答案Word文件下载.docx_第4页
第4页 / 共20页
现代信号处理大型作业题目+答案Word文件下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

现代信号处理大型作业题目+答案Word文件下载.docx

《现代信号处理大型作业题目+答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《现代信号处理大型作业题目+答案Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。

现代信号处理大型作业题目+答案Word文件下载.docx

一、请用多层感知器(MLP)神经网络误差反向传播(BP)算法实现异或问题(输入为

其中,非线性函数采用S型Logistic函数。

1、原理:

反向传播(BP)算法:

(1)、多层感知器的中间隐层不直接与外界连接,其误差无法估计。

(2)、反向传播算法:

从后向前(反向)逐层“传播”输出层的误差,以间接算出隐层误差。

分两个阶段:

正向过程:

从输入层经隐层逐层正向计算各单元的输出

反向过程:

由输出层误差逐层反向计算隐层各单元的误差,并用此误差修正前层的权值。

2、流程图:

3、程序:

%使用了3层结构,第二层隐藏层4个单元。

2,3层都使用Logisitic函数。

%训练xor数据。

functionmlp()

f=fopen('

XOR.txt'

);

A=fscanf(f,'

%g'

[3inf]);

A=A;

p=A(1:

2,:

)'

;

%训练输入数据

t=A(3,:

%desireout

[train_num,input_scale]=size(p);

%规模

fclose(f);

accumulate_error=zeros(1,3001);

alpha=0.5;

%学习率

threshold=0.005;

%收敛条件∑e^2<

threshold

wd1=0;

wd2=0;

bd1=0;

bd2=0;

circle_time=0;

hidden_unitnum=4;

%隐藏层的单元数

w1=rand(hidden_unitnum,2);

%4个神经元,每个神经元接受2个输入

w2=rand(1,hidden_unitnum);

%一个神经元,每个神经元接受4个输入

b1=rand(hidden_unitnum,1);

b2=rand(1,1);

while1

temp=0;

circle_time=circle_time+1;

fori=1:

train_num

%前向传播

a0=double(p(i,:

);

%第i行数据

n1=w1*a0+b1;

a1=Logistic(n1);

%第一个的输出

n2=w2*a1+b2;

a2=Logistic(n2);

%第二个的输出

a=a2;

%后向传播敏感性

e=t(i,:

)-a;

accumulate_error(circle_time)=temp+abs(e)^2;

temp=accumulate_error(circle_time);

s2=F(a2)*e;

%输出层delta值

s1=F(a1)*w2'

*s2;

%隐层delta值

%修改权值

wd1=alpha.*s1*a0'

wd2=alpha.*s2*a1'

w1=w1+wd1;

w2=w2+wd2;

bd1=alpha.*s1;

bd2=alpha.*s2;

b1=b1+bd1;

b2=b2+bd2;

end;

%endoffor

ifaccumulate_error(circle_time)<

=threshold|circle_time>

3001%thenbreak;

%endofif

%endofwhile

plot(accumulate_error,'

m'

grid;

xlabel('

学习次数'

ylabel('

误差'

disp(['

计算误差='

num2str(accumulate_error(circle_time))]);

迭代次数='

num2str(circle_time)]);

%测试

a0=double([00]'

n1=w1*a0+b1;

a1=Logistic(n1);

n2=w2*a1+b2;

a2=Logistic(n2);

a=a2;

00='

num2str(a)]);

a0=double([01]'

01='

a0=double([10]'

10='

a0=double([11]'

11='

m=0;

%----------------------------------------------------------

function[a]=Logistic(n)

a=1./(1+exp(-n));

function[result]=F(a)

[r,c]=size(a);

result=zeros(r,r);

fori=1:

r

result(i,i)=(1-a(i))*a(i);

end;

4、实验结果:

计算误差=0.0049993

迭代次数=2706

00=0.023182

01=0.963110

10=0.965390

11=0.043374

5、学习曲线图:

图1.MLP

二、试用用奇阶互补法设计两带滤波器组(高、低通互补),进而实现四带滤波器组;

1、设计步骤:

(1)对Fp、Fr进行预畸

(2)计算

,判断

是否等于1,即该互补滤波器是否为互补镜像滤波器

(3)计算相关系数

(4)互补镜像滤波器的数字实现

2、程序:

functionfilter2()

Fp=1700;

Fr=2300;

Fs=8000;

Wp=tan(pi*Fp/Fs);

Wr=tan(pi*Fr/Fs);

Wc=sqrt(Wp*Wr);

k=Wp/Wr;

k1=sqrt(sqrt(1-k^2));

q0=0.5*(1-k1)/(1+k1);

q=q0+2*q0^5+15*q0^9+150*q0^13;

N=11;

N2=fix(N/4);

M=fix(N/2);

N1=M-N2;

forjj=1:

M

a=0;

form=0:

5

a=a+(-1)^m*q^(m*(m+1))*sin((2*m+1)*pi*jj/N);

%Nisodd,u=j

end

a

b=0;

form=1:

b=b+(-1)^m*q^(m^2)*cos(2*m*pi*jj/N);

b

W(jj)=2*q^0.25*a/(1+2*b);

V(jj)=sqrt((1-k*W(jj)^2)*(1-W(jj)^2/k));

end

N1

alpha(i)=2*V(2*i-1)/(1+W(2*i-1)^2);

N2

beta(i)=2*V(2*i)/(1+W(2*i)^2);

a(i)=(1-alpha(i)*Wc+Wc^2)/(1+alpha(i)*Wc+Wc^2);

b(i)=(1-beta(i)*Wc+Wc^2)/(1+beta(i)*Wc+Wc^2);

w=0:

0.0001:

0.5;

LP=zeros(size(w));

HP=zeros(size(w));

forn=1:

length(w)

z=exp(j*w(n)*2*pi);

H1=1;

H1=H1*(a(i)+z^(-2))/(1+a(i)*z^(-2));

H2=1/z;

H2=H2*(b(i)+z^(-2))/(1+b(i)*z^(-2));

LP(n)=abs((H1+H2)/2);

HP(n)=abs((H1-H2)/2);

end

plot(w,LP,'

k'

w,HP,'

%holdon;

xlabel('

数字频率'

ylabel('

幅度'

3、实验结果:

图2.两带滤波器

4、四带滤波器组程序:

functionfilterfour

%Nisodd,u=j

LLP=zeros(size(w));

LHP=zeros(size(w));

HLP=zeros(size(w));

HHP=zeros(size(w));

H1=H1*(a(i)+z^(-2))/(1+a(i)*z^(-2));

H21=1;

H21=H21*(a(i)+z^(-4))/(1+a(i)*z^(-4));

H2=H2*(b(i)+z^(-2))/(1+b(i)*z^(-2));

H22=1/(z^2);

H22=H22*(b(i)+z^(-4))/(1+b(i)*z^(-4));

LP=((H1+H2)/2);

HP=((H1-H2)/2);

LLP(n)=abs((H21+H22)/2*LP);

LHP(n)=abs((H21-H22)/2*LP);

HHP(n)=abs((H21+H22)/2*HP);

HLP(n)=abs((H21-H22)/2*HP);

plot(w,LLP,'

w,LHP,'

w,HLP,'

g'

w,HHP,'

b'

5、实验结果:

图3.四带滤波器组

三、根据《现代数字信号处理》(姚天任等,华中理工大学出版社,2001)第四章附录提供的数据(pp.352-353),试用如下方法估计其功率谱,并画出不同参数情况下的功率谱曲线:

1、Levinson算法

分析:

(1)、由输入数据估计自相关函数,一种渐近无偏估计(称之为取样自相关函数)的公式为:

(2)、根据估计所得到的自相关函数,用下面的迭代公式估算AR模型参数:

(3)、对于AR(p)模型,按以上述递推公式迭代计算直到

时为止。

将算出的模型参数代入下式即可得到功率谱估计值:

程序:

function[sigma2,a]=levinson(signal_source,p)

%阶数由p确定

N=length(signal_source);

%确定自相关函数

form=0:

N-1

R(m+1)=sum(conj(signal_source([1:

N-m])).*signal_source([m+1:

N]))/N;

%设置迭代初值

a1=-R

(2)/R

(1);

sigma2=(1-abs(a1)^2)*R

(1);

gamma=-a1;

%开始迭代

fork=2:

p

sigma2(k)=R

(1)+sum(a1.*conj(R([2:

k])));

D=R(k+1)+sum(a1.*R([k:

-1:

2]));

gamma(k)=D/sigma2(k);

sigma2(k)=(1-abs(gamma(k))^2)*sigma2(k);

a1=[a1-gamma(k)*conj(fliplr(a1)),-gamma(k)];

a=[1a1];

%计算功率谱估计值

sigma2=real(sigma2);

p=15;

%p分别为15、30、45、60

[sigma2,a]=Levinson(signal_in_complex,p);

%计算功率谱

f1=linspace(-0.5,0.5,512);

%从-0.5到0.5生成512个等间隔数据

fork=1:

512

S1(k)=10*log10(sigma2(end)/(abs(1+sum(a(2:

end).*exp(-j*2*pi*f1(k)*[1:

p])))^2));

%公式(2.3.7)并以dB表示

end;

实验结果:

图4.Levinson算法

2、Burg算法

(1)、设输入数据序列为

,对前后向预测误差之和求偏导,得反射系数

前后向预测误差递推公式:

(2)、重复以上步骤直至k=p,根据迭代得到的AR模型参数计算功率谱,计算功率谱的公式同上面算法。

function[sigma2,a]=burg(signal_source,p)

ef=signal_source;

eb=signal_source;

sigma2=sum(signal_source*signal_source'

)/N;

a=[];

efp=ef(k+1:

end);

ebp=eb(k:

end-1);

gamma(k)=2*efp*ebp'

/(efp*efp'

+ebp*ebp'

sigma2(k+1)=(1-abs(gamma(k))^2)*sigma2(k);

ef(k+1:

end)=efp-gamma(k)*ebp;

eb(k+1:

end)=ebp-gamma(k)'

*efp;

a=[a-gamma(k)*conj(fliplr(a)),-gamma(k)];

a=[1a];

图5.Burg算法

3、ARMA算法

(1)、用x(n)通过A(z),得到y(n)。

(2)、用一无穷阶的AR模型近似MA模型。

用Burg算法可得到此近似AR模型的参数以及激励白噪声的功率。

一般此AR模型的阶数应大于MA模型阶数的两倍,以获得较好的近似效果。

(3)、可以证明,将上一步求出的近似AR模型参数视为时间序列,则MA模型就可视为一线性预测滤波器,按最小均方误差准则就可以求出MA模型参数,方法同样可用Burg算法。

这样,ARMA模型的参数就全部估计出来了,根据以下公式即可算出功率谱:

function[a,b,sigma2]=arma(signal_source,p,q)

M=N-1;

r=xcorr(signal_source,'

unbiased'

R(:

k)=(r([N+q-k+1:

N+M-k])).'

a1=(-pinv(R)*(r([N+q+1:

N+M]).'

)).'

Y=filter([1a1],[1],signal_source);

pp=4*q;

[sigma,a1]=burg(Y,pp);

sigma2=sigma(2:

[sigma,a2]=burg(a1(2:

end),q);

b=a2;

图6.ARMA算法

4、MUSIC算法

(1)构造自相关阵

自相关函数可用有偏估计代替。

(2)计算R的特征向量

,i=1,2,…,N。

(3)估计R的维数M,方法有AIC和MDL法。

(4)根据剩余特征向量计算MUSIC谱。

functionS=music(X,p,ii)

N=length(X);

r=xcorr(X,'

biased'

clearR

N

k)=(r([N-(k-1):

2*N-k])).'

[V,D]=eig(R);

f=linspace(-0.5,0.5,512);

S0=fft(V(:

p+1:

end),512);

S(k)=10*log10(1/(S0(k,:

)*S0(k,:

));

S=[S(257:

512)S(1:

256)];

subplot(2,2,ii);

plot(f,S,'

title(['

MUSIC:

'

int2str(p),'

维'

]);

归一化频率'

),ylabel('

功率谱/dB'

holdon;

图7.MUSIC算法

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1