yingnier 发表于 2006-8-11 19:04

[急问]CMA算法中卷积结果k从何处取值?

CMA算法中卷积问题:
y(k)通过均衡器与w(k)进行卷积得x(k)得过程:
x(k)=w(k)*y(k)的结果中k是从何值开始取的,k=1开始还是k等于L开始?L为均衡器抽头数。

哪位大侠救命啊,小女子不胜感激!

VibInfo 发表于 2006-8-12 08:05

这个算法我不太了解,不过我这里有一个CMA的matlab的程序,你参考一下


N=6000;                  %信息序列的长度
K=11;                      %11个抽头系数
%实数信道
%actual_isi=;%有ISI的信道响应
%复数信道
%actual_isi=;
actual_isi=;
Num_of_realizations=50;      %学习次数
mse_av=zeros(1,N-K+1);
snr=30;
delta_k=0.0001;
sigpower=1;
d=1;            %QAM的欧式空间距离就是1了
M=16;            %QAM的进制数
mapping=[-3*d 3*d;-d 3*d; d 3*d; 3*d 3*d;-3*d d;-d d; d d; 3*d d;
      -3*d -d;-d -d; d -d; 3*d -d;-3*d -3*d;-d -3*d; d -3*d; 3*d -3*d];
    A=mapping;         
    A=A(:,1)+A(:,2)*j;
R2=mean((abs(A)).^4)/mean((abs(A)).^2);               %输入信号的自相关
   for jt=1:Num_of_realizations
   %信源产生
         for i=1:N
             temp=rand;                     %rand是均匀随机数产生命令
             dsource(i)=1+floor(M*temp);   
         end;
   %信息到信号点的映射
         for i=1:N
             qam_sig(i,:)=mapping(dsource(i),:);
         end;
    %发送复数信号
             r=qam_sig;
             plot(r(:,1),r(:,2),'*');      %看星座图
             rr=r(:,1)+j*r(:,2);
         if(jt==1) end;
    %序列通过有ISI的信道滤波器
         ya1=filter(actual_isi,1,rr);
            ya2=ya1';
         yout= awgn(ya2,snr,sigpower);
      estimated_c(1:K)=0;
       estimated_c((K+1)/2)=1;       %均衡器抽头系数的初值
         for k=1:N-K+1                           %迭代次数,490次。
            y_k=yout(k:k+K-1);%;*exp(-j*an_w);               
                z_k=estimated_c*y_k';                %均衡器的输出信号
            yt(k)=z_k;
             gi_k=real(z_k)*(1+R2-real(z_k)^2);                     %误差信号,即期望(检测器输出)-均衡器的输出
             gq_k=imag(z_k)*(1+R2-imag(z_k)^2);   
             g_k=gi_k+j*gq_k;
             e_k=g_k-z_k;
               mse(k)=abs(e_k)^2/2;                     %误差的平方
               estimated_c=estimated_c+delta_k*y_k*e_k;%LMS算法的核心表达式。
            end;
      if(jt==1)end;
    mse_av=mse_av+mse;                     %均方误差的累加。
end;
mse_av=mse_av/Num_of_realizations;          %取平均
figure(1);
plot(mse_av);
figure(3);
plot(real(yt),imag(yt),'*');   %保留500个点数

yingnier 发表于 2006-8-12 09:24

非常感谢楼上的.
请问有出处吗?我想和作者或者相关的人探讨一下,请帮忙.谢谢.

VibInfo 发表于 2006-8-13 07:43

忘记哪里来的了,以前看到了就存下雷拉

songzy41 发表于 2006-8-14 08:50

计算x(k)=w(k)*y(k)时,当y(k)的个数为N,w(k)的个数为L,一般计算出x(k)有N+L-1个,在前L-1个运算中都用到了y(k),k<1的值,此时都认为为0。在k=L后才有稳定的输出。

yingnier 发表于 2006-8-14 19:32

你好,楼上的同志.很感谢你.
不过,我就是在想这个问题.
本来的N+L-1个,被截去了前L-1个.
这个是大家通常自己的做法还是有出处的那?
我的意思是,能不能找到截取L-1个数据的文献?好让我参考一下?因为我要引用这个,好接着往下做.但是通常没有什么人提到这点.而我也没有足够的资料证明大家都是这样做的.
请大家伸出援助之手,谢谢.[很急!]

风花雪月 发表于 2006-8-21 10:23

原帖由 yingnier 于 2006-8-14 19:32 发表
你好,楼上的同志.很感谢你.
不过,我就是在想这个问题.
本来的N+L-1个,被截去了前L-1个.
这个是大家通常自己的做法还是有出处的那?
我的意思是,能不能找到截取L-1个数据的文献?好让我参考一下?因为我要引用这个 ...

这个估计不好找,除非是专门做这个算法的

风花雪月 发表于 2006-11-20 08:57

原帖由 yingnier 于 2006-8-14 19:32 发表
你好,楼上的同志.很感谢你.
不过,我就是在想这个问题.
本来的N+L-1个,被截去了前L-1个.
这个是大家通常自己的做法还是有出处的那?
我的意思是,能不能找到截取L-1个数据的文献?好让我参考一下?因为我要引用这个 ...

这个应该不会有什么出处,是一种比较常见的处理方式
页: [1]
查看完整版本: [急问]CMA算法中卷积结果k从何处取值?