 # NLMS-Channel-Equalization.rar

了解作者
• matlab
开发工具
• 1KB
文件大小
• rar
文件格式
• 0
收藏次数
• 1 积分
下载积分
• 5
下载次数
• 2017-04-23 21:37
上传日期
NLMS channel equlization NLMS-Channel-Equalization.rar
• NLMS Channel Equalization.m
1.3KB

%And this is a sample code for adaptive channel equalization: %%%%%%%%%adaptive channel equalization%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%Manolis Tsakiris%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all close all %simulation length N = 1000; %channel length M = 5; %number of independent trials T = 100; cascade_impulse_response = zeros(1,2*M-1); for j = 1 : T %training signal u = randn(1,N); %channel to be equalized c = randn(M,1); c = c / norm(c); %channel output z = filter(c,1,u); %additive noise to the channel output SNR = 30; var_v = var(z) * 10^(-SNR/10); v = var_v^0.5 * randn(1,N); %input to the equalizer x = z + v; %NLMS channel equalization w = zeros(M,1); x_regressor = zeros(1,M); %length of NLMS equlizer=length of channel=5 step = 0.1; % step size epsilon = 10^(-6); % correction factor for k = 4 : N % k start from 4 since the delay should be equals to (equlizer order-1)=5-1=4 x_regressor = [x(k) x_regressor(1:M-1)]; e = u(k-3) - x_regressor * w; w = w + step * x_regressor' * e / (x_regressor * x_regressor' + epsilon); end cascade_impulse_response = cascade_impulse_response + conv(w,c)'; display(j); end figure; stem(cascade_impulse_response/T); title('cascade channel-equalizer impulse response'); xlabel('taps');   相关推荐