91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 16KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-28
  • 語言: Java
  • 標簽: 信道容量??

資源簡介

java實現迭代法求信道容量,雖然matlab實現更簡單,但資源包含矩陣類的封裝和一些操作的java實現,希望可以供java上使用到矩陣操作的朋友學習交流

資源截圖

代碼片段和文件信息

package?com.matrix;

import?java.text.DecimalFormat;
import?java.util.Scanner;

import?com.myexception.ArraySizeException;
import?com.myexception.IllegalNumberException;
import?com.myexception.MatrixCanNotMultipleException;

/**
?*?迭代法求信道容量
?*?作者:John?Luang
?*?單位:北京郵電大學信息與通信工程學院
?*/
public?class?Caculate?{

public?Caculate()?{
//?TODO?Auto-generated?constructor?stub
}
/**
?*?求ai
?*/
public?double[][]??getAi(double?pij[][]double?qTran[][])throws?MatrixCanNotMultipleException{
if(pij[0].length!=qTran.length)throw?new?MatrixCanNotMultipleException();
?else{
????????double?c[][]?=?new?double[pij.length][qTran[0].length];??
????????int?xij;??
????????for(i?=?0;i ????????{??
????????????for(j?=?0;j ????????????{??
????????????????double?temp?=?0;??
????????????????for(x?=?0;x ????????????????{??
???????????????? /*
???????????????? ?*?注意,此處如果pij[i][x]=0則pij[i][x]*ln(pij[i][x]/qTran[x][j])=0
???????????????? ?*?但是直接算Math.log(pij[i][x]/qTran[x][j])會得到NaM無窮大就出錯了
???????????????? ?*?要在pij[i][x]=0是分開處理
???????????????? ?*/
???????????????? if(pij[i][x]!=0.0)
????????????????????temp+=Math.log(pij[i][x]/qTran[x][j])*pij[i][x];??
????????????????}??
????????????????c[i][j]?=?Math.pow(2.718281828?temp);??
??????????????????
????????????}??
????????}
return?c;}

}
/**
?*?求max(ai)
?*/
public?double?max(double[][]a){

??int?n;?
??double?max=a[0][0];?
??for(n=0;n<=a.length-1;n++)?{?
??if(max ???max=a[n][0];?
??}?
??return?max;
??
?}?

public?static?void?main(String[]?args)?{
Scanner?scan=new?Scanner(System.in);
Caculate?c=new?Caculate();
//dalta和精確度有關,可以自己選取,一般在0.001到0.0001之間即可
double?dalta=0.0001;
double?cap=0;
try{

????System.out.println(“請輸入信道轉移矩陣{pij}:“);
????String?s1=scan.next();
????System.out.println(“請輸入行數(輸入符號集大小)r“);
????int?r=Integer.parseInt(scan.next());
????System.out.println(“請輸入列數(輸出符號集大小)s“);
????int?s=Integer.parseInt(scan.next());
????Matrix?matrix1=new?Matrix(s1?r?s);
????System.out.println(“信道轉移矩陣{pij}:“);
????matrix1.printmatrix();
????System.out.println(“------------------------------“);
????System.out.println(“取初始概率分布為均勻分布,pi=1/r“);
????double[][]p=new?double[1][r];
for(int?i=0;i p[0][i]=1d/r;
}
new?Matrix(p).printmatrix();
while(true){
????double?[][]q=Matrix.multiple(p?matrix1.getInstance());
????double?[][]qTran=Matrix.transformMatrix(q);
????//new?Matrix(qTran).printmatrix();
????double?[][]a=c.getAi(matrix1.getInstance()?qTran);
????double?[][]u=Matrix.multiple(p?a);
????double?iL=Logarithm.log(u[0][0]?2);
????//System.out.println(“IL=“+iL);
????double?iU=Logarithm.log(c.max(a)?2);
????//System.out.println(“IU=“+iU);
????if((iU-iL) ???? cap=iL;
???? System.out.println(“---------------------------“);

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-01-02?19:49??The?channel?capacity\
?????文件?????????301??2016-01-01?14:08??The?channel?capacity\.classpath
?????文件?????????396??2016-01-01?14:08??The?channel?capacity\.project
?????目錄???????????0??2016-01-02?19:49??The?channel?capacity\.settings\
?????文件?????????598??2016-01-01?14:08??The?channel?capacity\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2016-01-02?19:49??The?channel?capacity\bin\
?????目錄???????????0??2016-01-02?19:49??The?channel?capacity\bin\com\
?????目錄???????????0??2016-01-02?19:49??The?channel?capacity\bin\com\matrix\
?????文件????????3947??2016-01-02?19:17??The?channel?capacity\bin\com\matrix\Caculate.class
?????文件?????????420??2016-01-01?22:16??The?channel?capacity\bin\com\matrix\Logarithm.class
?????文件????????5214??2016-01-02?15:10??The?channel?capacity\bin\com\matrix\Matrix.class
?????目錄???????????0??2016-01-02?19:49??The?channel?capacity\bin\com\myexception\
?????文件?????????464??2016-01-01?22:34??The?channel?capacity\bin\com\myexception\ArraySizeException.class
?????文件?????????453??2016-01-02?14:54??The?channel?capacity\bin\com\myexception\IllegalNumberException.class
?????文件?????????492??2016-01-01?22:34??The?channel?capacity\bin\com\myexception\MatrixCanNotMultipleException.class
?????目錄???????????0??2016-01-02?19:49??The?channel?capacity\src\
?????目錄???????????0??2016-01-02?19:49??The?channel?capacity\src\com\
?????目錄???????????0??2016-01-02?19:49??The?channel?capacity\src\com\matrix\
?????文件????????3847??2016-01-02?19:17??The?channel?capacity\src\com\matrix\Caculate.java
?????文件?????????155??2016-01-01?22:16??The?channel?capacity\src\com\matrix\Logarithm.java
?????文件????????5296??2016-01-02?15:10??The?channel?capacity\src\com\matrix\Matrix.java
?????目錄???????????0??2016-01-02?19:49??The?channel?capacity\src\com\myexception\
?????文件?????????242??2016-01-01?22:34??The?channel?capacity\src\com\myexception\ArraySizeException.java
?????文件?????????235??2016-01-02?14:54??The?channel?capacity\src\com\myexception\IllegalNumberException.java
?????文件?????????257??2016-01-01?22:34??The?channel?capacity\src\com\myexception\MatrixCanNotMultipleException.java

評論

共有 條評論

相關資源