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

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

1 内容介绍

符号间干扰是影响带限通信信道性能的重要因素之一,为提高系统性能,在接收端需采用均衡技术,盲信道均衡算法是现在的研究热点.迫零盲均衡算法充分利用了输出信号的统计特性,因此具有很好的应用前景.从理论上对目前具有实际应用价值的最小均衡误差、特征矢量分解等迫零盲均衡算法作了介绍,并提出了改进算法中值需解决和注意的问题.

2 仿真代码

echo off;

clear all;

close all;

%迫零均衡前的眼图

%1.随机产生双极性序列

n= 3000;

M = 300;

A=n/M;%一个码元的取样点数,即过采样率为10

P=0.2;%1码概率

%x=2*round(rand(1,n)+P-0.5)-1;%产生一列01码

x=sign(randn(1,1000));

%2.发送信号序列与一个多抽头的滤波器卷积(相当于经过一个多径信道),产生码间串扰

%h=[0.02 0.05 0.1 -0.2 1 -0.2 0.1 0.06 0.01];

%h=[0.02 0.03 -0.13 0.2 0.08 -0.22 0.28 0.45 -0.2];

h=[0.03 0.06 0.14 -0.25 1 -0.25 0.14 0.03 0.02];%最优

x1=conv(x,h);

%3.成型滤波  

%一种简单的方法生成过采样信号

temp=[1;zeros(A-1,1)];

x2=temp*x1;  

x2=x2(1:end);%过采样信号

%通过升余弦滤波器,成型滤波  

N_T=6;%控制滤波器长度,滤波器的阶数为2*N_T+1。

alpha = 1; % 滚降系数,影响带宽

r=rcosfir(alpha,N_T,A,1); % 产生升余弦滤波器系数

x3=conv(r,x2);  

%x3=x3(fix(A*N_T)+1:end-fix(A*N_T));%删去由于卷积产生的拖尾的0

%4.将不同码元周期内的图形平移至一个周期内画出眼图。

figure(1);

for ii=0:(M-1)/2

   plot(x3([1:2*30+1]+ii*2*30));

   hold on;

end

xlim([0 44]);

title('迫零均衡前的眼图');

%5.用matlab画眼图函数直接画眼图

eyediagram(x1,5,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)/2

   plot(y2([1:10*A+1]+ii*2*A));

hold on;

end

xlim([0 44]);

title('迫零均衡后的眼图');

%3.用matlab画眼图函数直接画眼图

eyediagram(y,5,2);

title('迫零均衡后的眼图');


%四、计算ISI信号叠加不同信噪比的信道加性噪声后?

%用不同阶数的迫零均衡器均衡后的误码率,并与理想误码率曲线比较。


SNRdB=[4:12];%信噪比(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);%除去由于卷积产生的拖尾信号

           y=sign(y);%抽样判决,判决分界为0

           err=err+sum(abs(x-y))/2;%误码数累加

       end

       err_rate(ii,jj)=err/(M*10^3)%误码率计算

   end

end

figure(5);

semilogy(SNRdB,0.5*erfc(sqrt(0.5*10.^(SNRdB/10))));

hold on;

grid on;

semilogy(SNRdB,err_rate(1,:),'-*r');

hold on;

grid on;

semilogy(SNRdB,err_rate(2,:),'-ok');

hold on;

grid on;

semilogy(SNRdB,err_rate(3,:),'-hc');

title('迫零均衡后的误码率');

legend('理想误码率特性','三阶迫零均衡误码率','五阶迫零均衡误码率','七阶迫零均衡误码率');

xlabel('SNR');

3 运行结果

4 参考文献

[1]雷旭, 徐重阳. 基于二阶矩的直接盲迫零均衡算法[J]. 系统工程与电子技术, 2003.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。


相关文章
|
5月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
504 0
|
5月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
427 0
|
5月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
176 0
|
5月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
193 0
|
5月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
257 8
|
5月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
265 8
|
5月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
200 8
|
5月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
297 8
|
5月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
389 12
|
5月前
|
人工智能 数据可视化 网络性能优化
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
189 9

热门文章

最新文章