• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: Matlab
  • 标签: lms  matlab  

资源简介

该算法为自适应滤波算法 加入直扩通信系统

资源截图

代码片段和文件信息

clear all;
M=64;
L=M;
N=2*M;
g=100; % 统计仿真次数为g
Z=2560; % 输入信号抽样点数N
step=0.04;
lambda=0.9;
block=11;
t=1:Z;
 a=1;
 s=a*sin(0.05*pi*t); % 输入单频信号s
 figure(1);
  subplot(311)
  plot(treal(s)); % 信号s时域波形
  title(‘信号s时域波形‘);
  xlabel(‘n‘);
  ylabel(‘s‘);
  axis([0Z-a-1a+1]);
  u=awgn(s5); % 加入均值为零的高斯白噪声,信噪比为3dB
    % 设置初值
  y=zeros(1Z); % 输出信号y
  e=zeros(1Z);
   estimated_power= ones(12*M)/100;
   % y(1:k)=u(1:k); % 将输入信号xn的前k个值作为输出y的前k个值
   w=zeros(1M);
   wf=fft([wzeros(1M)]);       %频域的抽头系数
   blocknum=fix(Z/M);
   for k=0:blocknum-1;         %blocknum为数据块的个数
    if(k==0)
        uf=fft([zeros(1M)u(k*M+1:k*M+M)]);     %u为输入信号,进行重叠保留法
    else
        uf=fft([u(k*M-M+1:k*M)u(k*M+1:k*M+M)]);
    end
    ytemp=real(ifft(uf.*wf));  %矩阵点乘
    y(k*M+1:k*M+M)=ytemp(M+1:2*M);    %取后面的M个元素
    e(1k*M+1:k*M+M)=s(k*M+1:k*M+M)-y(k*M+1:k*M+M

评论

共有 条评论