function bank=filt_bank(N,L,Fs,B)
% FILT_BANK	Filter bank generator
%		bank = FILT_BANK(N,L);
%			N	number of bands
%			L	length of each FIR filter
%			Fs	sampling frequency in Hz (default 8000)
%			B	width of each band in Hz (default 200)
%		Generates an LxN matrix
%		Each of the N columns contains an L-point FIR filters
%		The following parameters are specified within the function
%		so they'll be the same for both the analysis and synthesis
%		portions of the channel vocoder:

% Set defaults 
if nargin < 3
    Fs =8000;   % default sampling frequency in Hz
end
if nargin < 4
    B = 3600/N;    % default width of each band in Hz
end

start = B/2    % first center freq. in Hz

% preallocate output for speed
bank = zeros(L,N);

% Design a prototype lowpass filter . . .
% 	Choose the cutoff frequency to obtain a bandwidth of B.
% 	We suggest that you use a Kaiser window with beta = 3.
lpf = 
% Need to make it a column vector
lpf = lpf(:);

% Now, we have to shift the lowpass filter into a series of bandpass filters
% (See Problem Set 2, #1)
% First, we need to create a discrete-time vector t for argument to cosines.
% The length of t must equal the length of the lowpass filter (L), 
% and the spacing between the samples must be equal to 1/Fs.  
% Note that t must be a column vector.
t = [ . . . fill in here . . .];

% In loop, design filters for the remaining bands:
for i = 1:N

	% Compute desired center frequency from i, start and B
	cf = 

	% Shift lowpass prototype to center frequency  . . .
	% See (See Problem Set 2, #1)
	bank(:,i) = lpf .* cos(. . . fill in here . . .);

end
