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 運作結果
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iM5ETN0UzM1QjNycjYhJTMzYzXyQDOxkDMzAzLclDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)