% bandlimit_audio.m % % applies a simple lowpass filter to imported .wav data and saves results back % into a .wav file Fs = 44100; % sampling rate of audio data N = 705600; % length of each audio sample cutoff = 88100; % cutoff sample for lowpass filter lowpass = [ones(cutoff,1); zeros(N-(2*cutoff),1); ones(cutoff,1)]; [in_file, in_path] = uigetfile('*.wav', 'Select Audio Input'); [out_file, out_path] = uiputfile('*.wav', 'Select Bandlimited Output File'); disp(['bandlimiting input signal to ' num2str((cutoff*Fs)/N) 'Hz...']); audio = wavread([in_path in_file],N); % import test audio result = ifft(fft(audio) .* [lowpass, lowpass]); % use simple lowpass filter disp('plotting bandlimited signal...'); plot(result); disp('writing bandlimited output file...'); wavwrite(result,Fs,[out_path out_file]); % write out bandlimited result disp('done.');