⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 concorr.c

📁 计算如序列x[k]={1,2,3,4,5}与序列h[k]={2,-2,3,5}的卷积本程序是和互相关的C源程序。
💻 C
字号:

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

#define Nx 5
#define Nh 3
#define Length  Nx+Nh-1


/*************计算两个序列的线性卷积*******************************/
void convolution(int x[Nx] , int h[Nh], int y[Length] )
{
int i,k;
for (k=0;k<=Length-1; k++) 
  {
int temp=0;
for(i=0; i<Nx; i++)
{ if ((k-i)>=0 && (k-i) <=Nh-1) 
        temp=temp+x[i]*h[k-i];
    }
     y[k]=temp;
}
}
/*****************计算两个序列x[k]和h[k]卷积的子程序**************/
 void correlation(int x[Nx], int h[Nh],int r[Length] )
{
int i,k,n; 
int temp;
for (k=0;k<=Length-1;k++) 
   {
       n=(Nh-1)-k;
       temp=0;
       
       for(i=0; i<Nx; i++)
       { 
          if ((n+i)>=0 && (n+i)<=(Nh-1))
                temp=temp+x[i]*h[n+i];
            
        }
    r[k]=temp;
   }
}


 /*************************************************************/
 
//以下是主程序部分 
  
  int x[Nx]={1,1,1,1,1};
  int h[Nh]={1,1,2};
  int y[Length];
  int r[Length];
void main()
{ 
int k;
 //调用卷积程序
convolution(x,h,y);
fprintf(stdout,"  convolution of x and h  is(y=):  " );
for(k=0;k<=Length-1;k++)
 fprintf(stdout,"%i  ",y[k]); fprintf(stdout,"\n  ");
 
 //调用相关程序
correlation(x,h,r);
fprintf(stdout,"correlation of x and h is(r=):  " );
for(k=0;k<=Length-1;k++)
 fprintf(stdout,"%i  ",r[k]);
 
 

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -