Исходный файл (3000 × 1500 пикселей, размер файла: 160 КБ, тип MIME: image/png )
ОписаниеЕмкость MIMO.png | Русский: Исходный код также доступен в нашем репозитории GitHub. |
Дата | |
Источник | Собственная работа |
Автор | Кирлф |
разработка PNG Инфополе | Этот график был создан с помощью Matplotlib. |
Исходный код Инфополе | Код Pythonимпортировать numpy как np из numpy импортировать linalg как LA импортировать предупреждения предупреждения . filterwarnings ( 'ignore' ) импортировать matplotlib.pyplot как pltdef waterpouring ( Mt , SNR_dB , H_chan ): SNR = 10 ** ( SNR_dB / 10 ) r = LA . matrix_rank ( H_chan ) H_sq = np . dot ( H_chan , np . matrix ( H_chan , dtype = complex ) . H ) лямбдасы = LA . eigvals ( H_sq ) лямбдасы = np . sort ( лямбдасы )[:: - 1 ] p = 1 ; гаммы = np . zeros (( r , 1 )) флаг = True while флаг == True : лямбдасы_r_p_1 = лямбдасы [ 0 :( r - p + 1 )] inv_лямбдасумма = np . сумма ( 1 / lambdas_r_p_1 ) mu = ( Mt / ( r - p + 1 ) ) * ( 1 + ( 1 / SNR ) * inv_lambdas_sum ) для idx , элемент в перечислении ( lambdas_r_p_1 ): gammas [ idx ] = mu - ( Mt / ( SNR * элемент )) если gammas [ r - p ] < 0 : # из-за Python начинается с 0 gammas [ r - p ] = 0 # из-за Python начинается с 0 p = p + 1 else : флаг = Ложь res = [ ] для гаммы в гаммах : res.append ( float ( gamma ) ) return np.array ( res ) def openloop_capacity ( H_chan , SNR_dB ): SNR = 10 ** ( SNR_dB / 10 ) Mt = np . shape ( H_chan )[ 1 ] H_sq = np . dot ( H_chan , np . matrix ( H_chan , dtype = complex ) . H ) лямбды = LA . eigvals ( H_sq ) лямбды = np . sort ( лямбды )[:: - 1 ] c = 0 для eig в лямбдах : c = c + np . log2 ( 1 + SNR * eig / Mt ) return np . real ( c )def closedloop_capacity ( H_chan , SNR_dB ): SNR = 10 ** ( SNR_dB / 10 ) Mt = np . shape ( H_chan )[ 1 ] H_sq = np . dot ( H_chan , np . matrix ( H_chan , dtype = complex ) . H ) lambdas = LA . eigvals ( H_sq ) lambdas = np . real ( np . sort ( lambdas ))[:: - 1 ] c = 0 gammas = waterpouring ( Mt , SNR_dB , H_chan ) для idx , элемент в enumerate ( lambdas ): c = c + np . log2 ( 1 + SNR * item * gammas [ idx ] / Mt ) return np . real ( c )Mr = 4 Mt = 4 counter = 1000 SNR_dBs = [ i для i в диапазоне ( 1 , 21 ) ] C_open = np.empty (( len ( SNR_dBs ) , counter ) ) C_closed = np.empty ( ( len ( SNR_dBs ), counter )) для c в диапазоне ( counter ) : H_chan = ( np.random.randn ( Mr , Mt ) + 1 j * np.random.randn ( Mr , Mt ) ) / np.sqrt ( 2 ) для idx , SNR_dB в enumerate ( SNR_dBs ) : C_open [ idx , c ] = openloop_capacity ( H_chan , SNR_dB ) C_closed [ idx , c ] = closedloop_capacity ( H_chan , SNR_dB ) C_open_erg = np.среднее ( C_open , ось = 1 ) C_closed_erg = np.среднее ( C_closed , ось = 1 ) fig = plt.figure ( figsize = ( 10,5 ) , dpi = 300 ) plt.plot ( SNR_dBs , C_open_erg , label = 'Канал неизвестен (CU)' ) plt.plot ( SNR_dBs , C_closed_erg , label = 'Канал известен (CK)' ) plt.title ( " Эргодическая емкость " ) plt.xlabel ( ' SNR ( дБ )' ) plt.ylabel ( ' Емкость ( бит / с / Гц) ' ) plt.legend ( ) plt.grid ( ) plt.savefig ( ' MIMO_Capacity.png ' ) |
Нажмите на дату/время, чтобы просмотреть файл в том виде, в котором он был в тот момент.
Дата/Время | Миниатюра | Размеры | Пользователь | Комментарий | |
---|---|---|---|---|---|
текущий | 08:07, 15 февраля 2019 г. | 3000 × 1500 (160 КБ) | Кирлф | Пользователь создал страницу с помощью UploadWizard |
Следующая страница использует этот файл:
Этот файл содержит дополнительную информацию, вероятно, добавленную с цифровой камеры или сканера, использовавшихся для его создания или оцифровки.
Если файл был изменен по сравнению с его исходным состоянием, некоторые данные могут не полностью отражать измененный файл.
Горизонтальное разрешение | 118.11 точек на квадрат |
---|---|
Вертикальное разрешение | 118.11 точек на квадрат |
Используемое программное обеспечение |
|