⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 digimod.c

📁 Digital Modulation Techniques are those echniques through which we convert digital signals into anal
💻 C
📖 第 1 页 / 共 4 页
字号:
void exitHandler(void)
{
cleardevice();
outtextxy(10,10,"exit");
getch();
closegraph();
}
///////////////////////////////////
void carrierDataBox()
{
setfillstyle(1,0);
bar(130,80,639,440);
setfillstyle(1,8);
bar(140-4,100-4,640+4,270+4);
setfillstyle(1,15);
bar(140,100,634,270);
setfillstyle(1,9);
bar(142,102,632,120);
settextstyle(2,0,4);
outtextxy(145,104,"Enter 8 bits (1byte)");
setfillstyle(1,8);
bar(142,130,318,162);
setfillstyle(1,1);
bar(144,132,316,160);
setfillstyle(1,15);
int xabc=150,yabc=134,xxyz,yxyz=158;
for(int i=0;i<=7;i++)
{
xxyz=xabc+18;
bar(xabc,yabc,xxyz,yxyz);
xabc=xxyz+2;
}
setfillstyle(1,9);
bar(142,180,632,198);
outtextxy(145,182,"Carrier Signal Information");
bar(142,204,220,222);
outtextxy(145,206,"Amplitude");
setfillstyle(1,8);
bar(225,204,272,222);
setfillstyle(1,1);
bar(227,206,270,220);
setfillstyle(1,15);
xabc=230,yabc=208,xxyz,yxyz=218;
for(i=0;i<=1;i++)
{
xxyz=xabc+18;
bar(xabc,yabc,xxyz,yxyz);
xabc=xxyz+2;
}
setfillstyle(1,9);
bar(142,224,220,242);
outtextxy(145,226,"Frequency");
setfillstyle(1,8);
bar(225,224,272,242);
setfillstyle(1,1);
bar(227,226,270,240);
setfillstyle(1,15);
xabc=230,yabc=228,xxyz,yxyz=238;
for(i=0;i<=1;i++)
{
xxyz=xabc+18;
bar(xabc,yabc,xxyz,yxyz);
xabc=xxyz+2;
}
setfillstyle(1,9);
bar(142,244,220,262);
outtextxy(145,246,"Phase");
setfillstyle(1,8);
bar(225,244,292,262);
setfillstyle(1,1);
bar(227,246,290,260);
setfillstyle(1,15);
xabc=230,yabc=248,xxyz,yxyz=258;
for(i=0;i<=2;i++)
{
xxyz=xabc+18;
bar(xabc,yabc,xxyz,yxyz);
xabc=xxyz+2;
}
setfillstyle(1,1);
bar(500,244,550,262);
setfillstyle(1,9); //inner
bar(500+2,244+2,550-2,262-2);
setfillstyle(1,1);
bar(560,244,610,262);
setfillstyle(1,9);    //inner
bar(560+2,244+2,610-2,262-2);
outtextxy(510,247,"Reset");
outtextxy(570,247,"Apply");
}
////////////////////////////////////////////////
int carrierInputFun()
{
/////////////////////////////////digit
int x1=150,x2=150,y1=134,y2=158;
int i=0;
do{
i+=1;
x2=x1+(18);
setfillstyle(1,9);
bar(x1,y1,x2,y2);
bd_4signal[i-1] = getche();
if(bd_4signal[i-1] != '0' && bd_4signal[i-1] != '1')
{i-=1;x2-=20;}
graphicText(x1+4,y1+6,bd_4signal[i-1]);
if(i == 8)break;
x1=x2+2;
}while(1);
bd_4signal[8]='/0';
/////////////////////////////////amplitude
x1=230,x2=230,y1=208,y2=218;
char t_afp[2];
i=0;
do{
i+=1;
x2=x1+(18);
setfillstyle(1,9);
bar(x1,y1,x2,y2);
t_afp[i-1] = getche();
if(t_afp[i-1] < '0' || t_afp[i-1] > '9')
{i-=1;x2-=20;}
graphicText(x1+4,y1,t_afp[i-1]);
if(i == 2)break;
x1=x2+2;
}while(1);
c_amplitude = atoi(t_afp);
//////////////////////////////////////////frequency
x1=230,x2=230,y1=228,y2=238;
i=0;
do{
i+=1;
x2=x1+(18);
setfillstyle(1,9);
bar(x1,y1,x2,y2);
t_afp[i-1] = getche();
if(t_afp[i-1] < '0' || t_afp[i-1] > '9')
{i-=1;x2-=20;}
graphicText(x1+4,y1,t_afp[i-1]);
if(i == 2)break;
x1=x2+2;
}while(1);
c_hz = atoi(t_afp);
//////////////////////////////////////////phase
x1=230,x2=230,y1=248,y2=258;
i=0;
do{
i+=1;
x2=x1+(18);
setfillstyle(1,9);
bar(x1,y1,x2,y2);
t_afp[i-1] = getche();
if(t_afp[i-1] < '0' || t_afp[i-1] > '9')
{i-=1;x2-=20;}
graphicText(x1+4,y1,t_afp[i-1]);
if(i == 3)break;
x1=x2+2;
}while(1);
c_angle = atoi(t_afp);
/////////////////////////////////////////////////
c_hz*=10;
c_phase = c_angle*(2*pi/360);
/////////////////////////////////////////////////button
int choice=0; //0 done 1 reset
//x1=502;y1=246;x2=548;y2=260;
x1=562;y1=246;x2=608;y2=260;
setcolor(9);
setfillstyle(1,15); //inner
bar(x1,y1,x2,y2);
//outtextxy(510,247,"Reset");
outtextxy(570,247,"Apply");
while(1)
{
switch(getch())
{
case 77:
case 75:
{
if(choice==0)
{
x1=562;y1=246;x2=608;y2=260;
setcolor(15);setfillstyle(1,9);bar(x1,y1,x2,y2);outtextxy(570,247,"Apply")
;
choice=1;x1=502;y1=246;x2=548;y2=260;
setcolor(9);setfillstyle(1,15);bar(x1,y1,x2,y2);outtextxy(510,247,"Reset")
;
}
else if (choice==1)
{
x1=562;y1=246;x2=608;y2=260;
setcolor(9);setfillstyle(1,15);bar(x1,y1,x2,y2);outtextxy(570,247,"Apply")
;
choice=0;x1=502;y1=246;x2=548;y2=260;
setcolor(15);setfillstyle(1,9);bar(x1,y1,x2,y2);outtextxy(510,247,"Reset")
;
}
break;
}
case '
':
if(choice == 0)return(1); else return(0);
}
}
}
///////////////////////////////////////////////
void askDataBox()
{
setfillstyle(1,0);
bar(130,80,639,440);
setfillstyle(1,8);
bar(140-4,100-4,640+4,220+4);
setfillstyle(1,15);
bar(140,100,634,220);
setfillstyle(1,9);
bar(142,102,632,120);
setcolor(15);
settextstyle(2,0,4);
outtextxy(145,104,"Amplitude Shift Keying (ASK) Information");
bar(142,124,320,142);
outtextxy(145,126,"On/Off Keying Technique (OOK)");
setfillstyle(1,8);
bar(332,124,358,144);
setfillstyle(1,1);
bar(334,126,356,142);
setfillstyle(1,15);
int xabc=336,yabc=128,xxyz,yxyz=140;
for(int i=0;i<=0;i++)
{
xxyz=xabc+18;
bar(xabc,yabc,xxyz,yxyz);
xabc=xxyz+2;
}
setfillstyle(1,9);
bar(142,146,320,164);
outtextxy(145,146,"Amplitude for 0 bit");
setfillstyle(1,8);
bar(332,144,379,164);
setfillstyle(1,1);
bar(334,146,377,162);
setfillstyle(1,15);
xabc=336,yabc=148,xxyz,yxyz=160;
for(i=0;i<=1;i++)
{
xxyz=xabc+18;
bar(xabc,yabc,xxyz,yxyz);
xabc=xxyz+2;
}
setfillstyle(1,9);
bar(142,166,320,184);
outtextxy(145,166,"Amplitude for 1 bit");
setfillstyle(1,8);
bar(332,164,379,184);
setfillstyle(1,1);
bar(334,166,377,182);
setfillstyle(1,15);
xabc=336,yabc=168,xxyz,yxyz=180;
for(i=0;i<=1;i++)
{
xxyz=xabc+18;
bar(xabc,yabc,xxyz,yxyz);
xabc=xxyz+2;
}
setfillstyle(1,9);
bar(142,186,320,204);
outtextxy(145,188,"Noisy Enviornment");
setfillstyle(1,8);
bar(332,184,358,202);
setfillstyle(1,1);
bar(334,186,356,200);
setfillstyle(1,15);
xabc=336,yabc=188,xxyz,yxyz=198;
for(i=0;i<=0;i++)
{
xxyz=xabc+18;
bar(xabc,yabc,xxyz,yxyz);
xabc=xxyz+2;
}
setfillstyle(1,1);
bar(500,184,550,204);
setfillstyle(1,9); //inner
bar(500+2,184+2,550-2,204-2);
setfillstyle(1,1);
bar(560,184,610,204);
setfillstyle(1,9);    //inner
bar(560+2,184+2,610-2,204-2);
outtextxy(510,188,"Reset");
outtextxy(570,188,"Apply");
}
///////////////////////////////////////////////
int askInputFun()
{
ask.frequency = c_frequency;
ask.phase = c_phase;
int x1=336,y1=128,x2=354,y2=140;
char ookCheck,t_afp[2];
/////////////////////////////////ook check
int i=0;
do{
i+=1;
x2=x1+(18);
setfillstyle(1,9);
bar(x1,y1,x2,y2);
ookCheck = getche();
if(ookCheck != 'n' && ookCheck != 'N' && ookCheck != 'Y' && ookCheck !=
'y')
{i-=1;x2-=20;}
graphicText(x1+6,y1,ookCheck);
if(i == 1)break;
x1=x2+2;
}while(1);
////////////////////////////////amp0
x1=336;x2=354;y1=148;y2=160;
if (ookCheck=='y' || ookCheck=='Y')
{
ask.amp0 = 0;
setfillstyle(1,9);
bar(x1,y1,x2,y2);
bar(x1+20,y1,x2+20,y2);
graphicText(x1+6,y1,'0');
graphicText(x1+20+6,y1,'0');
}
else
{
i=0;
do{
i+=1;
x2=x1+(18);
setfillstyle(1,9);
bar(x1,y1,x2,y2);
t_afp[i-1] = getche();
if(t_afp[i-1] < '0' || t_afp[i-1] > '9')
{i-=1;x2-=20;}
graphicText(x1+6,y1,t_afp[i-1]);
if(i == 2)break;
x1=x2+2;
}while(1);
ask.amp0=atoi(t_afp);
}
///////////////////////////////////////////////////amp1
x1=336;x2=354;y1=168;y2=180;
i=0;
do{
i+=1;
x2=x1+(18);
setfillstyle(1,9);
bar(x1,y1,x2,y2);
t_afp[i-1] = getche();
if(t_afp[i-1] < '0' || t_afp[i-1] > '9')
{i-=1;x2-=20;}
graphicText(x1+6,y1,t_afp[i-1]);
if(i == 2)break;
x1=x2+2;
}while(1);
ask.amp1=atoi(t_afp);
/////////////////////////////////////////////////
x1=336;x2=354;y1=188;y2=198;
i=0;
do{
i+=1;
x2=x1+(18);
setfillstyle(1,9);
bar(x1,y1,x2,y2);
ookCheck = getche();
if(ookCheck != 'n' && ookCheck != 'N' && ookCheck != 'Y' && ookCheck !=
'y')
{i-=1;x2-=20;}
graphicText(x1+6,y1,ookCheck);
if(i == 1)break;
x1=x2+2;
}while(1);
if (ookCheck=='y' || ookCheck=='Y')
ask.noiseVal=ask.amp1;
else
ask.noiseVal=-1;
/////////////////////////////////////////////////
int choice=0; //0 done 1 reset
//x1=502;y1=186;x2=548;y2=200;
x1=562;y1=186;x2=608;y2=202;
setcolor(9);
setfillstyle(1,15); //inner
bar(x1,y1,x2,y2);
//outtextxy(510,188,"Reset");
outtextxy(570,188,"Apply");
while(1)
{
switch(getch())
{
case 77:
case 75:
{
if(choice==0)
{
x1=562;y1=186;x2=608;y2=202;
setcolor(15);setfillstyle(1,9);bar(x1,y1,x2,y2);outtextxy(570,188,"Apply")
;
choice=1;x1=502;y1=186;x2=548;y2=202;
setcolor(9);setfillstyle(1,15);bar(x1,y1,x2,y2);outtextxy(510,188,"Reset")
;
}
else if (choice==1)
{
x1=562;y1=186;x2=608;y2=202;
setcolor(9);setfillstyle(1,15);bar(x1,y1,x2,y2);outtextxy(570,188,"Apply")
;
choice=0;x1=502;y1=186;x2=548;y2=202;
setcolor(15);setfillstyle(1,9);bar(x1,y1,x2,y2);outtextxy(510,188,"Reset")
;
}
break;
}
case '
':
if(choice == 0)return(1); else return(0);
}
}
/*getch();
closegraph();
cout<<ookCheck<<"
"<<ask.amp0<<"
"<<ask.amp1<<"
"<<ask.noiseVal;
getch();
exit(0);
*/
}
///////////////////////////////////////////////
void graphicText(int x,int y,char ch)
{
switch(ch)
{
case '0':outtextxy(x,y,"0");break;
case '1':outtextxy(x,y,"1");break;
case '2':outtextxy(x,y,"2");break;
case '3':outtextxy(x,y,"3");break;
case '4':outtextxy(x,y,"4");break;
case '5':outtextxy(x,y,"5");break;
case '6':outtextxy(x,y,"6");break;
case '7':outtextxy(x,y,"7");break;
case '8':outtextxy(x,y,"8");break;
case '9':outtextxy(x,y,"9");break;
case 'n':outtextxy(x,y,"N");break;
case 'N':outtextxy(x,y,"N");break;
case 'y':outtextxy(x,y,"Y");break;
case 'Y':outtextxy(x,y,"Y");break;
case '-':outtextxy(x,y,"-");break;

}
}
/////////////////////////////////////////////////////
void calc_sinewave()
{
c_frequency = (2 * pi * c_hz)/sr;
for (int t = 0; t<c_lcycle;t++)
c_sine_value[t] = c_amplitude * (sin((c_frequency*t)+ c_phase));
}
/////////////////////////////
void view_data()
{
clrscr();
for (int t = 0,j=0; t<c_lcycle;t++,j++)
{
if(j==20){getch();j=0;}
cout<<c_sine_value[t]<<"
";
}
getch();
}
/////////////////////////////
void create_graph()
{
int csx1=40,csy1=100, csx2=600,csy2=300;
setcolor(14);
show_int_graph(c_amplitude,2,csx1-25,csy2-csy1-c_amplitude-5);
show_int_graph(((-1)*c_amplitude),3,csx1-30,csy2-csy1+c_amplitude-5);
setlinestyle(0,0,1);
line(csx1-4,csy2-csy1-c_amplitude,csx1+4,csy2-csy1-c_amplitude);
line(csx1-4,csy2-csy1+c_amplitude,csx1+4,csy2-csy1+c_amplitude);
setcolor(15);
setlinestyle(1,1,1);
line(csx1+6,csy2-5,csx1+c_lcycle-6,csy2-5);
outtextxy(csx1+3,csy2-11,"<");
outtextxy(csx1+c_lcycle-3,csy2-11,">");
outtextxy((csx2/2)-80,csy2+5,"1 sec");
setlinestyle(0,0,3);
setcolor(4);
line(csx1,csy1,csx1,csy2);
line(csx1,csy2-csy1,csx2,csy2-csy1);
setcolor(9);
setlinestyle(1,1,1);
for(int i = csx1+c_lcycle; i<csx2;i+=c_lcycle)
line(i,csy1,i,csy2);
outtextxy(csx1,csy2+100,"Amplitude   = ");
outtextxy(csx1,csy2+120,"Frequency   = ");
outtextxy(csx1,csy2+140,"Phase       = ");
setcolor(15);
show_int_graph(c_amplitude,2,csx1+80,csy2+100);
show_int_graph(c_hz/10,2,csx1+80,csy2+120);
show_int_graph(c_angle,3,csx1+80,csy2+140);
settextstyle(1,0,4);
setcolor(15);
outtextxy(csx1,30,"CARRIER SIGNAL");
setfillstyle(1,9);
bar(csx1,70,csx1+250,72);
settextstyle(2,0,4);setcolor(15);
outtextxy(260,460,"Press any key to continue");
//getch();
}
/////////////////////////////
void create_simple_wave()
{
int x=40,y=200,x1,y1;
setcolor(2);
setlinestyle(0,0,3);
for(int i=0;i<c_lcycle;i++)
{
x1=x+i;
if(c_sine_value[i] >= 0)
y1=y-c_sine_value[i];
else
y1=y+((-1)*c_sine_value[i]);
line(x1,y1,x1,y1);
}
}
/////////////////////////////////
void show_int_graph(int val,int l,int x,int y)
{
char temp[10];
itoa(val,temp,10);
for(int i=0;i<l;i++)
{
x+=6;
graphicText(x,y,temp[i]);
}
}
////////////////////////////////////////////////////
void creategraph_digital()
{
y12=yvalue2-40,x12=40,y22=yvalue2;
int cgx1=40,cgy1=140, cgx2=500,cgy2=yvalue2;
setcolor(4);
setlinestyle(0,1,3);
line(cgx1,cgy1,cgx1,cgy2);
line(cgx1,cgy2,cgx2,cgy2);
setcolor(14);
setlinestyle(1,1,1);
for(int i = cgx1+40; i<cgx2;i+=40)
line(i,cgy1,i,cgy2);
settextstyle(1,0,4);
setcolor(15);
outtextxy(x12,30,"DIGITAL SIGNAL");
setfillstyle(1,9);
bar(x12,70,x12+250,72);
settextstyle(2,0,4);setcolor(15);
outtextxy(260,460,"Press any key to continue");
int a=52,b=100;
for(i=0;i<=7;i++)
{
setcolor(15);
graphicText(a,y22-100,bd_4signal[i]);
setcolor(15);
graphicText(b,400,bd_4signal[i]);
a+=40;b+=7;
}
setcolor(9);
outtextxy(40,400,"Data   = ");

//getch();
}
/////////////////////////////////////////////////////
void createDsignal_digital()
{
setcolor(2);
int len=9;
for (int i=0;i<len-1;i++)
{
if(bd_4signal[i] == '0')
{
dsignal4_0_digital(i+1);
}
else
{
dsignal4_1_digital(i+1);
}
}
}
//////////////////////////////////////////////////////
void dsignal4_0_digital(int pos)
{
setcolor(2);
setlinestyle(0,1,lineweight);
int x=x12;x12+=40;
if (pos == 1 || (pos != 1 && bd_4signal[pos-2] == '0'))
line(x,y22,x+40,y22);
else
{
line(x,y12,x,y22);
line(x,y22,x+40,y22);
}
}
///////////////////////////////////////////////////////
void dsignal4_1_digital(int pos)
{
setcolor(2);
setlinestyle(0,1,lineweight);
int x=x12;x12+=40;
if (pos == 1 || (pos != 1 && bd_4signal[pos-2] == '1'))
line(x,y12,x+40,y12);
else
{
line(x,y12,x,y22);
line(x,y12,x+40,y12);
}
}
///////////////////////////////////////////////////////
void calc_ask_sinewave(int amp01)
{
ask.frequency = (2 * pi * c_hz)/ask_sr;
for (int t = 0; t<ask_lcycle;t++)
ask.sine_value[t] = amp01 * (sin((ask.frequency*t)+ ask.phase));
}
////////////////////////////////////////////////////////
void calc_askN_sinewave(int amp01)
{
randomize();
ask.frequency = (2 * pi * c_hz)/ask_sr;
int namp=random(amp01);
for (int t = 0,n=0; t<ask_lcycle;t++,n++)
{
if(n==1){namp=amp01+random(8);n=0;}
ask.sine_value[t] = namp * (sin((ask.frequency*t)+ ask.phase));
}
}

//////////////////////////////////
void ask_main()
{
ask.x=32;
for (int i = 0;i<8;i++)
{
if (bd_4signal[i] == '0')
{
calc_ask_sinewave(ask.amp0);
create_ask_waves();
}
else
{
calc_ask_sinewave(ask.amp1);
create_ask_waves();
}
}
}
////////////////////////////////////////////////////
void askN_main()
{
ask.x=32;
for (int i = 0;i<8;i++)
{
if (bd_4signal[i] == '0')
{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -