天天看點

【信号處理】迫零均衡前與迫零均衡後眼圖對比附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 運作結果

【信号處理】迫零均衡前與迫零均衡後眼圖對比附Matlab代碼
【信号處理】迫零均衡前與迫零均衡後眼圖對比附Matlab代碼

4 參考文獻

部落客簡介:擅長智能優化算法、神經網絡預測、信号處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。

部分理論引用網絡文獻,若有侵權聯系部落客删除。

繼續閱讀