You typedef subband_t
as a several MB large two dimensional array. That would require several MB of stack memory. Whether that works is a matter of quality of implementation. Does the program segfault for #define MAXSAMPLES 10
? Then that's your problem.
And note that
while (! feof(input_file)) { ... }
has never worked and never will because the EOF flag is only set after an input operation hit EOF. See the comp.lang.c FAQ.