自适应陷波滤波器matlab仿真,自适应滤波在信号处理中的应用(续)

(接上篇)

【例7-13】 使用下面的参数设计信道均衡器,其中使用两个独立的随机数发生器,一个用x(n)来表示,用来测试信道;另一个用v(n)来表示,用来模拟接收器中的加性白噪声的影响。序列x(n)是x(n)=±1的伯努利序列,随机变量x(n)具有零均值和单位方差。第二个序列v(n)具有零均值,其方差由信噪比决定。均衡器有11个抽头。

例程7-11  自适应信道均衡器

自适应均衡器的仿真程序:

W=2.9;

Nexp=10;

N=2000;

Nmc=1;

M=11;                  %抽头系数

lambda=0.99;            %遗忘因子

varv=0.001;             %噪声方差

h=zeros(3,1);            %h的初始化

er=zeros(N,Nmc);       %er的初始化

h(1)=0.5*(1+cos(2*pi*(1-2)/W));

h(2)=0.5*(1+cos(2*pi*(2-2)/W));

h(3)=0.5*(1+cos(2*pi*(3-2)/W));

% 学习曲线

hc=[0 h(1) h(2) h(3)]';

n0=7;

t=(1:N)';

for i=1:Nmc

y=sign(rand(N,1)-0.5);            %输入信号

v=sqrt(varv)*randn(N,1);          %噪声信号

x=filter(hc,1,y)+v;                %信号混合

x=[zeros(M-1,1);x];               %x矩阵

yd=zeros(N+M-1,1);              %延迟信号初始化

e=yd;

yd(n0+M-1:N+M-1)=y(1:N-n0+1);

lambda=0.98;

P=(10^-3)*eye(M,M);

c=zeros(M,1);

g=c;

glambda=g;

for n=M:M+N-1

xn=flipud(x(n-M+1:n));

glambda=P*xn;

alphal=lambda+conj(glambda')*xn;

g=glambda/lambda;a(n)=1-conj(g')*xn;

P=(P-g*conj(glambda'))/lambda;

P=(P+P')/2;

e(n)=yd(n)-conj(c')*xn;

你可能感兴趣的:(自适应陷波滤波器matlab仿真,自适应滤波在信号处理中的应用(续))