DSPTMS320F2812的convolve例程
时间: 2023-10-04 18:03:57 浏览: 128
下面是DSPTMS320F2812的convolve例程:
```c
#include "DSP281x_Device.h"
#include "DSP281x_Examples.h"
#define N 16
#define M 4
#pragma DATA_SECTION(h, "coefficients")
int h[M] = {3276, 6553, 3276, -6553};
#pragma DATA_SECTION(x, "input")
int x[N] = {0, 8192, 16384, 24576, 32768, 24576, 16384, 8192, 0, -8192, -16384, -24576, -32768, -24576, -16384, -8192};
#pragma DATA_SECTION(y, "output")
int y[N + M - 1];
void convolve(int *x, int *h, int *y, int nx, int nh)
{
int i, j;
for (i = 0; i < nx + nh - 1; i++)
{
y[i] = 0;
for (j = 0; j < nh; j++)
{
if (i - j >= 0 && i - j < nx)
{
y[i] += x[i - j] * h[j];
}
}
}
}
void main(void)
{
InitSysCtrl();
convolve(x, h, y, N, M);
while (1);
}
```
此例程定义了两个数组,h 和 x,分别代表卷积核和输入信号。在 convolve 函数中,进行卷积运算,并将结果存储在 y 数组中。最后,将 convolve 函数应用于输入信号和卷积核,并将结果存储在 y 数组中。在 main 函数中,调用 convolve 函数并等待程序结束。
阅读全文