# Filter Coefficients for Multi-Channel Filtering

## Butterworth Frequency Response, FIRFILTER Implementation

(Return to the Multi-Channel Filtering main page.)

A `FIRFILTER` response characteristic is defined by an array of filter coefficients that are convolved with the signal data — basically a sequence of multiply-and-add arithmetic operations. The magic lies in the choice of the coefficients. Here are coefficients that you can use.

Order Cutoff
(% Nyquist Limit)
Coefficients
3 5 ```vector bw_ord3cut5 word = ( 3, 4, 6, 7, 8, 10, 12, 13, 15, 16, 17, 18, 19, 19, 18, 17, 16, 13, 10, 6, 0, -6, -13, -21, -31, -41, -52, -63, -75, -87, -99, -110, -119, -127, -132, -134, -132, -125, -112, -92,-64,-26, 21, 79, 150, 234, 331, 443, 569, 709, 863, 1030, 1207, 1392, 1581, 1769, 1949, 2110, 2237, 2295, 2237, 2110, 1949, 1769, 1581, 1392, 1207, 1030, 863, 709, 569, 443, 331, 234, 150, 79, 21, -26, -64, -92, -112, -125, -132, -134, -132, -127, -119, -110, -99, -87, -75, -63, -52 ,-41, -31, -21, -13, -6, 0, 6, 10, 13, 16, 17, 18, 19, 19, 18, 17, 16, 15, 13, 12, 10, 8, 7, 6, 4, 3 )```
3 10 ```vector bw_ord3cut10 word = ( -1, -2, -2, -3, -4, -5, -5, -5, -4, -3, 0, 4, 8, 14, 20, 26, 32, 36, 38, 35, 27, 11, -11, -43, -81, -126, -174, -219, -254, -269, -250, -184, -53, 159, 468, 886, 1419, 2059, 2785, 3537, 4225, 4578, 4225, 3537, 2785, 2059, 1419, 886, 468, 159, -53, -184, -250, -269, -254, -219, -174, -126, -81, -43, -11, 11, 27, 35, 38, 36, 32, 26, 20, 14, 8, 4, 0, -3, -4, -5, -5, -5, -4, -3, -2, -2, -1 ```
3 15 ```vector bw_ord3cut15 word = ( 1, 1, 1, 1, 1, 0, -2, -4, -5, -7, -8, -6, -2, 5, 17, 30, 44, 54, 55, 40, 2, -64,-155, -261, -357,-403, -335, -80, 452, 1327, 2593, 4170, 5862, 6837, 5862, 4170, 2593, 1327, 452, -80, -335, -403, -357, -261, -155, -64, 2, 40, 55, 54, 44, 30, 17, 5, -2, -6, -8, -7, -5, -4, -2, 0, 1, 1 1, 1, 1 )```
3 20 ```vector bw_ord3cut20 word = ( 1, 1, 2, 1, 0, -3, -6, -10, -10, -5, 8, 27, 53, 72, 70, 22, -84, -254, -437, -539, -364, 313, 1780, 4104, 7113, 9058, 7113, 4104, 1780, 313, -364, -539, -437, -254, -84, 22, 70, 72, 53, 27, 8, -5, -10, -10, -6, -3, 0, 1, 2, 1, 1 )```
3 25 ```vector bw_ord3cut25 word = ( 1, -4, -8, -13, -8, 8, 44, 79, 94, 26, -150, -439, -655, -468, 766, 3519, 7976, 11231, 7976, 3519, 766, -468, -655, -439, -150, 26, 94, 79, 44, 8, -8, -13, -8, -4, 1 )```
Order Cutoff
(% Nyquist Limit)
Coefficients
4 5 ```vector bw_ord4cut5 word = ( -1, -2, -3, -3, -4, -5, -6, -7, -8, -9, -10, -10, -10, -10, -10, -9, -8, -7, -5, -3, -1, 2, 5, 9, 13, 17, 21, 25, 29, 33, 36, 39, 41, 43, 43, 42, 40, 37, 32, 25, 16, 6, -6, -20, -36, -53, -71, -89, -108, -127, -144, -160, -174, -185, -191, -192, -187, -174, -154, -124, -83, -32, 32, 108, 196, 298, 412, 539, 676, 823, 978, 1138, 1299, 1459, 1612, 1753, 1876, 1974, 2040, 2063, 2040, 1974, 1876, 1753, 1612, 1459, 1299, 1138, 978, 823, 676, 539, 412, 298, 196, 108, 32, -32, -83, -124, -154, -174, -187, -192, -191, -185, -174, -160, -144, -127, -108, -89, -71, -53, -36, -20, -6, 6, 16, 25, 32, 37, 40, 42, 43, 43, 41, 39, 36, 33, 29, 25, 21, 17, 13, 9, 5, 2, -1, -3, -5, -7, -8, -9, -10, -10, -10, -10, -10, -9, -8, -7, -6, -5, -4, -3, -3, -2, -1 )```
4 10 ```vector bw_ord4cut10 word = ( 1, 1, 2, 3, 4, 5, 5, 5, 4, 2, 0, -3, -7, -11, -15, -18, -20, -20, -19, -14, -7, 4, 18, 33, 50, 65, 78, 86, 85, 74, 50, 12, -41, -105, -178, -253, -321, -369, -384, -349, -247, -63, 215, 596, 1078, 1647, 2276, 2918, 3506, 3949, 4126, 3949, 3506, 2918, 2276, 1647, 1078, 596, 215, -63, -247, -349, -384, -369, -321, -253, -178, -105, -41, 12, 50, 74, 85, 86, 78, 65, 50, 33, 18, 4, -7, -14, -19, -20, -20, -18, -15, -11, -7, -3, 0, 2, 4, 5, 5, 5, 4, 3, 2, 1, 1 ) ```
4 15 ```vector bw_ord4cut15 word = ( -1, -1, -2, -2, -1, 0, 2, 4, 6, 7, 7, 5, 1, -5, -13, -22, -29, -31, -25, -10, 16, 50, 87, 117, 130, 110, 49, -61, -211, -380, -522, -576, -461, -95, 590, 1616, 2935, 4376, 5631, 6185, 5631, 4376, 2935, 1616, 590, -95, -461, -576, -522, -380, -211, -61, 49, 110, 130, 117, 87, 50, 16, -10, -25, -31, -29, -22, -13, -5, 1, 5, 7, 7, 6, 4, 2, 0, -1, -2, -2, -1, -1 )```
4 20 ```vector bw_ord4cut20 word = ( -1, -2, -2, -2, -1, 1, 5, 8, 10, 7, -1, -14, -29, -40, -37, -13, 35, 99, 156, 170, 99, -81, -357, -641, -768, -493, 430, 2157, 4548, 7020, 8237, 7020, 4548, 2157, 430, -493, -768, -641, -357, -81, 99, 170, 156, 99, 35, -13, -37, -40, -29, -14, -1, 7, 10, 8, 5, 1, -1, -2, -2, -2, -1 )```
4 25 ```vector bw_ord4cut25 word = ( -1, -2, -3, -2, 1, 7, 12, 11, -1, -22, -45, -49, -17, 63, 163, 217, 123, -178, -634, -952, -620, 987, 4109, 8079, 10275, 8079, 4109, 987, -620, -952, -634, -178, 123, 217, 163, 63, -17, -49, -45, -22, -1, 11, 12, 7, 1, -2, -3, -2, -1 ```
Order Cutoff
(% Nyquist Limit)
Coefficients
6 5 ```vector bw_ord6cut5 word = ( 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 13, 13, 12, 11, 10, 9, 7, 4, 1, -2, -5, -8, -12, -16, -19, -22, -26, -28, -31, -32, -33, -33, -33, -31, -28, -24, -19, -14, -7, 1, 9, 19, 28, 38, 47, 57, 65, 73, 80, 85, 88, 89, 88, 84, 77, 67, 54, 38, 19, -3, -27, -53, -81, -109, -138, -166, -192, -216, -236, -252, -261, -264, -258, -244, -219, -183, -136, -77, -6, 78, 174, 281, 398, 524, 658, 797, 939, 1082, 1222, 1356, 1482, 1596, 1695, 1776, 1835, 1872, 1885, 1872, 1835, 1776, 1695, 1596, 1482, 1356, 1222, 1082, 939, 797, 658, 524, 398, 281, 174, 78, -6, -77, -136, -183, -219, -244, -258, -264, -261, -252, -236, -216, -192, -166, -138, -109, -81, -53, -27, -3, 19, 38, 54, 67, 77, 84, 88, 89, 88, 85, 80, 73, 65, 57, 47, 38, 28, 19, 9, 1, -7, -14, -19, -24, -28, -31, -33, -33, -33, -32, -31, -28, -26, -22, -19, -16, -12, -8, -5, -2, 1, 4, 7, 9, 10, 11, 12, 13, 13, 13, 12, 11, 10, 9, 8, 7, 5, 4, 3, 1 ) ```
6 10 ```vector bw_ord6cut10 word = ( -1, -1, -2, -2, -2, -1, -1, 0, 1, 1, 2, 3, 4, 4, 4, 3, 3, 1, -1, -3, -5, -7, -9, -10, -10, -9, -7, -4, 0, 5, 11, 16, 21, 24, 26, 25, 20, 13, 3, -10, -24, -38, -51, -61, -66, -65, -56, -39, -13, 19, 56, 95, 131, 160, 176, 175, 153, 107, 37, -54, -162, -276, -385, -473, -523, -517, -438, -273, -11, 347, 796, 1316, 1878, 2444, 2965, 3390, 3671, 3769, 3671, 3390, 2965, 2444, 1878, 1316, 796, 347, -11, -273, -438, -517, -523, -473, -385, -276, -162, -54, 37, 107, 153, 175, 176, 160, 131, 95, 56, 19, -13, -39, -56, -65, -66, -61, -51, -38, -24, -10, 3, 13, 20, 25, 26, 24, 21, 16, 11, 5, 0, -4, -7, -9, -10, -10, -9, -7, -5, -3, -1, 1, 3, 3, 4, 4, 4, 3, 2, 1, 1, 0, -1, -1, -2, -2, -2, -1, -1 )```
6 15 ```vector bw_ord6cut15 word = ( -1, -2, -2, -2, -2, -1, 1, 3, 5, 6, 6, 5, 2, -2, -7, -12, -15, -15, -11, -3, 8, 20, 31, 38, 37, 26, 4, -25, -57, -85, -99, -92, -58, 3, 84, 170, 240, 267, 230, 113, -81, -328, -577, -755, -775, -550, -17, 842, 1974, 3245, 4447, 5327, 5654, 5327, 4447, 3245, 1974, 842, -17, -550, -775, -755, -577, -328, -81, 113, 230, 267, 240, 170, 84, 3, -58, -92, -99, -85, -57, -25, 4, 26, 37, 38, 31, 20, 8, -3, -11, -15, -15, -12, -7, -2, 2, 5, 6, 6, 5, 3, 1, -1, -2, -2, -2, -2, -1 )```
6 20 ```vector bw_ord6cut20 word = ( -1, -3, -3, -3, -1, 3, 6, 8, 7, 2, -5, -14, -20, -19, -8, 10, 32, 49, 49, 26, -19, -76, -122, -130, -78, 38, 189, 319, 350, 214, -108, -552, -946, -1034, -545, 695, 2632, 4887, 6780, 7538, 6780, 4887, 2632, 695, -545, -1034, -946, -552, -108, 214, 350, 319, 189, 38, -78, -130, -122, -76, -19, 26, 49, 49, 32, 10, -8, -19, -20, -14, -5, 2, 7, 8, 6, 3, -1, -3, -3, -3, -1 )```
6 25 ```vector bw_ord6cut25 word = ( 1, 0, -2, -4, -4, -1, 4, 9, 9, 3, -9, -22, -25, -10, 20, 52, 64, 33, -41, -128, -166, -97, 93, 327, 445, 268, -266, -962,-1320, -681, 1404, 4695, 7982, 9421, 7982, 4695, 1404, -681,-1320, -962, -266, 268, 445, 327, 93, -97, -166, -128, -41, 33, 64, 52, 20, -10, -25, -22, -9, 3, 9, 9, 4, -1, -4, -4, -2, 0, 1 )```
Order Cutoff
(% Nyquist Limit)
Coefficients
8 10 ```vector bw_ord8cut10 word = ( 1, 2, 2, 3, 3, 3, 3, 2, 1, 0, -1, -3, -4, -6, -6, -7, -6, -5, -3, -1, 2, 5, 8, 11, 12, 13, 12, 10, 7, 2, -4, -10, -16, -21, -25, -26, -25, -22, -15, -5, 6, 19, 31, 42, 50, 54, 52, 45, 32, 12, -11, -37, -63, -86, -103, -112, -110, -94, -66, -25, 25, 81, 138, 189, 227, 245, 238, 201, 133, 37, -84, -219, -356, -477, -567, -604, -572, -457, -249, 55, 449, 917, 1435, 1973, 2491, 2950, 3311, 3542, 3622, 3542, 3311, 2950, 2491, 1973, 1435, 917, 449, 55, -249, -457, -572, -604, -567, -477, -356, -219, -84, 37, 133, 201, 238, 245, 227, 189, 138, 81, 25, -25, -66, -94, -110, -112, -103, -86, -63, -37, -11, 12, 32, 45, 52, 54, 50, 42, 31, 19, 6, -5, -15, -22, -25, -26, -25, -21, -16, -10, -4, 2, 7, 10, 12, 13, 12, 11, 8, 5, 2, -1, -3, -5, -6, -7, -6, -6, -4, -3, -1, 0, 1, 2, 3, 3, 3, 3, 2, 2, 1 )```
8 15 ```vector bw_ord8cut15 word = ( 1, 1, 1, 1, 0, -1, -2, -2, -2, -2, -1, 1, 2, 4, 5, 5, 4, 1, -2, -5, -8, -10, -9, -6, -1, 6, 12, 18, 20, 17, 10, -1, -15, -28, -37, -39, -32, -15, 9, 37, 63, 79, 79, 59, 19 -36, -94, -144, -168, -156, -99, -2, 122, 247, 340, 367, 302, 133, -126, -432, -716, -889, -859, -547, 83, 1012, 2153, 3355, 4425, 5167, 5433, 5167, 4425, 3355, 2153, 1012, 83, -547, -859, -889, -716, -432, -126, 133, 302, 367, 340, 247, 122, -2, -99, -156, -168, -144, -94, -36, 19, 59, 79, 79, 63, 37, 9, -15, -32, -39, -37, -28, -15, -1, 10, 17, 20, 18, 12, 6, -1, -6, -9, -10, -8, -5, -2, 1, 4, 5, 5, 4, 2, 1, -1, -2, -2, -2, -2, -1, 0, 1, 1, 1, 1 ) ```
8 20 ```vector bw_ord8cut20 word = ( -1, -1, -1, 0, 1, 1, 2, 1, 0, -1, -2, -3, -3, -1, 2, 5, 6, 6, 3, -3, -9, -13, -12, -6, 5, 17, 25, 25, 14, -7, -32, -50, -51, -29, 12, 62, 100, 105, 63, -22, -126, -207, -219, -132, 50, 276, 453, 475, 267, -168, -711, -1133, -1145, -497, 897, 2871, 4981, 6622, 7244, 6622, 4981, 2871, 897, -497,-1145,-1133, -711, -168, 267, 475, 453, 276, 50, -132, -219, -207, -126, -22, 63, 105, 100, 62, 12, -29, -51, -50, -32, -7, 14, 25, 25, 17, 5, -6, -12, -13, -9, -3, 3, 6, 6, 5, 2, -1, -3, -3, -2, -1, 0, 1, 2, 1, 1, 0, -1, -1, -1 ) ```
8 25 ```vector bw_ord8cut25 word = ( 1, 2, 2, 1, -2, -4, -4, -1, 3, 7, 8, 3, -5, -14, -16, -8, 10, 27, 32, 17, -17, -53, -66, -37, 31, 105, 135, 79, -59, -215, -281, -165, 132, 472, 612, 334, -376, -1194, -1495, -622, 1687, 4931, 7862, 9055, 7862, 4931, 1687, -622, -1495, -1194, -376, 334, 612, 472, 132, -165, -281, -215, -59, 79, 135, 105, 31, -37, -66, -53, -17, 17, 32, 27, 10, -8, -16, -14, -5, 3, 8, 7, 3, -1, -4, -4, -2, 1, 2, 2, 1 )```
Order Cutoff
(% Nyquist Limit)
Coefficients
10 10 ```vector bw_ord10cut10 word = ( 1, 1, 2, 2, 3, 3, 3, 2, 1, 0, -1, -2, -3, -4, -5, -5, -4, -4, -2, -1, 1, 3, 5, 7, 8, 8, 8, 7, 4, 2, -2, -5, -9, -12, -14, -15, -14, -12, -8, -3, 3, 9, 15, 20, 24, 25, 25, 21, 15, 6, -4, -15, -26, -35, -42, -45, -44, -38, -26, -11, 7, 27, 47, 64, 76, 81, 79, 67, 47, 19, -15, -51, -87, -118, -141, -150, -145, -122, -83, -29, 37, 108, 177, 236, 277, 293, 277, 226, 140, 23, -117, -268, -415, -539, -622, -645, -592, -451, -217, 109, 518, 989, 1499, 2016, 2505, 2931, 3261, 3470, 3542, 3470, 3261, 2931, 2505, 2016, 1499, 989, 518, 109, -217, -451, -592, -645, -622, -539, -415, -268, -117, 23, 140, 226, 277, 293, 277, 236, 177, 108, 37, -29, -83, -122, -145, -150, -141, -118, -87, -51, -15, 19, 47, 67, 79, 81, 76, 64, 47, 27, 7, -11, -26, -38, -44, -45, -42, -35, -26, -15, -4, 6, 15, 21, 25, 25, 24, 20, 15, 9, 3, -3, -8, -12, -14, -15, -14, -12, -9, -5, -2, 2, 4, 7, 8, 8, 8, 7, 5, 3, 1, -1, -2, -4, -4, -5, -5, -4, -3 -2, -1, 0, 1, 2, 3, 3, 3, 2, 2, 1, 1 )```
10 15 ```vector bw_ord10cut15 word = ( -1, -1, -1, -1, 0, 0, 1, 1, 1, 1, 1, 1, 0, -1, -2, -2, -2, -2, -1, 1, 2, 4, 4, 4, 3, 0, -2, -5, -7, -7, -6, -4, 0, 5, 9, 12, 2, 10, 5, -3, -11, -18, -21, -21, -15, -5, 9, 23, 33, 38, 35, 22, 2, -23, -47, -63, -68, -56, -29, 11, 56, 95, 119, 118, 88, 29, -49, -131, -196, -226, -204, -124, 5, 161, 312, 415, 433, 339, 128, -175, -515, -809, -964, -889, -519, 164, 1121, 2249, 3399, 4396, 5073, 5313, 5073, 4396, 3399, 2249, 1121, 164, -519, -889, -964, -809, -515, -175, 128, 339, 433, 415, 312, 161, 5, -124, -204, -226, -196, -131, -49, 29, 88, 118, 119, 95, 56, 11, -29, -56, -68, -63, -47, -23, 2, 22, 35, 38, 33, 23, 9, -5, -15, -21, -21, -18, -11, -3, 5, 10, 12, 12, 9, 5, 0, -4, -6, -7, -7, -5, -2, 0, 3, 4, 4, 4, 2, 1, -1, -2, -2, -2, -2, -1, 0, 1, 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1 )```
10 20 ```vector bw_ord10cut20 word = ( 1, 2, 2, 1, -1, -2, -3, -3, -1, 1, 4, 5, 5, 3, -2, -6, -9, -9, -5, 2, 10, 16, 16, 9, -4, -18, -27, -28, -16, 5, 30, 48, 49, 29, -8, -52, -84, -88, -53, 14, 93, 152, 158, 95, -29, -174, -281, -290, -166, 74, 353, 554, 553, 280, -234, -830, -1245, -1185, -434, 1035, 2999, 5010, 6522, 7084, 6522, 5010, 2999, 1035, -434, -1185, -1245, -830, -234, 280, 553, 554, 353, 74, -166, -290, -281, -174, -29, 95, 158, 152, 93, 14, -53, -88, -84, -52, -8, 29, 49, 48, 30, 5, -16, -28, -27, -18, -4, 9, 16, 16, 10, 2, -5, -9, -9, -6, -2, 3, 5, 5, 4, 1, -1, -3, -3, -2, -1, 1, 2, 2, 1 )```
10 25 ```vector bw_ord10cut25 word = ( -1, -1, -1, -1, 1, 2, 2, 1, -1, -4, -4, -2, 2, 6, 7, 3, -4, -10, -12, -6, 6, 17, 21, 11, -9, -29, -36, -20, 15, 51, 63, 37, -24, -89, -113, -66, 43, 159, 203, 118, -82, -296, -374, -207, 180, 589, 722, 350, -480, -1348, -1573, -542, 1868, 5041, 7774, 8855, 7774, 5041, 1868, -542, -1573, -1348, -480, 350, 722, 589, 180, -207, -374, -296, -82, 118, 203, 159, 43, -66, -113, -89, -24, 37, 63, 51, 15, -20, -36, -29, -9, 11, 21, 17, 6, -6, -12, -10, -4, 3, 7, 6, 2, -2, -4, -4, -1, 1, 2, 2, 1, -1, -1, -1, -1 )```
Order Cutoff
(% Nyquist Limit)
Coefficients

Select the vector that defines filtering with an appropriate rolloff frequency and filter order.

Return to the Multi-Channel Filtering main page for information on how to apply these filter designs.