Solved
bandpass filter
Posted on September 26, 2017 at 02:05
Hello
I trying to build 14 Khz bandpass filter on stm32f103 any help will be appreciated.
Ted
Hello
I trying to build 14 Khz bandpass filter on stm32f103 any help will be appreciated.
Ted
I have this code but I don't know how to put it inside stm32f103.
Inn CMSIS-DSP library I didn't find any examples for bandpass filters./* Digital filter designed by mkfilter/mkshape/gencode A.J. Fisher Command line: /www/usr/fisher/helpers/mkfilter -Ch -8.0000000000e+01 -Bp -o 8 -a 5.4230769231e-02 5.5000000000e-02 -l */ #define NZEROS 16 #define NPOLES 16 #define GAIN 2.733054109e+10 static float xv[NZEROS+1], yv[NPOLES+1]; static void filterloop() { for (;;) { xv[0] = xv[1]; xv[1] = xv[2]; xv[2] = xv[3]; xv[3] = xv[4]; xv[4] = xv[5]; xv[5] = xv[6]; xv[6] = xv[7]; xv[7] = xv[8]; xv[8] = xv[9]; xv[9] = xv[10]; xv[10] = xv[11]; xv[11] = xv[12]; xv[12] = xv[13]; xv[13] = xv[14]; xv[14] = xv[15]; xv[15] = xv[16]; xv[16] = next input value / GAIN; yv[0] = yv[1]; yv[1] = yv[2]; yv[2] = yv[3]; yv[3] = yv[4]; yv[4] = yv[5]; yv[5] = yv[6]; yv[6] = yv[7]; yv[7] = yv[8]; yv[8] = yv[9]; yv[9] = yv[10]; yv[10] = yv[11]; yv[11] = yv[12]; yv[12] = yv[13]; yv[13] = yv[14]; yv[14] = yv[15]; yv[15] = yv[16]; yv[16] = (xv[0] + xv[16]) - 8 * (xv[2] + xv[14]) + 28 * (xv[4] + xv[12]) - 56 * (xv[6] + xv[10]) + 70 * xv[8] + ( -0.9999996903 * yv[0]) + ( 15.0671415160 * yv[1]) + (-107.3207279400 * yv[2]) + (479.5899447000 * yv[3]) + (-1504.6930028000 * yv[4]) + (3514.0764694000 * yv[5]) + (-6318.5794832000 * yv[6]) + (8922.2254164000 * yv[7]) + (-9998.7316198000 * yv[8]) + (8922.2257618000 * yv[9]) + (-6318.5799724000 * yv[10]) + (3514.0768775000 * yv[11]) + (-1504.6932358000 * yv[12]) + (479.5900375300 * yv[13]) + (-107.3207528700 * yv[14]) + ( 15.0671455990 * yv[15]); next output value = yv[16]; } }Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.