Professional Documents
Culture Documents
JFrame {
int a=0;
String result="";
/**
* Creates new form transmit
*/
public transmit() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Shaikh");
jLabel1.setText("Name");
jLabel2.setText("Password");
jLabel3.setText("Status");
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});
jButton1.setText("Login");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
input.setColumns(20);
input.setRows(5);
jScrollPane1.setViewportView(input);
jLabel5.setText("Select Modulator:");
jLabel6.setText("Noise Level:");
jButton2.setText("Send");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jLabel7.setText("Received Voltages:");
jTextArea2.setColumns(20);
jTextArea2.setRows(5);
jScrollPane2.setViewportView(jTextArea2);
jLabel8.setText("Received Bits:");
bits.setColumns(20);
bits.setRows(5);
jScrollPane3.setViewportView(bits);
jLabel9.setText("Received Message:");
displayr.setColumns(20);
displayr.setRows(5);
jScrollPane4.setViewportView(displayr);
jLabel10.setText("BER");
jLabel11.setText("CER");
jPasswordField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jPasswordField1ActionPerformed(evt);
}
});
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel11)
.addGap(18, 18, 18)
.addComponent(CER))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel10,
javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(BER, javax.swing.GroupLayout.PREFERRED_SIZE,
99, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(186, 186, 186))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,
false)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
layout.createSequentialGroup()
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)
.addComponent(jLabel1,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel2,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel3))
.addGap(29, 29, 29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPasswordField1)
.addComponent(jTextField3)
.addComponent(jTextField1))
.addGap(60, 60, 60)
.addComponent(jButton1))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jComboBox1,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel6,
javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(noise,
javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(102, 102, 102)
.addComponent(jButton2))
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 360,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(layout.createSequentialGroup()
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)
.addComponent(jLabel9)
.addComponent(jLabel7,
javax.swing.GroupLayout.PREFERRED_SIZE, 156,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel8,
javax.swing.GroupLayout.PREFERRED_SIZE, 127,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 466, Short.MAX_VALUE)
.addComponent(jScrollPane4)))
.addGroup(layout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(jLabel4,
javax.swing.GroupLayout.PREFERRED_SIZE, 186,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(62, 62, 62)
.addComponent(jScrollPane3,
javax.swing.GroupLayout.PREFERRED_SIZE, 416,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(117, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE,
25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jButton1)
.addComponent(jPasswordField1,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextField3,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(35, 35, 35)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
64, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jComboBox1,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(noise, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton2))
.addGap(18, 18, 18)
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE,
84, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(30, 30, 30)
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE,
81, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(CER,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel11))
.addGap(4, 4, 4)
.addComponent(jLabel9))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel10)
.addComponent(BER, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(29, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
}
}
result += Integer.toBinaryString(Binary[i]);
//BEr
int[] Bitser=new int[result.length()];//scheme 1111
for(int j=0;j<result.length();j++){
String xaa=result.substring(j, j+1);
Bitser[j]=Integer.parseInt(xaa);
}
String no;
int[] Nc=new int[result.length()]; // Noise added
no=noise.getText();
if(jComboBox1.getSelectedIndex()==0){
for(int con=0;con<result.length();con++){
if (Bits[con]==1){
Bits[con]=2;
}
else {Bits[con]=-2;}
if ("0".equals(no)){
System.arraycopy(Bits, 0, Nc, 0, result.length());
}
if ("1".equals(no)){
for (int c=0;c<result.length();c++){
int e=(int) ((Math.random()*5)-2);
Nc[c]=Bits[c]+e;
//continue here
for (int x=0;x<result.length();x++){
if (Nc[x]>=0){
Nc[x]=2;
}
else{
Nc[x]=-2;
}
//demodulate
}
}
//demodulator/converter
String dis ="";
for (int dep=0;dep<result.length();dep++){
if(Nc[dep]==2){
Nc[dep]=1;
}
else {
Nc[dep]=0;
}
dis+=Nc[dep];
}
bits.setText(String.valueOf(dis));
jTextArea2.setText(Arrays.toString(Bits));
}
if(jComboBox1.getSelectedIndex()==1){
for(int con=0;con<result.length();con++){
if (Bits[con]==1){
Bits[con]=2;
}
else {Bits[con]=-2;}
if ("0".equals(no)){
System.arraycopy(Bits, 0, Nc, 0, result.length());
}
if ("1".equals(no)){
for (int c=0;c<result.length();c++){
int e=(int) ((Math.random()*5)-2);
Nc[c]=Bits[c]+e;
//continue here
for (int x=0;x<result.length();x++){
if (Nc[x]>=0){
Nc[x]=2;
}
else{
Nc[x]=-2;
}
//demodulate
}
}
//demodulator/converter
String dis1 ="";
for (int dep=0;dep<result.length();dep++){
if(Nc[dep]==2){
Nc[dep]=1;
}
else {
Nc[dep]=0;
}
dis1+=Nc[dep];
}
/// pu 2eme;
bits.setText(String.valueOf(dis1));
int e=0;// ena bits ladn
int[]lol =new int[dis1.length()];
int leng;
leng=(result.length()%2)==0? result.length()/2 : ((result.length()/2)-1);
for(int dd=0;dd<dis1.length();dd++){
if(lol[dd]==1&&lol[dd+1]==1){
show[e]=4;
}
if(lol[dd]==1&&lol[dd+1]==0){
show[e]=2;
}
if(lol[dd]==0&&lol[dd+1]==1){
show[e]=-2;
}
if(lol[dd]==0&&lol[dd+1]==0){
show[e]=-4;
}
dd++;
e=e+1;
if (e>=leng){
break;
}
}
jTextArea2.setText(Arrays.toString(show));
}
if(jComboBox1.getSelectedIndex()==2){
for(int con=0;con<result.length();con++){
if (Bits[con]==1){
Bits[con]=2;
}
else {Bits[con]=-2;}
if ("0".equals(no)){
System.arraycopy(Bits, 0, Nc, 0, result.length());
}
if ("1".equals(no)){
for (int c=0;c<result.length();c++){
int e=(int) ((Math.random()*5)-2);
Nc[c]=Bits[c]+e;
//continue here
for (int x=0;x<result.length();x++){
if (Nc[x]>=0){
Nc[x]=2;
}
else{
Nc[x]=-2;
}
//demodulate
}
}
//demodulator/converter
String dis1 ="";
for (int dep=0;dep<result.length();dep++){
if(Nc[dep]==2){
Nc[dep]=1;
}
else {
Nc[dep]=0;
}
dis1+=Nc[dep];
}
/// pu 2eme;
bits.setText(String.valueOf(dis1));
int e=0;// ena bits ladn
int[]lol =new int[dis1.length()];
int leng;
leng=(result.length()%3)==0? result.length()/3 : ((result.length()/3));
for(int dd=0;dd<dis1.length();dd++){
if(lol[dd]==1&&lol[dd+1]==1&&lol[dd+2]==1){
show[e]=8;
}
if(lol[dd]==1&&lol[dd+1]==1&&lol[dd+2]==0){
show[e]=6;
}
if(lol[dd]==1&&lol[dd+1]==0&&lol[dd+2]==1){
show[e]=4;
}
if(lol[dd]==1&&lol[dd+1]==0&&lol[dd+2]==0){
show[e]=2;
}
if(lol[dd]==0&&lol[dd+1]==1&&lol[dd+2]==1){
show[e]=-2;
}
if(lol[dd]==0&&lol[dd+1]==1&&lol[dd+2]==0){
show[e]=04;
}
if(lol[dd]==0&&lol[dd+1]==0&&lol[dd+2]==1){
show[e]=-6;
}
if(lol[dd]==0&&lol[dd+1]==0&&lol[dd+2]==0){
show[e]=-8;
}
dd=dd+2;
e=e+1;
if (e>=leng){
break;
}
}
jTextArea2.setText(Arrays.toString(show));
}
int fin = 0;
int d=0;
int ja=1;
char[] message=new char[s4.length()];
for (int s=0;s<result.length()/7;s++){
fin+=((Nc[dep])*(Math.pow(2,d+7-ja)));
ja++;
}
message [s]=(char)fin;
if (message[s]=='['){
message[s]=' ';
}
displayr.setText(String.valueOf(message));
d=d+7;
fin=0;
}
String uu=String.valueOf(message);
float count=0;
float answer=count/(float)s4.length();
if ("0".equals(no)){
answer=0;
}
CER.setText(String.valueOf(answer));
// BER
float counts=0;
}
}