作者xm3vul3h06 (蚕哥)
看板comm_and_RF
标题Re: [问题] Zero forcing配上noise解不出来
时间Fri Feb 14 00:09:09 2014
我大概观察到问题出在哪一点了就是我在计算 Wzf=(H^(H)*H)^(-1)*H^(H)
的程式码是这样去计算的
for i=1:1:N/nTx
B(:,:,i)=H(:,:,i)';
BB(:,:,i)=B(:,:,i)*H(:,:,i);
BBB(:,:,i)=inv(BB(:,:,i));
BBBB(:,:,i)=BBB(:,:,i)*B(:,:,i); %2x2
xHat(:,:,i)=BBBB(:,:,i)*y(:,i);
end
他在BBB的时候变的超级大 像
1.0e+07 *
4.7093 - 0.0000i -4.7097 - 0.0001i
-4.7097 + 0.0001i 4.7102 - 0.0000i
而改用h的BBB则是长
4.3620 + 0.0000i 4.2843 - 1.9992i
4.2843 + 1.9992i 5.8087 + 0.0000i
简单来说我用H配上noise的时候 他好像就算不出来(H^(H)*H)^(-1)
可是今天如果是用h配上noise的时候算出来的值就都是0.XXX之类的小很多的值
可是明明noise就长一样 H跟h也长超像的-..-.... 救命啊 谁能救救我 Orz
PS 以我这次模拟的例子来看
H(:,:,1)长
-0.4550 - 1.7656i -0.4550 - 1.7655i
-0.3984 - 0.6744i -0.3982 - 0.6744i
h(:,:,1)长
-0.0600 - 0.0846i 0.3701 + 0.3301i
-0.5598 - 1.2732i 0.8337 + 0.7209i
明明就超像为啥Wzf算出来差这麽多......
--------------------------------观察更新---------------------
目前观察到是因为用 rayleighchan函式产生出来的H阵列都太接近了
差别都在小数点後四位附近,所以在算反矩阵的时候都变超大的导致解不出正确的结果?
那该怎麽办哩,不用rayleighchan就不能用都普勒效应了,而且改16QAM 64QAM好像都没
特别大的变化。
持续观察中...
※ 引述《xm3vul3h06 (蚕哥)》之铭言:
: 是这样的 小弟之前做 Zero Forcing的h通道都是这样产生的
: h = 1/sqrt(2)*[randn(nRx,nTx,N/nTx) + sqrt(-1)*randn(nRx,nTx,N/nTx)];
: 然後杂讯部分则是这样产生
: noise = 1/sqrt(2)*[randn(nRx,N/nTx) + sqrt(-1)*randn(nRx,N/nTx)];
: 这样做起来很顺利,可是今天想换成有都普勒效应的通道就把h改成用H
: chan=rayleighchan(ts,fd);
: for raychan=1:1:nRx
: ray_signal(raychan,:)=filter(chan,sMod_test(raychan,:));
: end
: look=ray_signal./sMod_test;
: H=reshape(look,[nRx,nTx,N/nTx]);
: 大概来说就是把经过filter的信号除上原始信号就可以得到rayleigh通道的H系数
: 有把noise关闭过,可以完全正确的解回来,可是+上noise就一直降不下来。
: 观察过 H 跟 h 感觉也没啥不一样的地方就是个乱数的矩阵...
: 我知道讲得有点拢统啦 但是我实在找不到Bug了
: 有没有高手可以提点一下可能会错在哪边 Orz
--
你不可不知道的使用简体字的後果:
#1InxrhHQ (Gossiping)
→ chinaviva:按你的逻辑 三人为众 繁体的众字也能叫众? 01/04
→ chinaviva:繁体哪个三个人?那个中间的也算人? 01/04
→ chinaviva:繁体的忧无心 简体的忧有心 无心何来忧? 01/04
→ chinaviva:英文的爱没有心 阿拉伯的爱也没有心 比繁体字低级? 01/04
→ chinaviva:爱要有心 那哀要不要有心啊? 01/04
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.249.43.101
※ 编辑: xm3vul3h06 来自: 111.249.43.101 (02/14 01:43)
1F:→ emitter:你的H根本是个rank-1的矩阵 140.113.45.64 02/14 03:03
2F:→ emitter:做反矩阵就爆了,ZF失败解不出来 140.113.45.64 02/14 03:03
3F:→ emitter:这种H送两个bit-streams,其中有一个 140.113.45.64 02/14 03:06
4F:→ emitter:解的时候跟乱猜差不多 140.113.45.64 02/14 03:06
5F:推 bxxl:rayleighchan产生的是1T-1R的channel 114.45.140.190 02/14 08:52
6F:→ bxxl:要做2x2 mimo,要自行呼叫四次 114.45.140.190 02/14 08:52
7F:→ bxxl:更正,要产生四个channel物件 114.45.140.190 02/14 08:53
8F:→ xm3vul3h06:可是rayleigh通道是不是会跟着时间变化140.138.178.158 02/14 10:36
9F:→ xm3vul3h06:每次都重新呼叫四个 好像看不出速度的140.138.178.158 02/14 10:36
10F:→ xm3vul3h06:影响?140.138.178.158 02/14 10:36
11F:→ xm3vul3h06:感觉很像都在第一秒<<举例拉不太会形容140.138.178.158 02/14 10:37
12F:推 kangfish:如果你是要作pseudo-inverse可以用pinv140.116.187.110 02/14 12:35
13F:推 kangfish:你的rayleighchan感觉很怪欸 怎麽可能有140.116.187.110 02/14 12:38
14F:→ kangfish:同时两两通道的情况是一样的@@?140.116.187.110 02/14 12:38