Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2011-05-24
帖子: 2
声望力: 0 ![]() |
![]()
isi=[0.28,1,0.28];%ISI信道参数
order=63;%滤波器阶数; snr=30;%AWGN信道信噪比; len =1000;%训练序列长度; mu=0.02;%调整步长; M=(order-1)/2; N=len+length(isi)-1 e=zeros(1,N); error=e; out=zeros(1,N);%FIR滤波器输出 mumber=0; for i=1:100 n=sign(rang(1,len)-0.5);%采用PN码作为训练序列 noise =randn(1,N) /10.^(snr/10);%加入AWGN y=conv(isi,x)+ noise; wk=zeros(1,order); for n =order:N-M+1%LMS算法 y1=y(n+M-1:-1:n-m-1); e(n)=x(n-2)-d1; wk=wk+mu3e(n)3y1; e(n)=103log10(ads(e(n))); end erro=error+e end error=error(order:N-M+1)/100; |
![]() |
![]() |
![]() |
#2 | |
初级会员
注册日期: 2011-05-21
年龄: 34
帖子: 3
声望力: 0 ![]() |
![]() 引用:
有几点我运行的时候出的错误: 1. 103*log10(ads(e(n)))而不是103log10(ads(e(n))) 2. wk = wk + mu*3*e(n)*3*y1而不是wk=wk+mu3e(n)*3.*y1; 3. m没有定义 y1=y(n+M-1:-1:n-m-1);或者这里的m是指M? 4. 变量d1没有定义 5. 函数ads没有定义,或者你的意思是abs(绝对值)? 6. 有一些变量,比如x,之前似乎没有定义。因此之后也没法帮你调试了。 以下是我改的代码,可以运行,不过不知道是不是你想要的那一种。另外请注意改变量x,x应该是一个1*1000的vector。我随便写了一个上去。 %%%%%%%%%%%%%Start%%%%%%%%%%%%%%%%% isi=[0.28,1,0.28]; order=63; snr=30; len =1000; mu=0.02; M=(order-1)/2; N=len+length(isi)-1 ; e=zeros(1,N); error=e; out=zeros(1,N); mumber=0; x = [1:1000]; % x is not defined, so I define it myself for i=1:100 n=sign(range(1,len)-0.5); noise =randn(1,N) /10.^(snr/10); y=conv(isi,x)+ noise; wk=zeros(1,order); for n =order:N-M+1 y1=y(n+M-1:-1:n-M-1);% is this m actually M? e(n)=x(n-2);%% what is d1 here? wk=wk+mu*3*e(n)*3.*y1; % Remember to use * from time to time e(n)=103*log10(abs(e(n)));% Remember to use * from time to time. and is "abs" what you want? end erro=error+e; end error=error(order:N-M+1)/100; %%%%%%%%%%%End%%%%%%%%%%%%%%%%%%%% add oil~ ![]() |
|
![]() |
![]() |