推 renj:用戶展頻碼沒有正交? 61.225.201.93 07/23 19:48
> -------------------------------------------------------------------------- <
作者: q5212 (偷吃是王道) 看板: comm_and_RF
標題: Re: [問題] 展頻通訊問題
時間: Mon Jul 24 08:38:06 2006
※ 引述《Tokukawa (嵐)》之銘言:
: ※ 引述《q5212 (偷吃是王道)》之銘言:
: : 例如: 訊號=[+1 -1 +1 -1],展頻碼=[+1 -1]
: : 訊號*展頻碼--->[+1 -1 -1 +1 +1 -1 -1 +1];
: : 送進通道後,解展頻(假設沒有雜訊)
: : [+1 -1]*[+1 -1]=[+2]=[+1] %正值判定為+1
: : [-1 +1]*[+1 -1]=[-2]=[-1] %負值判定為-1
: : [+1 -1]*[+1 -1]=[+2]=[+1]
: : [-1 +1]*[+1 -1]=[-2]=[-1]
: : 在一個用戶下,可以完全解出來
: : 請問ㄧ下,若是2個用戶,可不可以完全解出來?
: : 還是我解展頻方法錯誤?
: : 例如
: : 第一個用戶=[+1 +1 -1 -1],第一個用戶展頻碼=[+1 -1]
: : 第二個用戶=[-1 +1 -1 +1],第一個用戶展頻碼=[-1 +1]
: : 第一個用戶*第一個用戶展頻碼=[+1 -1 +1 -1 -1 +1 -1 +1]
: : 第二個用戶*第二個用戶展頻碼=[+1 -1 -1 +1 +1 -1 -1 +1]
: : 兩個用戶相加後進入通道=[+2 -2 0 0 0 0 -2 0]
: : 解展頻,解第一個用戶(假設AWGN=0)
: : [+2 -2]*[+1 -1]=[0]=[+1]
: : [0 0 ]*[+1 -1]=[0]=[+1]
: : [0 0 ]*[+1 -1]=[0]=[+1] %%解展頻錯誤
: : [-2 0 ]*[+1 -1]=[-2]=[-1]
: 上面的計算上有些問題....換個方式表示好了...(避免作threshold...)
: 1st user的symbol為[1,1,0,0], Spreading code=[1,0]
: 2nd user的symbol為[0,1,0,1], Spreading code=[0,1]
: 則spreaded signal
: for 1 =[1,0,1,0,0,0,0,0]
: for 2 =[0,0,0,1,0,0,0,1]
: 所以for 1+2=[1,0,1,1,0,0,0,1]
: despread 1st user=[1,0,1,1,0,0,0,1]*[1,0]=[1,1,0,0]
: despread 2nd user=[1,0,1,1,0,0,0,1]*[0,1]=[0,1,0,1]
可是...展頻的課本不是都用+1與-1,0應該不行吧
因為我再寫程式,單1用戶用展頻BER跟理論值ㄧ樣
可是若20個用戶加在一起卻跟理論值不同(反而跟BPSKㄧ樣)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.17.21.103
> -------------------------------------------------------------------------- <
作者: gpsOne (CDMA2000) 看板: comm_and_RF
標題: Re: [問題] 展頻通訊問題
時間: Mon Jul 24 10:04:06 2006
※ 引述《Tokukawa (嵐)》之銘言:
: ※ 引述《q5212 (偷吃是王道)》之銘言:
: : 例如: 訊號=[+1 -1 +1 -1],展頻碼=[+1 -1]
: : 訊號*展頻碼--->[+1 -1 -1 +1 +1 -1 -1 +1];
: : 送進通道後,解展頻(假設沒有雜訊)
: : [+1 -1]*[+1 -1]=[+2]=[+1] %正值判定為+1
: : [-1 +1]*[+1 -1]=[-2]=[-1] %負值判定為-1
: : [+1 -1]*[+1 -1]=[+2]=[+1]
: : [-1 +1]*[+1 -1]=[-2]=[-1]
: : 在一個用戶下,可以完全解出來
: : 請問ㄧ下,若是2個用戶,可不可以完全解出來?
: : 還是我解展頻方法錯誤?
: : 例如
: : 第一個用戶=[+1 +1 -1 -1],第一個用戶展頻碼=[+1 -1]
: : 第二個用戶=[-1 +1 -1 +1],第一個用戶展頻碼=[-1 +1]
: : 第一個用戶*第一個用戶展頻碼=[+1 -1 +1 -1 -1 +1 -1 +1]
: : 第二個用戶*第二個用戶展頻碼=[+1 -1 -1 +1 +1 -1 -1 +1]
: : 兩個用戶相加後進入通道=[+2 -2 0 0 0 0 -2 0]
你沒做錯
問題正如renj的推文所說
是因為你取的spreading code不是orthogonal
: : 解展頻,解第一個用戶(假設AWGN=0)
: : [+2 -2]*[+1 -1]=[0]=[+1]
: : [0 0 ]*[+1 -1]=[0]=[+1]
: : [0 0 ]*[+1 -1]=[0]=[+1] %%解展頻錯誤
: : [-2 0 ]*[+1 -1]=[-2]=[-1]
但是這裡就出問題了
你的結果應該是[? ? ? -1]
順道一提
下面有一篇關於aaronmvp的回文也是錯的
在這裡加起來>1完全是對的 現實就是這樣 請想想一下兩個BPSK相加就知道了
decode的判斷是> or < 0
: 上面的計算上有些問題....換個方式表示好了...(避免作threshold...)
: 1st user的symbol為[1,1,0,0], Spreading code=[1,0]
: 2nd user的symbol為[0,1,0,1], Spreading code=[0,1]
: 則spreaded signal
: for 1 =[1,0,1,0,0,0,0,0]
: for 2 =[0,0,0,1,0,0,0,1]
很抱歉 但是tokukawa你在這一步就錯了
展頻是做XOR, not AND
: 所以for 1+2=[1,0,1,1,0,0,0,1]
: despread 1st user=[1,0,1,1,0,0,0,1]*[1,0]=[1,1,0,0]
: despread 2nd user=[1,0,1,1,0,0,0,1]*[0,1]=[0,1,0,1]
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 66.27.110.28
※ 編輯: gpsOne 來自: 66.27.110.28 (07/24 10:06)
> -------------------------------------------------------------------------- <
作者: SoSoLife (需要翻越新的山頭) 看板: comm_and_RF
標題: Re: [問題] 展頻通訊問題
時間: Mon Jul 24 21:09:34 2006
※ 引述《q5212 (偷吃是王道)》之銘言:
: 例如: 訊號=[+1 -1 +1 -1],展頻碼=[+1 -1]
: 訊號*展頻碼--->[+1 -1 -1 +1 +1 -1 -1 +1];
: 送進通道後,解展頻(假設沒有雜訊)
: [+1 -1]*[+1 -1]=[+2]=[+1] %正值判定為+1
: [-1 +1]*[+1 -1]=[-2]=[-1] %負值判定為-1
: [+1 -1]*[+1 -1]=[+2]=[+1]
: [-1 +1]*[+1 -1]=[-2]=[-1]
: 在一個用戶下,可以完全解出來
: 請問ㄧ下,若是2個用戶,可不可以完全解出來?
: 還是我解展頻方法錯誤?
: 例如
第一個用戶=[+1 +1 -1 -1],第一個用戶展頻碼=[+1 -1]
第二個用戶=[-1 +1 -1 +1],第一個用戶展頻碼=[-1 +1]
wash code=[1 1;1 -1]
這是我感覺怪怪的地方
你的code似乎沒正交??
小意見 有錯請指正!
: 第一個用戶*第一個用戶展頻碼=[+1 -1 +1 -1 -1 +1 -1 +1]
: 第二個用戶*第二個用戶展頻碼=[+1 -1 -1 +1 +1 -1 -1 +1]
: 兩個用戶相加後進入通道=[+2 -2 0 0 0 0 -2 0]
: 解展頻,解第一個用戶(假設AWGN=0)
: [+2 -2]*[+1 -1]=[0]=[+1]
: [0 0 ]*[+1 -1]=[0]=[+1]
: [0 0 ]*[+1 -1]=[0]=[+1] %%解展頻錯誤
: [-2 0 ]*[+1 -1]=[-2]=[-1]
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.212.185
> -------------------------------------------------------------------------- <
作者: asneo (阿鎧) 看板: comm_and_RF
標題: Re: [問題] 展頻通訊問題
時間: Tue Jul 25 00:52:18 2006
clear all;
clc;
Signal_1 = [1 -1 1 -1];
Signal_2 = [1 1 1 1];
Code = [1 1 ;1 -1];
y1 = kron(Signal_1,Code(1,:));
y2 = kron(Signal_2,Code(2,:));
y = y1+y2
Rx = reshape(y,length(Code),4);
Rx1 = Code(1,:)*Rx
Rx2 = Code(2,:)*Rx
這個跑出來就可以~符合你所需要的
※ 引述《q5212 (偷吃是王道)》之銘言:
: 例如: 訊號=[+1 -1 +1 -1],展頻碼=[+1 -1]
: 訊號*展頻碼--->[+1 -1 -1 +1 +1 -1 -1 +1];
: 送進通道後,解展頻(假設沒有雜訊)
: [+1 -1]*[+1 -1]=[+2]=[+1] %正值判定為+1
: [-1 +1]*[+1 -1]=[-2]=[-1] %負值判定為-1
: [+1 -1]*[+1 -1]=[+2]=[+1]
: [-1 +1]*[+1 -1]=[-2]=[-1]
: 在一個用戶下,可以完全解出來
: 請問ㄧ下,若是2個用戶,可不可以完全解出來?
: 還是我解展頻方法錯誤?
: 例如
: 第一個用戶=[+1 +1 -1 -1],第一個用戶展頻碼=[+1 -1]
: 第二個用戶=[-1 +1 -1 +1],第一個用戶展頻碼=[-1 +1]
: 第一個用戶*第一個用戶展頻碼=[+1 -1 +1 -1 -1 +1 -1 +1]
: 第二個用戶*第二個用戶展頻碼=[+1 -1 -1 +1 +1 -1 -1 +1]
: 兩個用戶相加後進入通道=[+2 -2 0 0 0 0 -2 0]
: 解展頻,解第一個用戶(假設AWGN=0)
: [+2 -2]*[+1 -1]=[0]=[+1]
: [0 0 ]*[+1 -1]=[0]=[+1]
: [0 0 ]*[+1 -1]=[0]=[+1] %%解展頻錯誤
: [-2 0 ]*[+1 -1]=[-2]=[-1]
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.88.168
推 q5212:謝~~ 163.17.21.103 07/25 22:47