声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2781|回复: 7

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

[复制链接]
发表于 2006-8-11 19:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

哪位大侠救命啊,小女子不胜感激!
回复
分享到:

使用道具 举报

发表于 2006-8-12 08:05 | 显示全部楼层
这个算法我不太了解,不过我这里有一个CMA的matlab的程序,你参考一下


  1. N=6000;                    %信息序列的长度
  2. K=11;                      %11个抽头系数
  3. %实数信道
  4. %actual_isi=[0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088];%有ISI的信道响应
  5. %复数信道
  6. %actual_isi=[0.0410+0.0109j 0.0495+0.0123j 0.0672+0.0170j 0.0919+0.0235j 0.7920+0.1281j 0.3960+0.0871j 0.2715+0.0498j 0.2291+0.0414j 0.1287+0.0154j 0.1032+0.0119j];
  7. actual_isi=[0.005 0.009 -0.024 0.854 -0.218 0.049 -0.016];
  8. Num_of_realizations=50;      %学习次数
  9. mse_av=zeros(1,N-K+1);
  10. snr=30;
  11. delta_k=0.0001;
  12. sigpower=1;
  13. d=1;            %QAM的欧式空间距离就是1了
  14. M=16;              %QAM的进制数
  15. 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;
  16.         -3*d -d;-d -d; d -d; 3*d -d;-3*d -3*d;-d -3*d; d -3*d; 3*d -3*d];
  17.     A=mapping;         
  18.     A=A(:,1)+A(:,2)*j;
  19.   R2=mean((abs(A)).^4)/mean((abs(A)).^2);                 %输入信号的自相关
  20.    for jt=1:Num_of_realizations
  21.    %信源产生
  22.          for i=1:N
  23.              temp=rand;                       %rand是均匀随机数产生命令
  24.              dsource(i)=1+floor(M*temp);     
  25.          end;
  26.      %信息到信号点的映射
  27.          for i=1:N
  28.              qam_sig(i,:)=mapping(dsource(i),:);
  29.          end;
  30.     %发送复数信号
  31.              r=qam_sig;
  32.              plot(r(:,1),r(:,2),'*');      %看星座图
  33.              rr=r(:,1)+j*r(:,2);
  34.            if(jt==1) end;
  35.     %序列通过有ISI的信道滤波器
  36.            ya1=filter(actual_isi,1,rr);
  37.             ya2=ya1';
  38.          yout= awgn(ya2,snr,sigpower);
  39.         estimated_c(1:K)=0;
  40.        estimated_c((K+1)/2)=1;       %均衡器抽头系数的初值
  41.            for k=1:N-K+1                             %迭代次数,490次。  
  42.               y_k=yout(k:k+K-1);%;*exp(-j*an_w);               
  43.                 z_k=estimated_c*y_k';                %均衡器的输出信号
  44.               yt(k)=z_k;
  45.              gi_k=real(z_k)*(1+R2-real(z_k)^2);                     %误差信号,即期望(检测器输出)-均衡器的输出
  46.              gq_k=imag(z_k)*(1+R2-imag(z_k)^2);   
  47.              g_k=gi_k+j*gq_k;
  48.              e_k=g_k-z_k;
  49.                mse(k)=abs(e_k)^2/2;                       %误差的平方
  50.                estimated_c=estimated_c+delta_k*y_k*e_k;  %LMS算法的核心表达式。
  51.             end;
  52.       if(jt==1)  end;
  53.     mse_av=mse_av+mse;                     %均方误差的累加。
  54. end;
  55. mse_av=mse_av/Num_of_realizations;          %取平均
  56. figure(1);
  57. plot(mse_av);
  58. figure(3);
  59. plot(real(yt),imag(yt),'*');   %保留500个点数
复制代码
 楼主| 发表于 2006-8-12 09:24 | 显示全部楼层
非常感谢楼上的.
请问有出处吗?我想和作者或者相关的人探讨一下,请帮忙.谢谢.
发表于 2006-8-13 07:43 | 显示全部楼层
忘记哪里来的了,以前看到了就存下雷拉
发表于 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后才有稳定的输出。
 楼主| 发表于 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个数据的文献?好让我参考一下?因为我要引用这个 ...


这个应该不会有什么出处,是一种比较常见的处理方式
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 07:15 , Processed in 0.056248 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表