登录论坛

查看完整版本 : [MATLAB混合编程] 我是新手 哪位大侠能帮我看一下 我的程序为什么运行不了????


1050503053
2011-05-24, 17:19
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;  

fastjacksonmin
2011-05-25, 16:01
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;  

同学
有几点我运行的时候出的错误:
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~:)