#AP NEW DSP Program: Circular Convolution

#include<stdio.h>

int m=4;
int n=4;
int i=0,j;
int temp[30],k,x2[30],a[30];
int x[15]={1,2,3,4,5,0};
int h[15]={1,2,3,4,5,0};
int y[20];



void main()
{

if(m-n!=0)
{
if(m>n)
{
for(i=n;i<m;i++)
h[i]=0;
n=m;
}
for(i=m;i<n;i++)
x[i]=0;
m=n;
}

y[0]=0;
a[0]=h[0];
for(j=1;j<n;j++)
a[j]=h[n-j];

for(i=0;i<n;i++)
y[0]+=x[i]*a[i];
for(k=1;k<n;k++)
{
y[k]=0;

for(j=1;j<n;j++)
x2[j]=a[j-1];

x2[0]=a[n-1];
for(i=0;i<n;i++)
{
a[i]=x2[i];
y[k]+=x[i]*x2[i];
}
}
printf("the circular convolution is\n");
for(i=0;i<n;i++)
{
printf(" %d \n",y[i]);
}

while(1);
}

Comments