Sei sulla pagina 1di 15

16BEC0736

Avinash Yaramala

Generation of elementary signal and illustration of sample signal processing


operating on OMAP-6748 processor

A.

1. Time Shifting/Delaying
a. Code:

#include<stdio.h>
#include<math.h>

float y1[100];//original curve


float y2[100];//delayed curve

main()
{
int i,k;
k=2;
for(i=0;i<100;i++)
{
y1[i]=sin((2*3.14*(i)/180));
}

for(i=0;i<k;i++)
{
y2[i]=0;
}
for(i=k;i<100;i++)
{
y2[i]=y1[i-k];
}

}
b. Waveforms
i. Input:
ii. Output

2. Folding/Refection
a. Code

#include<stdio.h>
#include<math.h>

float y1[180];//original curve


float y2[180];//Reflected curve

main()
{
int i,k;
k=30;
for(i=0;i<100;i++)
{
y1[i]=sin((2*3.14*(i)/180));
}

for(i=0;i<180;i++)
{
y2[i]=y1[179-i];
}

}
b. Input waveform

c. Output waveform

3. Verify,whether TD[FD]=FD[TD]
a. Code

#include<stdio.h>
#include<math.h>
float y1[180];//original curve
float y2[180];//reflected curve
float y3[180];//delayed curve
float y4[180];//td[fd]
float y5[180];//fd[td]
int i;
main()
{
for(i=0;i<180;i++)
{
y1[i]=sin(2*3.14*i/180);
}

for (i=0;i<180;i++)
{
y2[i]=sin(2*3.14*(-i)/180);
}

for(i=0;i<k;i++)
{
y3[i]=0;
}
for(i=k;i<180;i++)
{
y3[i]=y1[i-k];
}

for(i=0;i<k;i++)
{
y4[i]=0;
}
for(i=k;i<180;i++)
{
y4[i]=y2[i-k];
}

for(i=0;i<180;i++)
{
y5[i]=y3[i]*(-1);
}

}
b. TD[FD] waveform
c. FD[TD] waveform
4. Convolution
a. Code

#include<stdio.h>
#include<math.h>
float y1[200];//original curve
float y2[199];//comvolution Result
int i,j;
main()
{
for(i=0;i<100;i++)
{
y1[i]=sin((2*3.14*(i)/100));
}

for(i=0;i<200;i++)
{
y2[i]=0;
for(j=0;j<i+1;j++)
{
y2[i]+=y1[j]=j1[i-j];
}
}

b. Input Waveform
c. Output Waveform

5. Correlation
a. Code
#include<stdio.h>
#include<math.h>
float y1[199];//input curve
float y2[298];//correlation Result
main()
{ int i=0,j=0;
for(i=0;i<297;i++)
{
y1[i]=sin(2*3.14*i/100);
if(i<=99||i>198)
{
y1[i]=0;
}

for(i=0;i<=198;i++)
{
float tmp[298];
for(j=0;j<298;j++)
{
tmp[j]=sin((2*3.14*(j-i))/100);
if(j<i||j>i+99)
tmp[j]=0;
y2[i] += y1[j]*tmp[j];
}

b. Input Waveform

c. Output Waveform
B. Also, Graphically verify Whether the following

a. Code:

#include<stdio.h>
#include<math.h>
float y[100];//input curve
float y[100];//output Result

main()
{
int i;
x[0]=1;
x[1]=1;
for(i-2;i<100;i++)
{
x[i]=2;
}
y[0]=x[0];

for(i=1;i<100;i++)
{
y[i]=y[i-1]*y[i-1] +x[i];
}
}

b. Input -1 Waveform
c. Output- 1 Waveform

d. Input -2 Waveform (number of inputs=8)


e. Output- 2 Waveform

Potrebbero piacerti anche