sender.cpp 1.68 KB
#ifndef __SENDER
#define __SENDER
#define PI 3.1415926535 
#include <iostream>
using namespace std;
#include <cmath>
#include "variables.h"
#include "myMatrix.h"
#include "sender.h"
class Csender {
public:
	Csender() {};
	char data[Nbits];
	float s[Nbits / Nbitspersymbol*Nsamplespersymbol]; // trasmitted signal
	void transmitData();
};



char data[Nbits];
float s[Nbits / Nbitspersymbol*Nsamplespersymbol]; // trasmitted signal


void Csender::transmitData()
{
	float T;
	float f0, f1;
	float A;
	float c0[20], c1[20];
	float t[20];

	float data0[500];
	float data1[500];


	for (int i = 0; i < Nbits; i++)
	{
		data[i] = rand() % 2;
	}

	T = 1000.0; //ֱ? ?
	f0 = 1 / T; f1 = 1 / T;
	A = 5.0;

	for (int j = 0; j < Nbits; j++)
	{
		if (j % 2 == 0)
		{
			data0[j / 2] = data[j];
		}
		else if (j % 2 == 1)
		{
			data1[j / 2] = data[j];
		}
	}
	//showMatrix(1, 1000, data0);
	//showMatrix(1, 1000, data1);

	float data00[Nbits / 2];
	float data11[Nbits / 2];

	for (int k = 0; k < Nbits / 2; k++)
	{
		if (data0[k] == 0)
		{
			data00[k] = A;
		}
		else if (data0[k] == 1)
		{
			data00[k] = -A;
		}

		if (data1[k] == 0)
		{
			data11[k] = A;
		}
		else if (data1[k] == 1)
		{
			data11[k] = -A;
		}
	}


	//showMatrix(1, 1000, data00);
	//showMatrix(1, 1000, data11);

	for (int i = 0; i <20; i++)
	{
		t[i] = T / 20.0;
	}

	for (int i = 0; i < 20; i++)
	{
		c0[i] = sqrt(2 / T)*cos(2 * PI*f0*t[i]);
		c1[i] = sqrt(2 / T)*sin(2 * PI*f1*t[i]);
	}

	float s0[Nbits / Nbitspersymbol*Nsamplespersymbol];
	float s1[Nbits / Nbitspersymbol*Nsamplespersymbol];

	matrixmult(500, 1, 20, data00, c0, s0);
	matrixmult(500, 1, 20, data11, c1, s1);
	matrixadd(500, 20, s0, s1, s);


	showMatrix(1, 10000, s);

}

#endif