matlab信道均衡,使用LMS算法做信道均衡时,更换信道传递函数效果很差
clear;
clc;
% 1.產生長度為2000的0/1隨機序列,進行BPSK調制,通過沖激響應為h[1,0.8,0.3]的信道傳送,信道的高斯噪聲為20dB。
%用LMS算法進行均衡輸出,均衡抽頭數為8,步長為0.03,訓練序列長度為200。
% 2.繪制出星座圖顯示理想信號、均衡器輸入信號、均衡器輸出信號。
% 繪制出重復20次實驗的瞬時誤差平方的統計平均收斂曲線。更改LMS算法步長和抽頭個數,觀察瞬時均方收斂曲線有什么變化。
% 分析步長因子和抽頭個數變化對LMS算法性能的影響。
N = 2000;M = 2;weight = 8;stepSize = 0.03;trainLen = 200;
g = randi(2,N,1) - 1;
cp = [];mod1 = [];f = 0.1 * 3 * pi;t = 0.19;
for n = 1 : length(g)
if g(n) == 0
A = zeros(1,20);
else
A = ones(1,20);
end
cp = [cp A];
c = cos(f*t);
mod1 = [mod1 c];
end
figure(1);
subplot(3,1,1);
plot(cp);
axis([0 200 -1 2]);
subplot(3,1,2);
plot(mod1);
axis([0 200 -2 2]);
cm = [];mod = [];
for n = 1 : length(g)
if g(n) == 0
c = cos(f*t + pi / 2);
else
c = -cos(f*t + pi / 2);
end
mod = [mod c];
end
subplot(3,1,3);
plot(mod);
axis([0 200 -2 2]);
figure(2);
subplot(4,1,1);
plot(mod);
axis([0 200 -2 2]);
mod = awgn(mod, 20);
subplot(4,1,2);
plot(mod);
axis([0 200 -2 2]);
%h = [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.599971];
%h = [0.734189,0,0,0,0,0,0,0,0,0,0,0,0,1,-0.406511,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.295130];
h = [1,0.8,0.3];??%沖激響應為h[1,0.8,0.3]的信道傳送
rxsig = conv(mod.',h);
subplot(4,1,3);
plot(rxsig);
axis([0 200 -2 2]);
eqlms = lineareq(weight,lms(stepSize));
eqlms.RefTap = 1;
y = equalize(eqlms,rxsig,mod(1:trainLen));
subplot(4,1,4);
plot(y);
axis([0 200 -2 2]);
hold on;
modmsg = pskmod(g,M);
filtmsg = conv(h,modmsg);
eq1.SigConst = pskmod([0,M - 1],M);
[symbolest,yd] = equalize(eqlms,filtmsg,modmsg(1:trainLen));
h = scatterplot(filtmsg,1,trainLen,'rx');
hold on;
scatterplot(symbolest,1,trainLen,'g.',h);
scatterplot(eq1.SigConst,1,0,'k*',h);
legend('Filtered signal','Equalized signal','Ideal sinal constellation');
hold off;
總結
以上是生活随笔為你收集整理的matlab信道均衡,使用LMS算法做信道均衡时,更换信道传递函数效果很差的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php汽车配件管理系统,汽配仓库管理系统
- 下一篇: 抓包oracle密码,Oracle TN