Monday, 13 January 2014

dsp.Program to generate samples of some standard of some standard signals at specified sampling frequencies.


/*
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