/*
Program to generate samples of some standard of some standard
signals at specified sampling frequencies.
A) Sine wave
B) Square wave
C) Exponential and
D) Random signal
INPUTS: 1) Frequencies of sine and square waves
2) Sampling frequency
3) Choice for the signal to be generated.
OUTPUTS:1) The samples of the discrete time signal are stored in the array.
2) The discrete time signal is displayed.
ASSUMPTIONS: The number of samples of the signal and their amplitudes
are assumed in the program */
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<math.h>
void main()
{
float x[700],A,F,Fs,n,Y;
int i,gd=DETECT,gm,X,ch,k;
char ans;
clrscr();
initgraph(&gd,&gm,"E:\\tc\\bgi");
i=640;
A=0.5;
printf("\n\t GENERATION OF DISCRETE TIME SIGNAL ");
do
{
printf("\n\t ENTER THE FREQUENCY OF ANALOG SIGNAL:");
scanf("%f",&F);
printf("\n\t ENTER THE SAMPLING FREQUENCY: ");
scanf("%f",&Fs);
printf("\n\t YOU HAVE FOLLOWING OPTIONS:");
printf("\n\t 1)SINE WAVE ");
printf("\n\t 2)SQUARE WAVE ");
printf("\n\t 3)EXPONENTIAL SIGNAL ");
printf("\n\t 4)RANDOM NOISE ");
printf("\n\t 5)EXIT");
printf("\n\n\t ENTER YOUR CHOICE: ");
scanf("%d",&ch);
switch(ch)
{
case 1:
cleardevice();
for(n=0;n<i;n++)
{
x[n]=A*sin(2*M_PI*F*(n/Fs));
}
break;
case 2:
cleardevice();
k=0;
do
{
for(n=(k*Fs)/(2*F);n<((k+1)*Fs)/(2*F);n++)
{
x[n]=A;
}
for(n=((k+1)*Fs)/(2*F);n<((k+2)*Fs)/(2*F);n++)
{
x[n]=-A;
}
k+=2;
}while(n<i);
break;
case 3:
cleardevice();
for(n=0;n<i;n++)
x[n]=A*exp(-(n/Fs));
break;
case 4:
cleardevice();
for(n=0;n<i;n++)
x[n]=(float)(rand()%1000)/1000.00;
break;
case 5:
exit(0);
break;
}
Y=X=0;
line(1,50,1,350);
line(1,200,550,200);
for(n=0;n<i;n++)
{
Y=200-x[n]*100;
putpixel(X,Y,WHITE);
delay(40);
X++;
}
getch();
clrscr();
cleardevice();
printf("\n\n\t DO YOU WANT TO CONTINUE ? ");
scanf("%s",&ans);
}while(ans=='y' || ans=='Y');
closegraph();
}
output
GENERATION OF DISCRETE TIME SIGNAL:
ENTER THE FREQUENCY OF ANLOG SIGNAL=10
ENTER THE SAMPLING FREQUENCY=1000
YOU HAVE FOLLWING OPTIONS:
1) SINE WAVE
2) SQUARE
WAVE
3) EXPONENTIAL
SIGNAL
4) RANDOM
NOISE
5) EXIT
ENTER YOUR CHOICE: 1
DO YOU WANT TO CONTINUE? : Y
ENTER THE FREQUENCY OF ANLOG SIGNAL=10
ENTER THE SAMPLING FREQUENCY=1000
YOU HAVE FOLLWING OPTIONS:
1) SINE WAVE
2) SQUARE WAVE
3) EXPONENTIAL SIGNAL
4) RANDOM NOISE
5) EXIT
ENTER YOUR CHOICE: 2
DO YOU WANT TO CONTINUE? : Y
ENTER THE FREQUENCY OF ANLOG SIGNAL=10
ENTER THE SAMPLING FREQUENCY=1000
YOU HAVE FOLLWING OPTIONS:
1) SINE WAVE
2) SQUARE WAVE
3) EXPONENTIAL SIGNAL
4) RANDOM NOISE
5) EXIT
ENTER YOUR CHOICE: 3
DO YOU WANT TO CONTINUE? : Y
ENTER THE FREQUENCY OF ANLOG SIGNAL=10
ENTER THE SAMPLING FREQUENCY=1000
YOU HAVE FOLLWING OPTIONS:
1) SINE WAVE
2) SQUARE WAVE
3) EXPONENTIAL SIGNAL
4) RANDOM NOISE
5) EXIT
ENTER YOUR CHOICE: 4
DO YOU WANT TO CONTINUE? : N




No comments:
Post a Comment