Showing
13 changed files
with
0 additions
and
406 deletions
No preview for this file type
constellation/constellation.VC.db
deleted
100644 → 0
No preview for this file type
constellation/constellation.sln
deleted
100644 → 0
1 | - | ||
2 | -Microsoft Visual Studio Solution File, Format Version 12.00 | ||
3 | -# Visual Studio 14 | ||
4 | -VisualStudioVersion = 14.0.25420.1 | ||
5 | -MinimumVisualStudioVersion = 10.0.40219.1 | ||
6 | -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "constellation", "constellation\constellation.vcxproj", "{6FF25C27-45BF-4502-A1F8-0EFB069E1515}" | ||
7 | -EndProject | ||
8 | -Global | ||
9 | - GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
10 | - Debug|x64 = Debug|x64 | ||
11 | - Debug|x86 = Debug|x86 | ||
12 | - Release|x64 = Release|x64 | ||
13 | - Release|x86 = Release|x86 | ||
14 | - EndGlobalSection | ||
15 | - GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
16 | - {6FF25C27-45BF-4502-A1F8-0EFB069E1515}.Debug|x64.ActiveCfg = Debug|x64 | ||
17 | - {6FF25C27-45BF-4502-A1F8-0EFB069E1515}.Debug|x64.Build.0 = Debug|x64 | ||
18 | - {6FF25C27-45BF-4502-A1F8-0EFB069E1515}.Debug|x86.ActiveCfg = Debug|Win32 | ||
19 | - {6FF25C27-45BF-4502-A1F8-0EFB069E1515}.Debug|x86.Build.0 = Debug|Win32 | ||
20 | - {6FF25C27-45BF-4502-A1F8-0EFB069E1515}.Release|x64.ActiveCfg = Release|x64 | ||
21 | - {6FF25C27-45BF-4502-A1F8-0EFB069E1515}.Release|x64.Build.0 = Release|x64 | ||
22 | - {6FF25C27-45BF-4502-A1F8-0EFB069E1515}.Release|x86.ActiveCfg = Release|Win32 | ||
23 | - {6FF25C27-45BF-4502-A1F8-0EFB069E1515}.Release|x86.Build.0 = Release|Win32 | ||
24 | - EndGlobalSection | ||
25 | - GlobalSection(SolutionProperties) = preSolution | ||
26 | - HideSolutionNode = FALSE | ||
27 | - EndGlobalSection | ||
28 | -EndGlobal |
1 | -#ifndef __CHANNEL | ||
2 | - | ||
3 | -#define __CHANNEL | ||
4 | -#include <cmath> | ||
5 | -#include <random> | ||
6 | -#include "variables.h" | ||
7 | -class Cchannel { | ||
8 | -public: | ||
9 | - Cchannel() {}; | ||
10 | - float *s; // trasmitted signal | ||
11 | - float r[Nbits / Nbitspersymbol*Nsamplespersymbol]; // corrupted signal | ||
12 | - void AWGN(); | ||
13 | -}; | ||
14 | -#endif | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -<?xml version="1.0" encoding="utf-8"?> | ||
2 | -<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
3 | - <ItemGroup Label="ProjectConfigurations"> | ||
4 | - <ProjectConfiguration Include="Debug|Win32"> | ||
5 | - <Configuration>Debug</Configuration> | ||
6 | - <Platform>Win32</Platform> | ||
7 | - </ProjectConfiguration> | ||
8 | - <ProjectConfiguration Include="Release|Win32"> | ||
9 | - <Configuration>Release</Configuration> | ||
10 | - <Platform>Win32</Platform> | ||
11 | - </ProjectConfiguration> | ||
12 | - <ProjectConfiguration Include="Debug|x64"> | ||
13 | - <Configuration>Debug</Configuration> | ||
14 | - <Platform>x64</Platform> | ||
15 | - </ProjectConfiguration> | ||
16 | - <ProjectConfiguration Include="Release|x64"> | ||
17 | - <Configuration>Release</Configuration> | ||
18 | - <Platform>x64</Platform> | ||
19 | - </ProjectConfiguration> | ||
20 | - </ItemGroup> | ||
21 | - <PropertyGroup Label="Globals"> | ||
22 | - <ProjectGuid>{6FF25C27-45BF-4502-A1F8-0EFB069E1515}</ProjectGuid> | ||
23 | - <RootNamespace>constellation</RootNamespace> | ||
24 | - <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> | ||
25 | - </PropertyGroup> | ||
26 | - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||
27 | - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||
28 | - <ConfigurationType>Application</ConfigurationType> | ||
29 | - <UseDebugLibraries>true</UseDebugLibraries> | ||
30 | - <PlatformToolset>v140</PlatformToolset> | ||
31 | - <CharacterSet>MultiByte</CharacterSet> | ||
32 | - </PropertyGroup> | ||
33 | - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | ||
34 | - <ConfigurationType>Application</ConfigurationType> | ||
35 | - <UseDebugLibraries>false</UseDebugLibraries> | ||
36 | - <PlatformToolset>v140</PlatformToolset> | ||
37 | - <WholeProgramOptimization>true</WholeProgramOptimization> | ||
38 | - <CharacterSet>MultiByte</CharacterSet> | ||
39 | - </PropertyGroup> | ||
40 | - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> | ||
41 | - <ConfigurationType>Application</ConfigurationType> | ||
42 | - <UseDebugLibraries>true</UseDebugLibraries> | ||
43 | - <PlatformToolset>v140</PlatformToolset> | ||
44 | - <CharacterSet>MultiByte</CharacterSet> | ||
45 | - </PropertyGroup> | ||
46 | - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> | ||
47 | - <ConfigurationType>Application</ConfigurationType> | ||
48 | - <UseDebugLibraries>false</UseDebugLibraries> | ||
49 | - <PlatformToolset>v140</PlatformToolset> | ||
50 | - <WholeProgramOptimization>true</WholeProgramOptimization> | ||
51 | - <CharacterSet>MultiByte</CharacterSet> | ||
52 | - </PropertyGroup> | ||
53 | - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | ||
54 | - <ImportGroup Label="ExtensionSettings"> | ||
55 | - </ImportGroup> | ||
56 | - <ImportGroup Label="Shared"> | ||
57 | - </ImportGroup> | ||
58 | - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||
59 | - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | ||
60 | - </ImportGroup> | ||
61 | - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||
62 | - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | ||
63 | - </ImportGroup> | ||
64 | - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | ||
65 | - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | ||
66 | - </ImportGroup> | ||
67 | - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | ||
68 | - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | ||
69 | - </ImportGroup> | ||
70 | - <PropertyGroup Label="UserMacros" /> | ||
71 | - <PropertyGroup /> | ||
72 | - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||
73 | - <ClCompile> | ||
74 | - <WarningLevel>Level3</WarningLevel> | ||
75 | - <Optimization>Disabled</Optimization> | ||
76 | - <SDLCheck>true</SDLCheck> | ||
77 | - </ClCompile> | ||
78 | - </ItemDefinitionGroup> | ||
79 | - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | ||
80 | - <ClCompile> | ||
81 | - <WarningLevel>Level3</WarningLevel> | ||
82 | - <Optimization>Disabled</Optimization> | ||
83 | - <SDLCheck>true</SDLCheck> | ||
84 | - </ClCompile> | ||
85 | - </ItemDefinitionGroup> | ||
86 | - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||
87 | - <ClCompile> | ||
88 | - <WarningLevel>Level3</WarningLevel> | ||
89 | - <Optimization>MaxSpeed</Optimization> | ||
90 | - <FunctionLevelLinking>true</FunctionLevelLinking> | ||
91 | - <IntrinsicFunctions>true</IntrinsicFunctions> | ||
92 | - <SDLCheck>true</SDLCheck> | ||
93 | - </ClCompile> | ||
94 | - <Link> | ||
95 | - <EnableCOMDATFolding>true</EnableCOMDATFolding> | ||
96 | - <OptimizeReferences>true</OptimizeReferences> | ||
97 | - </Link> | ||
98 | - </ItemDefinitionGroup> | ||
99 | - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | ||
100 | - <ClCompile> | ||
101 | - <WarningLevel>Level3</WarningLevel> | ||
102 | - <Optimization>MaxSpeed</Optimization> | ||
103 | - <FunctionLevelLinking>true</FunctionLevelLinking> | ||
104 | - <IntrinsicFunctions>true</IntrinsicFunctions> | ||
105 | - <SDLCheck>true</SDLCheck> | ||
106 | - </ClCompile> | ||
107 | - <Link> | ||
108 | - <EnableCOMDATFolding>true</EnableCOMDATFolding> | ||
109 | - <OptimizeReferences>true</OptimizeReferences> | ||
110 | - </Link> | ||
111 | - </ItemDefinitionGroup> | ||
112 | - <ItemGroup> | ||
113 | - <ClCompile Include="constellation_main.cpp" /> | ||
114 | - <ClCompile Include="myMatrix.cpp" /> | ||
115 | - </ItemGroup> | ||
116 | - <ItemGroup> | ||
117 | - <ClInclude Include="channel.h" /> | ||
118 | - <ClInclude Include="evaluate.h" /> | ||
119 | - <ClInclude Include="myMatrix.h" /> | ||
120 | - <ClInclude Include="receiver.h" /> | ||
121 | - <ClInclude Include="sender.h" /> | ||
122 | - <ClInclude Include="variables.h" /> | ||
123 | - </ItemGroup> | ||
124 | - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | ||
125 | - <ImportGroup Label="ExtensionTargets"> | ||
126 | - </ImportGroup> | ||
127 | -</Project> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -<?xml version="1.0" encoding="utf-8"?> | ||
2 | -<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
3 | - <ItemGroup> | ||
4 | - <Filter Include="소스 파일"> | ||
5 | - <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> | ||
6 | - <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> | ||
7 | - </Filter> | ||
8 | - <Filter Include="헤더 파일"> | ||
9 | - <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> | ||
10 | - <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions> | ||
11 | - </Filter> | ||
12 | - <Filter Include="리소스 파일"> | ||
13 | - <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> | ||
14 | - <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> | ||
15 | - </Filter> | ||
16 | - </ItemGroup> | ||
17 | - <ItemGroup> | ||
18 | - <ClCompile Include="constellation_main.cpp"> | ||
19 | - <Filter>소스 파일</Filter> | ||
20 | - </ClCompile> | ||
21 | - <ClCompile Include="myMatrix.cpp"> | ||
22 | - <Filter>소스 파일</Filter> | ||
23 | - </ClCompile> | ||
24 | - </ItemGroup> | ||
25 | - <ItemGroup> | ||
26 | - <ClInclude Include="sender.h"> | ||
27 | - <Filter>헤더 파일</Filter> | ||
28 | - </ClInclude> | ||
29 | - <ClInclude Include="variables.h"> | ||
30 | - <Filter>헤더 파일</Filter> | ||
31 | - </ClInclude> | ||
32 | - <ClInclude Include="channel.h"> | ||
33 | - <Filter>헤더 파일</Filter> | ||
34 | - </ClInclude> | ||
35 | - <ClInclude Include="receiver.h"> | ||
36 | - <Filter>헤더 파일</Filter> | ||
37 | - </ClInclude> | ||
38 | - <ClInclude Include="evaluate.h"> | ||
39 | - <Filter>헤더 파일</Filter> | ||
40 | - </ClInclude> | ||
41 | - <ClInclude Include="myMatrix.h"> | ||
42 | - <Filter>헤더 파일</Filter> | ||
43 | - </ClInclude> | ||
44 | - </ItemGroup> | ||
45 | -</Project> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -#include <iostream> | ||
2 | -using namespace std; | ||
3 | -#include "sender.h" | ||
4 | -#include "channel.h" | ||
5 | -#include "receiver.h" | ||
6 | -#include "evaluate.h" | ||
7 | -void main() { | ||
8 | - Csender mySender; | ||
9 | - Cchannel myChannel; | ||
10 | - Creceiver myReceiver; | ||
11 | - Cevaluate myEvaluator; | ||
12 | - | ||
13 | - mySender.transmitData(); // generate data[ ], s[ ] | ||
14 | - myChannel.s = mySender.s; | ||
15 | - myChannel.AWGN(); // calculate r[ ] | ||
16 | - myReceiver.r = myChannel.r; | ||
17 | - myReceiver.demodulate(); // calculate constellation[ ], DecodedData[ ]; | ||
18 | - myEvaluator.Data = mySender.data; | ||
19 | - myEvaluator.DecodedData = myReceiver.DecodedData; | ||
20 | - myEvaluator.evaluate(); // compare the original and the decoded | ||
21 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -#include <iostream> | ||
2 | -#include "myMatrix.h" | ||
3 | -using namespace std; | ||
4 | -void scalarmult(int n, int m, float a, float *b, float *c){ | ||
5 | - int N = n*m; | ||
6 | - for(int i=0;i<N;i++) c[i] = a*b[i]; | ||
7 | -} | ||
8 | -void matrixadd(int n, int m, float *a, float *b, float *c){ | ||
9 | - int N = n*m; | ||
10 | - for (int i = 0; i<N; i++) c[i] = a[i]+b[i]; | ||
11 | -} | ||
12 | -// (N by K) C X (K by M) D = (N by M) E | ||
13 | -void matrixmult(int N, int K, int M, float*C, float*D, float*E) { | ||
14 | - int n, k, m; | ||
15 | - for (n = 0; n < N; n++) | ||
16 | - for (m = 0; m < M; m++) { | ||
17 | - float sum = 0; | ||
18 | - for (k = 0; k < K; k++) sum += C[n*K + k] * D[k*M + m]; | ||
19 | - E[n*M + m] = sum; | ||
20 | - } | ||
21 | -} | ||
22 | -// Solve equation Av = b | ||
23 | -// return 0 when solution exists, | ||
24 | -// -1 when solution does not exist. | ||
25 | -// A ==> indentity matrix | ||
26 | -// b ==> v (the solution) | ||
27 | -int GaussElimination(int N, float *a, float *b) | ||
28 | -{ | ||
29 | - float temp, aii, aji; | ||
30 | - int i, j, k; | ||
31 | - //showequation(N, a, b); | ||
32 | - for (i = 0; i<N; i++) { | ||
33 | - aii = a[i*N + i]; | ||
34 | - if (aii == 0.0) return -1; // 부정/불능 여기 더 할 일 있음 | ||
35 | - // i-th row를 aii로 모두 나누기 | ||
36 | - for (k = i; k<N; k++) a[i*N + k] /= aii; | ||
37 | - b[i] /= aii; | ||
38 | - // 다른 row들의 i번째 항을 모두 0으로 만들기 | ||
39 | - for (j = 0; j<N; j++) { | ||
40 | - if (i != j) { | ||
41 | - aji = a[j*N + i]; | ||
42 | - for (k = i; k<N; k++) a[j*N + k] -= a[i*N + k] * aji; | ||
43 | - b[j] -= b[i] * aji; | ||
44 | - }// if(i!=j) | ||
45 | - } // other rows | ||
46 | - //showequation(N, a, b); | ||
47 | - } | ||
48 | - return 0; | ||
49 | -} | ||
50 | -void showMatrix(int n, int m, float* F) { | ||
51 | - int i, j; | ||
52 | - for (i = 0; i < n; i++) { | ||
53 | - for (j = 0; j < m; j++) cout << F[i*m + j] << "\t"; | ||
54 | - cout << "\n"; | ||
55 | - | ||
56 | - } | ||
57 | -} | ||
58 | -void showMatrix(char*name, int n, int m, float* F) { | ||
59 | - cout << name << endl; | ||
60 | - showMatrix(n, m, F); | ||
61 | -} | ||
62 | -// show N X N matrix | ||
63 | -void showequation(int N, float *a, float *b) | ||
64 | -{ | ||
65 | - int i, j; | ||
66 | - for (i = 0; i<N; i++) | ||
67 | - { | ||
68 | - for (j = 0; j<N; j++) cout << a[i*N + j] << "\t"; | ||
69 | - cout << b[i]; | ||
70 | - } | ||
71 | - cout << "\n"; | ||
72 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -void scalarmult(int n, int m, float a, float *b, float *c); | ||
2 | -void matrixadd(int n, int m, float *a, float *b, float *c); | ||
3 | -void matrixmult(int N, int K, int M, float*C, float*D, float*E); | ||
4 | -int GaussElimination(int, float*, float*); | ||
5 | -void showMatrix(int n, int m, float* F); | ||
6 | -void showMatrix(char*name, int n, int m, float* F); | ||
7 | -void showequation(int N, float *a, float *b); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -#ifndef __RECEIVER | ||
2 | - | ||
3 | -#define __RECEIVER | ||
4 | -#include <cmath> | ||
5 | -#include "variables.h" | ||
6 | -class Creceiver { | ||
7 | -public: | ||
8 | - Creceiver() {}; | ||
9 | - float *r; // corrupted signal = received signal | ||
10 | - float constellation[Nbits]; | ||
11 | - char DecodedData[Nbits]; | ||
12 | - void demodulate(); | ||
13 | -}; | ||
14 | - | ||
15 | -void Creceiver::demodulate() | ||
16 | -{ | ||
17 | - for (int i = 0; i < Nbits; i++) | ||
18 | - { | ||
19 | - constellation[i]=r[i]/Eb; | ||
20 | - } | ||
21 | - for (int i = 0; i < Nbits; i+=2) | ||
22 | - { | ||
23 | - if (constellation[i]>0&&constellation[i + 1]>0) | ||
24 | - { | ||
25 | - DecodedData[i] = 1; | ||
26 | - DecodedData[i + 1] = 1; | ||
27 | - } | ||
28 | - else if (constellation[i]<0&&constellation[i + 1]>0) | ||
29 | - { | ||
30 | - DecodedData[i] = 0; | ||
31 | - DecodedData[i + 1] = 1; | ||
32 | - } | ||
33 | - else if (constellation[i]<0 &&constellation[i + 1]<0) | ||
34 | - { | ||
35 | - DecodedData[i] = 0; | ||
36 | - DecodedData[i + 1] = 0; | ||
37 | - } | ||
38 | - else if (constellation[i] >0 && constellation[i + 1]<0) | ||
39 | - { | ||
40 | - DecodedData[i] = 1; | ||
41 | - DecodedData[i + 1] = 0; | ||
42 | - } | ||
43 | - } | ||
44 | -} | ||
45 | -#endif | ||
46 | -#ifndef __RECEIVER | ||
47 | - | ||
48 | -#define __RECEIVER | ||
49 | -#include <cmath> | ||
50 | -#include "variables.h" | ||
51 | -class Creceiver { | ||
52 | -public: | ||
53 | - Creceiver() {}; | ||
54 | - float *r; // corrupted signal = received signal | ||
55 | - float constellation[Nbits]; | ||
56 | - char DecodedData[Nbits]; | ||
57 | - void demodulate(); | ||
58 | -}; | ||
59 | -#endif |
constellation/constellation/sender.h
deleted
100644 → 0
-
Please register or login to post a comment