Beim Lesen des Artikels über das Filtern habe ich eine seltsame Verwendung von .hDateien festgestellt - verwenden Sie diese zum Füllen von Koeffizientenarrays:
#define N 100 // filter order
float h[N] = { #include "f1.h" }; //insert coefficients of filter
float x[N];
float y[N];
short my_FIR(short sample_data)
{
float result = 0;
for ( int i = N - 2 ; i >= 0 ; i-- )
{
x[i + 1] = x[i];
y[i + 1] = y[i];
}
x[0] = (float)sample_data;
for (int k = 0; k < N; k++)
{
result = result + x[k]*h[k];
}
y[0] = result;
return ((short)result);
}
Ist es also üblich, float h[N] = { #include "f1.h" };diesen Weg zu verwenden?
f1.hWird möglicherweise von einem externen Tool generiert und als Eingabe für Ihr (kompiliertes) Programm verwendet. Es ist jedoch üblicher, dass die externen Tools eine vollständige Header-Datei generieren, z . B.float h[N] = { ... }im Innerenf1.h. Beispiel hier .