1.主程序:

%一、迫零均衡前的眼图
%1.随机产生双极性序列
n=1500; %取样点数
M=150; %码元数目
A=n/M; %一个码元的取样点数,即过采样率为10
P=0.5; %1码概率
x=2*round(rand(1,M)+P-0.5)-1;  %产生一列01码;round进行四舍五入;rand产生由在(0, 1)之间均匀分布的随机数组成的数组
%2.发送信号序列与一个多抽头的滤波器卷积(相当于经过一个多径信道),产生码间串扰
h=[0.02 0.05 0.1 -0.2 1 -0.2 0.1 0.06 0.01];
x1=conv(x,h);
%3.成型滤波
%一种简单的方法生成过采样信号
temp=[1;zeros(A-1,1)];  %代表A*1的矩阵:第一个元素为1 其余为0
x2=temp*x1;  %矩阵相乘 temp的列数=x1的行数=1
x2=x2(1:end); %过采样信号
%通过升余弦滤波器,成型滤波
N_T=4;   %控制滤波器长度,滤波器的阶数为2*N_T+1。
alpha = 1; % 滚降系数,影响带宽
r=rcosdesign(alpha,N_T,A); % 产生升余弦滤波器系数
x3=conv(r,x2);    %fix():向零方向取整
x3=x3(fix(A*N_T)+1:end-fix(A*N_T)); %删去由于卷积产生的拖尾的0
%4.将不同码元周期内的图形平移至一个周期内画出眼图。
figure(1);
for ii=0:(M-3)/2plot(x3([1:2*A+1]+ii*2*A));hold on;
end
xlim([0 22]);
title('迫零均衡前的眼图');
%5.用matlab画眼图函数直接画眼图
eyediagram(x1,2);
title('迫零均衡前的眼图');
%二、迫零均衡
N=5;
C=force_zero(h,N);
y=conv(x1,C);
%三、迫零均衡后的眼图
%1.成型滤波
%一种简单的方法生成过采样信号
temp=[1;zeros(A-1,1)];
y1=temp*y;
y1=y1(1:end); %过采样信号
%通过升余弦滤波器,成型滤波
N_T=4;   %控制滤波器长度,滤波器的阶数为2*N_T+1。
alpha = 1; % 滚降系数,影响带宽
r=rcosfir(alpha,N_T,A,1); % 产生升余弦滤波器系数
y2=conv(r,y1);
y2=y2(fix(A*N_T)+1:end-fix(A*N_T)); %删去由于卷积产生的拖尾的0
%2.将不同码元周期内的图形平移至一个周期内画出眼图。
figure(3);
for ii=0:(M-3)/2plot(y2([1:2*A+1]+ii*2*A));hold on;
end
xlim([0 22]);
title('迫零均衡后的眼图');
%3.用matlab画眼图函数直接画眼图
eyediagram(y,2);
title('迫零均衡后的眼图');%四、计算ISI信号叠加不同信噪比的信道加性噪声后
%用不同阶数的迫零均衡器均衡后的误码率,并与理想误码率曲线比较。
SNRdB=[4:11];  %信噪比(dB)的范围
N=[1 2 3]; %用3、5、7阶横向滤波器迫零
err_rate=zeros(length(N),length(SNRdB));  %误码率统计
for ii=1:length(N)C=force_zero(h,N(ii));for jj=1:length(SNRdB)SNR=10^(SNRdB(jj)/10);  %计算比值形式的信噪比err=0;  %误码数清零for kk=1:10^3  %循环多次以达到足够的精确度x=2*round(rand(1,M)+P-0.5)-1;   %产生双极性码x1=awgn(x,SNR,'measured','linear'); %加入高斯白噪声x1=conv(x1,h);  %通过多径信道y=conv(x1,C);      L=(length(y)-M)/2;y=y(L+1:L+M); %除去由于卷积产生的拖尾信号  %误码率比较都是只比较码元长度My=sign(y);  %抽样判决,判决分界为0 sign()返回1或-1或0err=err+sum(abs(x-y))/2;  %误码数累加enderr_rate(ii,jj)=err/(M*10^3);  %误码率计算end
end
figure(5);
semilogy(SNRdB,0.5*erfc(sqrt(0.5*10.^(SNRdB/10))));
hold on;
semilogy(SNRdB,err_rate(1,:),'ko');
hold on;
semilogy(SNRdB,err_rate(2,:),'go');
hold on;
semilogy(SNRdB,err_rate(3,:),'ro');
title('迫零均衡后的误码率');
legend('理想误码率特性','三阶迫零均衡误码率','五阶迫零均衡误码率','七阶迫零均衡误码率');
xlabel('SNR');

画眼图之前为什么要先生成过采样信号在经过成型滤波??

解释:过采样的数字信号处理起来对低通滤波器的要求相对较低,如果不过采样,滤波的时候滤波器需要很陡峭,指标会很严格;

成形滤波的作用是保证采样点不失真。如果没有它,那信号在经过带限信道后,眼图张不开,ISI非常严重。成形滤波的位置在基带调制之后。因为经成形滤波后,信号的信息已经有所损失,这也是为避免ISI付出的代价。

2.迫零均衡的实现

function [ c ] = force_zero( h,N )
%%迫零均衡的实现
%h:归一化的多径信道系数h
%N:均衡器抽头数2N+1
%c:返回迫零均衡器的系数C
H=length(h);
MID=find(h==1);  %找到h的时间原点
%若原点两侧的值个数不等,补零使之相等;
if(MID-1<H-MID)for i=1:(H-MID)-(MID-1)h=[0,h];end
elsefor i=1:(MID-1)-(H-MID)h=[h,0];end
end
l=max(MID-1,H-MID);
%根据给定抽头数确定冲击序列x
%x=[h(-2N) h(-2N+1) ... h(0) ... h(2N-1) h(2N)]
x=zeros(1,4*N+1);
if 2*N>=lx([2*N+1-l:2*N+1+l])=h
elsex=h([MID-2*N:MID+2*N]);
end
%根据x构造矩阵方程系数X
%X=[ x(0)     x(-1)    ...    x(-2N) ;
%    x(1)     x(0)     ...    x(-2N+1);
%    ..............................
X=[];
for i=1:2*N+1X=[X;fliplr(x(i:2*N+i))]; %fliplr函数用来翻转矩阵
end
%d为delta函数
d=zeros(2*N+1,1);
d(N+1)=1;
c=X^(-1)*d;end

3.结果图

迫零均衡前的眼图、迫零均衡后的眼图分别有2幅:

1.利用循环程序画出的两个周期内的眼图;2.利用matlab自带函数eyediagram()画出的眼图

需要注意的是这两者画眼图时所使用的函数不一样,比如迫令均衡后的眼图:

利用eyediagram()画出的眼图eyediagram(y,2);所使用的函数是y,这里的y指输入信号x与h卷积再与c(抽头系数)进行卷积之后的函数;

而利用循环所使用的函数是y2,y2是y函数经过升余弦滤波器,成型滤波后的函数

for ii=0:(M-3)/2
    plot(y2([1:2*A+1]+ii*2*A));
    hold on;
end

还有不同阶数的滤波器以及不同信噪比下的误码率曲线比较

信道均衡-ZF迫零均衡matlab实现相关推荐

  1. 【信号处理】迫零均衡前与迫零均衡后眼图对比附Matlab代码

    1 内容介绍 符号间干扰是影响带限通信信道性能的重要因素之一,为提高系统性能,在接收端需采用均衡技术,盲信道均衡算法是现在的研究热点.迫零盲均衡算法充分利用了输出信号的统计特性,因此具有很好的应用前景 ...

  2. 基于MATLAB的MIMO系统ZF破零均衡仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 MIMO的空分复用技术可以使得系统在系统带宽和发射带宽不变的情况下容易地获得空间分集增益和信道的容量 ...

  3. 单载波频域均衡matlab,一种用于单载波频域均衡信道的低复杂度均衡方法与流程...

    本发明属于通信领域,具体是一种用于单载波频域均衡信道的低复杂度均衡方法. 背景技术: 在时变信道中,由于多径影响导致了严重的码间干扰(ISI),使得信号在传输过程中出现严重失真.因此需要采用均衡器来消 ...

  4. 四发四收迫零matlab,波束成型问题请教

    波束成型问题请教 01-08 各位大神真心求教,我是把OFDM上面的波束成型(一种是SVD分解后,仅取最大奇异值对应的特征信道进行发送)转移到单载波上面来,主要就是SVD分解,为什么我的BER性能不随 ...

  5. 迫零响应法用于MIMO系统

    今天跟大家分享有关信道均衡法--迫零响应法在多输入多输出(MIMO)天线系统中的应用. 在实际的信道中,常常存在码间干扰(ISI),此时需要通过一些特殊的方法和手段来进行均衡,对抗由于ISI造成的影响 ...

  6. 基于迫零准则的自适应线性均衡器

    在数字通信系统中,码间串扰和加性噪声是造成信号传输失真的主要因素,为克服码间串扰,在接收滤波器和抽样判决器之间附加一个可调滤波器,用以校正(或补偿)这些失真.对系统中线性失真进行校正的过程称为均衡,实 ...

  7. MIMO系统中的线性处理: 匹配滤波、迫零滤波与维纳滤波

    前言 这篇博客是对经典论文 Linear Transmit Processing in MIMO Communications Systems的摘记.这篇文章考虑的是收发端的各自独立信号处理设计,而非 ...

  8. 信道均衡之线性均衡——迫零滤波器

    在通讯系统中,信道是影响信号传输质量的最重要因素,而信道均衡目的是则为了消除信道的影响. 一个基带传输的通信系统的简单示意图如图1,数字信号m(n)经过单位冲激响应为ht(t)的发送滤波器后,变成模拟 ...

  9. 【迫零准则】基于迫零准则的自适应线性均衡器的MATLAB仿真

    0.完整源码获得方式 方式1:微信或者QQ联系博主 方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码 1.软件版本 MATLAB2013b 2.本算法理论知识 在数字通信系 ...

最新文章

  1. 极大似然估计_极大似然估计、极大后验估计和贝叶斯估计
  2. python softmax函数
  3. 计算机应用基础 试列出windows中运行一个程序的三种途径,2012-10-17——郑州大学远程教育学院2012计算机应用基础考试考题和答案.doc...
  4. 产品配件类目税目分类_我国消费税税目种类有哪些?
  5. maven建立webapp项目时显示Cannot change version of project facet Dynamic web module to 2.5
  6. MySQL之EXPLAIN(索引优化)
  7. go调用ffmpeg
  8. Office文档转pdf和图片之NodeJS
  9. Struts2中Action接收参数的方法
  10. CC2530基础实验二:电源管理与睡眠定时器
  11. tas5707php,TAS5707PHP
  12. yocto系列讲解[技巧篇]72 - BBCLASSEXTEND变量的作用
  13. GPRS DTU工作原理 GPRS DTU通信终端
  14. icon小图标的使用
  15. 离散数学__第2章命题逻辑的推理理论__析取范式和合取范式
  16. 一张A4纸对折不了8次?
  17. 常用计算机高级语言有哪些,计算机高级语言包括哪些?
  18. iPad,iPad Pro和iPad Mini有什么区别?
  19. IPGuard启动加密常用的策略
  20. 差速轮轮速计建模和优化量求导

热门文章

  1. 软件测试之网站测试如何进行?
  2. 这10个Python项目超有趣!
  3. 原理剖析-Netty之无锁队列
  4. Machine Learning -- 揭开机器学习的面纱
  5. 3dmax 法线重置
  6. RTC实时时钟(STM32)
  7. 将AD或者Eagle的PCB图转到KiCad使用
  8. matlab梁结点,用matlab编程对无限梁设计
  9. 属猪的人2021年运势预测
  10. PDF文件打开密码忘记了可以取消吗