%DFE判决反馈自适应均衡
clc;
clear all;
M=1000;
N=5;
L=11;
H=[-0.557 -0.5 1.0 0.033 0.35];
a=0.0005;
d=6;
ee=zeros(1,M-d-L+1);
for nn=1:1:200;
x=rand(1,M);
s=zeros(1,length(x));
x=x-0.5;
for n=1:1:length(x)
if x(n)>=0
x(n)=1;
else
x(n)=-1;
end
end
y=filter(H,1,x);
y=y+randn(1,M)/5;
wf=zeros(1,L);
wb=zeros(1,d);
E1=1;
E2=0;
P=0;
%while abs(E2-E1)>1e-5
E2=E1;
E1=0;
for m=d+L:1:M
sum=0;
sum1=0;
sum2=0;
for n=m-1:-1:m-L
sum1=sum1+y(n)*wf(m-n);
end
for n=1:1:d
sum2=sum2+s(m-d-n)*wb(n);
end
e=x(m-d)-sum1+sum2;
for n=m-1:-1:m-L
wf(m-n)=wf(m-n)+2*a*e*y(n);
end
for n=1:1:d
wb(n)=wb(n)-2*a*e*s(m-d-n); %注意此处是减号,而上面是加号,这可以推导出来
end
sum=sum1-sum2;
if sum>=0
sum=1;
else
sum=-1;
end
s(m-d)=sum;
E1=E1+e*e;
ee(m-d-L+1)=ee(m-d-L+1)+e.^2;
end
E1=E1/(M-d-L+1);
%end
end
ee=ee/200;
M=10000;
x=rand(1,M);
x=x-0.5;
for n=1:1:length(x)
if x(n)>=0
x(n)=1;
else
x(n)=-1;
end
end
y=filter(H,1,x);
y=y+randn(1,M)/10;
%下面进行测试
P=0;
for m=d+L:1:M
sum=zeros(1,M);
sum1=zeros(1,M);
sum2=zeros(1,M);
for n=m-1:-1:m-L
sum1(m)=sum1(m)+y(n)*wf(m-n);
end
for n=1:1:d
sum2(m)=sum2(m)+s(m-d-n)*wb(n);
end
sum=sum1(m)-sum2(m);
if sum>=0
sum=1;
else
sum=-1;
end
if sum~=x(m-d)
P=P+1;
end
s(m-d)=sum;
end
str=sprintf('错误率是:');
disp(str);
disp(100*(double(P)/(M-d-L+1)));
hold on;
plot(ee);
IT狂飙
- 粉丝: 4842
- 资源: 2650
最新资源
- MATLAB【面板】的DWT数字水印设计.zip
- MATLAB【面板】的CNN卷积神经网络疲劳检测.zip
- 详解Ubuntu 20.04 LTS安装全流程:准备工作到安装后配置全面指南
- 创新,LD,孤岛微电网二次控制,下垂控制,动态事件触发,实现了二次控制,达成了有功功率均分,处理异步通信一致性问题,效果好,有对应参考文献
- MATLAB【面板】的答题纸答题卡识别.zip
- MATLAB【面板】的人脸+指纹融合系统.zip
- 计算机专业Java语言开发图书管理系统教程
- MATLAB程序-分布式电源(光伏风机等DG)接入对节点电压(或系统网损)的影响,对比了不同容量DG、不同接入点、不同功率因数DG对节点电压(也有网损,)的影响
- 数学算法中判定平方数倍数的方法与Python实现
- MATLAB【面板】的人脸门禁预警.zip
- MATLAB【面板】的手写汉字识别.zip
- MATLAB【面板】的人脸识别设计.zip
- MATLAB【面板】的视频图像去雾.zip
- MATLAB【面板】的手写字符识别.zip
- MATLAB【面板】的小波变换dwt数字水印.zip
- L3210可用清零软件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈