Re: [問題] 大概找到問題點在哪了 BUT..

看板comm_and_RF作者 (蠶哥)時間11年前 (2014/02/14 00:09), 編輯推噓3(3011)
留言14則, 4人參與, 最新討論串1/1
我大概觀察到問題出在哪一點了就是我在計算 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)

02/14 03:03, , 1F
你的H根本是個rank-1的矩陣
02/14 03:03, 1F

02/14 03:03, , 2F
做反矩陣就爆了,ZF失敗解不出來
02/14 03:03, 2F

02/14 03:06, , 3F
這種H送兩個bit-streams,其中有一個
02/14 03:06, 3F

02/14 03:06, , 4F
解的時候跟亂猜差不多
02/14 03:06, 4F

02/14 08:52, , 5F
rayleighchan產生的是1T-1R的channel
02/14 08:52, 5F

02/14 08:52, , 6F
要做2x2 mimo,要自行呼叫四次
02/14 08:52, 6F

02/14 08:53, , 7F
更正,要產生四個channel物件
02/14 08:53, 7F

02/14 10:36, , 8F
可是rayleigh通道是不是會跟著時間變化
02/14 10:36, 8F

02/14 10:36, , 9F
每次都重新呼叫四個 好像看不出速度的
02/14 10:36, 9F

02/14 10:36, , 10F
影響?
02/14 10:36, 10F

02/14 10:37, , 11F
感覺很像都在第一秒<<舉例拉不太會形容
02/14 10:37, 11F

02/14 12:35, , 12F
如果妳是要作pseudo-inverse可以用pinv
02/14 12:35, 12F

02/14 12:38, , 13F
你的rayleighchan感覺很怪欸 怎麼可能有
02/14 12:38, 13F

02/14 12:38, , 14F
同時兩兩通道的情況是一樣的@@?
02/14 12:38, 14F
文章代碼(AID): #1I_Eui_6 (comm_and_RF)