파일:BD-CSI.png
미리 보기 크기: 800 × 388 픽셀 다른 해상도: 320 × 155 픽셀 | 640 × 311 픽셀 | 1,084 × 526 픽셀
원본 파일 (1,084 × 526 픽셀, 파일 크기: 50 KB, MIME 종류: image/png)
파일 설명
설명BD-CSI.png | |
날짜 | |
출처 | 자작 |
저자 | Kirlf |
Python Source Code
import numpy as np
import pandas as pd
class ZeroForcingBD:
def __init__(self, H, Mrs_arr):
Mr, Mt = np.shape(H)
self.Mr = Mr
self.Mt = Mt
self.H = H
self.Mrs_arr = Mrs_arr
def __routines(self, H, mr, shift):
# used in self.process() - See example above for illustration
# inputs:
# H - the whole channel matrix
# mr - number of receive antennas of the i-th user
# shift - how much receive antennas were considered before
# outputs:
# Uidx, Sigmaidx, Vhidx - SVD decomposition of the H_iP_i
# d - rank of the hat H_i
# Hidx - H_i (channel matrix for the i-th user)
# r - rank of the H_i
Hidx = H[0+shift:mr+shift,:] # H_i (channel matrix for the i-th user)
r = np.linalg.matrix_rank(Hidx) # rank of the H_i
del_idx = [i for i in range(0+shift, mr+shift, 1)] # row indeces of H_i in H
H_hat_idx = np.delete(H, del_idx, 0) # hat H_i
d = np.linalg.matrix_rank(H_hat_idx) # rank of the hat H_i
U, Sigma, Vh = np.linalg.svd(H_hat_idx) # SVD
Vhn = Vh[d:, :] # null-subspace of V^H
Vn = np.matrix(Vhn).H # null-subspace of V
Pidx = np.dot(Vn, np.matrix(Vn).H) # projection matrix
Uidx, Sigmaidx, Vhidx = np.linalg.svd(np.dot(Hidx, Pidx)) # SVD of H_iP_i
return Uidx, Sigmaidx, Vhidx, d, Hidx, r
def process(self):
# used in self.obtain_matrices()
# outputs:
# F - whole filtering (pre-coding) matrix (array of arrays)
# D - whole demodulator (post-processing) matrix (array of arrays)
# H - the whole channel matrix (array of arrays)
shift = 0
H = self.H
F = []
D = []
Hs = []
for mr in self.Mrs_arr:
Uidx, Sigmaidx, Vhidx, d, Hidx, r = self.__routines(H, mr, shift)
Vhidx1 = Vhidx[:r,:] # signal subspace
Fidx = np.matrix(Vhidx1).H
F.append(Fidx)
D.append(Uidx)
Hs.append(Hidx)
shift = shift + mr
return F, D, Hs
def obtain_matrices(self):
# used to obtain pre-coding and post-processing matrices
# outputs:
# FF - whole filtering (pre-coding) matrix
# DD - whole demodulator (post-processing) matrix (array of arrays)
F, D, Hs = self.process()
FF = np.hstack(F)
# Home Task: calculation of the demodulator matrices :)
return FF
Mrs_arr = [3,2,3]
# 1st user have 3 receive antennas, 2nd user - 2 receive antennas, 3d user - 3 receive antennas
Mr = sum(Mrs_arr) # total number of the receive antennas
Mt = 8 # total number of the transmitt antennas
H = (np.random.randn(Mr,Mt) + 1j*np.random.randn(Mr, Mt))/np.sqrt(2); #Rayleigh flat faded channel matrix (MrxMt)
BD = ZeroForcingBD(H, Mrs_arr)
F, D, Hs = BD.process()
FF = BD.obtain_matrices()
df = pd.DataFrame(np.dot(H, FF))
df[abs(df).lt(1e-14)] = 0
print(pd.DataFrame(np.round(np.real(df),100)))
라이선스
나는 아래 작품의 저작권자로서, 이 저작물을 다음과 같은 라이선스로 배포합니다:
이 파일은 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스로 배포됩니다.
- 이용자는 다음의 권리를 갖습니다:
- 공유 및 이용 – 저작물의 복제, 배포, 전시, 공연 및 공중송신
- 재창작 – 저작물의 개작, 수정, 2차적저작물 창작
- 다음과 같은 조건을 따라야 합니다:
- 저작자표시 – 적절한 저작자 표시를 제공하고, 라이센스에 대한 링크를 제공하고, 변경사항이 있는지를 표시해야 합니다. 당신은 합리적인 방식으로 표시할 수 있지만, 어떤 방식으로든 사용권 허가자가 당신 또는 당신의 사용을 지지하는 방식으로 표시할 수 없습니다.
- 동일조건변경허락 – 만약 당신이 이 저작물을 리믹스 또는 변형하거나 이 저작물을 기반으로 제작하는 경우, 당신은 당신의 기여물을 원저작물과 동일하거나 호환 가능한 라이선스에 따라 배포하여야 합니다.
- ↑ Spencer, Quentin H., A. Lee Swindlehurst, and Martin Haardt. "Zero-forcing methods for downlink spatial multiplexing in multiuser MIMO channels." IEEE transactions on signal processing 52.2 (2004): 461-471.
이 파일에 묘사된 항목
다음을 묘사함
15 2 2019
image/png
50,863 바이트
526 화소
1,084 화소
파일 역사
날짜/시간 링크를 클릭하면 해당 시간의 파일을 볼 수 있습니다.
날짜/시간 | 섬네일 | 크기 | 사용자 | 설명 | |
---|---|---|---|---|---|
현재 | 2019년 5월 8일 (수) 21:34 | 1,084 × 526 (50 KB) | Kirlf | New numbers. Bug is fixed. | |
2019년 2월 15일 (금) 18:18 | 1,015 × 653 (172 KB) | Kirlf | User created page with UploadWizard |
이 파일을 사용하는 문서
다음 문서 1개가 이 파일을 사용하고 있습니다:
이 파일을 사용하고 있는 모든 위키의 문서 목록
다음 위키에서 이 파일을 사용하고 있습니다:
- en.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
메타데이터
이 파일에는 카메라나 스캐너가 파일을 만들거나 디지털화하는 데 사용하기 위해 기록한 부가 정보가 포함되어 있습니다.
프로그램에서 파일을 편집한 경우, 새로 저장한 파일에 일부 부가 정보가 빠질 수 있습니다.
수평 해상도 | 37.8 dpc |
---|---|
수직 해상도 | 37.8 dpc |