matlab code for convolutin

13
Assignment No 1 Submitted By Syed Kashif Abbas Naqvi

Upload: skanshah

Post on 02-Dec-2015

235 views

Category:

Documents


0 download

DESCRIPTION

good

TRANSCRIPT

Page 1: Matlab Code for Convolutin

Assignment No 1

Submitted By

Syed Kashif Abbas Naqvi

Page 2: Matlab Code for Convolutin

Matlab Code for Convolutin%function [Output] = ConOwn( In,Impl )%%%%%% this function takes input as INput samples and Impulse response as%%%%%% function arguments and return the output samples in the array called%%%%%% output array <<<>>>If the lenght of the input samples by the users%%%%%% are not equal then zero padding is done to make them equal using%%%%%% inbuild matlab command length and%%%%%% zero(1,m)<><><><><><><><><><><>< Convoultion function is performed%%%%%% by using backward difference equation Y_new=Ynew+Sum[Saved Data]% Detailed explanation goes here m=length(In); n=length(Impl); In=[In,zeros(1,n)];Impl=[Impl,zeros(1,m)]; for i=1:n+m-1 Output(i)=0; for j=1:m if(i-j+1>0) Output(i)=Output(i)+In(j)*Impl(i-j+1); end end end figure(); plot(Output,'--yd','LineWidth',5,... 'MarkerEdgeColor','m',... 'MarkerFaceColor','r',... 'MarkerSize',5); xlabel('time'); ylabel('amplitude'); title('ramp signal'); title('The Covnvolved Signal Plot')

Page 3: Matlab Code for Convolutin
Page 4: Matlab Code for Convolutin

jjjjjdna

Matla Code for Filter Coefficents 20 and W 0.2function []= FilterOwn() % Design a 20 Coefficent FIR filter with coeffice no =20 and wO=0.2 % using inbuild matlab command fir1(N,Wn,'')n=20;b = fir1(n,0.2); % Window-based FIR filter designfigure(); %subplot(2,1,1); plot(b) %subplot(2,1,2); figure(); freqz(b) % Frequency response of filter t=0:n-1; y=t; v=conv(y,b); plot(v)

Matlab Code for Implementing RAMP %%%% this function calculates ramp signal and plot them accordinglyfunction y = rmp()clcclose alln=input('enter the value of n:');t=0:n-1;y=t;stem(t,y,'--yd','LineWidth',5,... 'MarkerEdgeColor','m',... 'MarkerFaceColor','r',... 'MarkerSize',5); xlabel('time'); ylabel('amplitude'); title('ramp signal'); figure() plot(t,y) xlabel('time');ylabel('amplitude');title('ramp signal');%%

Page 5: Matlab Code for Convolutin
Page 6: Matlab Code for Convolutin
Page 7: Matlab Code for Convolutin

FIFO implementation in TC using Assumed Data in Arrays

include<stdio.h>#include<conio.h>

void printArray(int *array , int length) { int i; for(i=0; i<length;i++)

{ printf(" Value at %d is %d\t\t\n",i,array[i]); } }int main (int argc , char*argv[])

{clrscr();int N,M,i,y;N=9;int H[]={1, 2, 1, 1, 4,3};int X[]={ 2, 3, 1, 4, 6,2};int Y[]={0,0,0,0,0,0};for (i=N; i>=0; i--) { X[i+1]=X[i]; int intVal = X[i]; //printf(" %d\t",&X[i]); } // X[0]=115; printf("\t\t\t\t\t\t\t\n\n Value of X[]is \t\n\n\n"); printArray(X,6); // printf("Input New Sample %d\n\n::"); //scanf("%d",&X[0]); int ynew=0; for (i=0; i<N;i++) { ynew=ynew+H[i]*X[i]; Y[i]=ynew;

} printf("\t\t\t\t\t\t\t\n\n Value of X[]is \t\n\n\n"); printArray(X,6); printf("\t\t\n\n Value of H[]is \t\n\n\n"); printArray(H,6); printf("\t\t\n\n Value of Y[]is \t\n\n\n"); printArray(Y,6);

getch();}

Page 8: Matlab Code for Convolutin

Double FIFO

#include<stdio.h>#include<conio.h>

void printArray(int *array , int length) { int i; for(i=0; i<length;i++)

{ printf(" Value at %d is %d\t\t\n",i,array[i]); } }int main (int argc , char*argv[])

{clrscr();int N,N1,N2,M,i,y;N=7;//N1=N-1; N2=2*N-1;

int H[]={1, 2, 1, 1,4,3};int X[]={ 2,3,1,4,6,2,0,0,0,0,0,0};int Y[]={0,0,0,0,0,0,0,0,0,0,0,0};int input_sample, index=N;

printf("\t\t\t\t\t\t\t\n\n Value of X[]is \t\n\n\n"); printArray(X,sizeof(X)/sizeof(int)); // printf("Input New Sample %d\n\n::"); //scanf("%d",&X[0]); int ynew=0; for (i=0; i<N;i++) { ynew=ynew+H[i]*X[index-i]; // if(i>=0) //Y[i]=ynew;

} ; // update the index if nec

index = index+1; if (index >= 2*N) {

for (i=N-2; i>=0; i--)X[i+N+1]=X[i];

} index=N-1; printf("\t\t\t\t\t\t\t\n\n Value of X[]is \t\n\n\n"); printArray(X,sizeof(X)/sizeof(int));

Page 9: Matlab Code for Convolutin

printf("\t\t\n\n Value of H[]is \t\n\n\n"); printArray(H,sizeof(H)/sizeof(int)); printf("\t\t\n\n Value of Y[]is \t\n\n\n"); printArray(Y,sizeof(Y)/sizeof(int));

getch();

}

Circule Buffer FIFOinclude<stdio.h>#include<conio.h>

void printArray(int *array , int length) { int i; for(i=0; i<length;i++)

{ printf(" Value at %d is %d\t\t\n",i,array[i]); } }int main (int argc , char*argv[])

{clrscr();int N,N1,N2,M,i,y;N=8;//N1=N-1; N2=2*N-1;

int H[8]={1, 2, 1, 1, 4,3,1,1};int X[16]={ 2,3,1,4,6,2,0,0,0,0,0,0,0,0,0,0};int Y[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};int input_sample, index;//index=16;

printf("\t\t\t\t\t\t\t\n\n Value of X[]is \t\n\n\n"); printArray(X,6); // printf("Input New Sample %d\n\n::"); //scanf("%d",&X[0]); int ynew=0; for (i=0; i<N;i++) { if(index-i<0)

{ynew=ynew+H[i]*X[index-i+N];}else{ynew=ynew+H[i]*X[index-i];

Page 10: Matlab Code for Convolutin

}

Y[i]=ynew;

} // update the index if nec

index = (index+1)%N; /*if (index >= 2*N) {

for (i=N-2; i>=0; i--)X[i+N+1]=X[i];

} index=N-1; */ printf("\t\t\t\t\t\t\t\n\n Value of X[]is \t\n\n\n"); printArray(X,sizeof(X)/sizeof(int)); printf("\t\t\n\n Value of H[]is \t\n\n\n"); printArray(H,sizeof(H)/sizeof(int)); printf("\t\t\n\n Value of Y[]is \t\n\n\n"); printArray(Y,sizeof(Y)/sizeof(int));

getch(); }