diff --git a/matlab/ita_dsp_design_filters.m b/matlab/ita_dsp_design_filters.m
new file mode 100644
index 0000000000000000000000000000000000000000..294141b0f108e1f7a35ae132c3d259b65e0eca37
--- /dev/null
+++ b/matlab/ita_dsp_design_filters.m
@@ -0,0 +1,18 @@
+
+Fs = 44100;
+
+Hd = ita_dsp_third_octave_filterbank_iir_lowpass_coefficients( Fs, 14.1 )
+ita_dsp_third_octave_filterbank_iir_band_coefficients( Fs, 14.1, 17.8 ) % 16 Hz band
+% ...
+ita_dsp_third_octave_filterbank_iir_highpass_coefficients( Fs, 17780 )
+
+%% Export to C/C++ header using std::vector
+
+copyfile( 'ITADSPThirdOctaveFilterbankCoefficients.proto.h', 'ITADSPThirdOctaveFilterbankCoefficients.h' );
+fd = fopen( 'ITADSPThirdOctaveFilterbankCoefficients.h', 'wt' );
+fseek( fd, '### stub code ###' );
+fprintf( fd, 'std::vector< float > vfITADSPThirdOctaveFilterbankCoefficients = {' );
+fprintf( fs, '%.9g', length( Hd.sosMatrix ), h( 1 ) );
+fprintf( fd, ',\n %.9g', h( 2:end ) );
+fprintf( fd, '};\n');
+fclose( fd );
diff --git a/matlab/ita_dsp_third_octave_filterbank_iir_band_coefficients.m b/matlab/ita_dsp_third_octave_filterbank_iir_band_coefficients.m
new file mode 100644
index 0000000000000000000000000000000000000000..87427cbc1c7ffe8743d41de39dd76a0b99c9230a
--- /dev/null
+++ b/matlab/ita_dsp_third_octave_filterbank_iir_band_coefficients.m
@@ -0,0 +1,9 @@
+function Hd = ita_dsp_third_octave_filterbank_iir_band_coefficients( Fs, Fc1, Fc2 )
+%ITA_DSP_THIRD_OCTAVE_FILTERBANK_IIR_COEFFICIENTS Returns a discrete-time filter object.
+%   Fs Sampling Frequency
+%   Fc1 First Cutoff Frequency
+%   Fc2 Second Cutoff Frequency
+
+N   = 10;     % Order
+h  = fdesign.bandpass('N,F3dB1,F3dB2', N, Fc1, Fc2, Fs);
+Hd = design(h, 'butter');
diff --git a/matlab/ita_dsp_third_octave_filterbank_iir_highpass_coefficients.m b/matlab/ita_dsp_third_octave_filterbank_iir_highpass_coefficients.m
new file mode 100644
index 0000000000000000000000000000000000000000..18398da9ff9b94371ccbba188bbf8d48f296492f
--- /dev/null
+++ b/matlab/ita_dsp_third_octave_filterbank_iir_highpass_coefficients.m
@@ -0,0 +1,8 @@
+function Hd = ita_dsp_third_octave_filterbank_iir_highpass_coefficients( Fs, Fc )
+%ITA_DSP_THIRD_OCTAVE_FILTERBANK_IIR_COEFFICIENTS Returns a discrete-time filter object.
+%   Fs Sampling Frequency
+%   Fc Cutoff Frequency
+
+N   = 10;     % Order
+h  = fdesign.highpass( 'N,F3dB', N, Fc, Fs );
+Hd = design( h, 'butter' );
diff --git a/matlab/ita_dsp_third_octave_filterbank_iir_lowpass_coefficients.m b/matlab/ita_dsp_third_octave_filterbank_iir_lowpass_coefficients.m
new file mode 100644
index 0000000000000000000000000000000000000000..2046017c365c093ab37d41bb0a2310f390d14fab
--- /dev/null
+++ b/matlab/ita_dsp_third_octave_filterbank_iir_lowpass_coefficients.m
@@ -0,0 +1,8 @@
+function Hd = ita_dsp_third_octave_filterbank_iir_lowpass_coefficients( Fs, Fc )
+%ITA_DSP_THIRD_OCTAVE_FILTERBANK_IIR_COEFFICIENTS Returns a discrete-time filter object.
+%   Fs Sampling Frequency
+%   Fc Cutoff Frequency
+
+N   = 10;     % Order
+h  = fdesign.lowpass( 'N,F3dB', N, Fc, Fs );
+Hd = design( h, 'butter' );