Memory allocation of constants and statics in structure?
The compiler can't split the memory allocation for your struct between RAM and FLASH.
Any struct variables you create with that type will be located wherever you tell the compiler to put the entire struct, so:
IIR_FILTER  f1; will be in RAM, and
const IIR_FILTER  f2; will be in FLASH.  

However, if the struct is located in RAM (like f1 above), you compiler should give you an error if you try to assign a value to any member declared as const, so:
f1.b_coeff[0] = 5; should produce a compiler error, even though f1 is located in RAM.  

I'm assuming that the reason you would want to do something like this is to save on RAM usage.
A technique you could use which may work for you would be something like:  

typedef struct
{
    const _iq * const b_coeff;
    const _iq * const a_coeff;
    _iq w[NUM_OF_COEFF];
} IIR_FILTER;

const _iq b_coeff_const[NUM_OF_COEFF];
const _iq a_coeff_const[NUM_OF_COEFF];


and then when you declare the struct variable:
IIR_FILTER f1 = {.b_coeff = b_coeff_const, .a_coeff = a_coeff_const};  

This way you're only keeping the pointers to the arrays in RAM, while the arrays themselves are in FLASH.
Since C treats arrays and pointers pretty much the same, you can use the pointers as if they were arrays, but you'd lose any bounds-checking which your compiler may provide - so make sure you don't read past the end of the arrays.