So last year, i was enrolled in a course in order to obtain my degree. course titled Signal Processing.
Description:Introduction to signal processing. Analogue signal processing. Signals and systems, and the characteristics of signals and systems. The different domains that continuous-time signals are represented in. Time-domain representation and analysis of continuous-time signals and systems (using convolution and ordinary differential equations), frequency-domain representation and analysis (Fourier series, Fourier Transform) and the Laplace Transform. Applications of signal processing; for example, the design of continuous-time filters
So for my final year project, The aim for the project was to introduce ourselves to discrete-time signal processing and help me understand that it is tightly linked with analogue (continuous-time) signal processing.
Discrete-time signal processing has been widely applied in the field of speech processing especially noise suppression. This project explores the application of digital filtering for noise suppression in speech. You will be required to design 4 types of low-pass Infinite Impulse Response (IIR) filters digitally, namely a Butterworth filter, a Chebychev Type I filter, a Chebychev Type II filter, and an Elliptic filter, using MATLAB.
All the source files and documentations are on the link below.
I concluded that the Butterworth filter functioned properly compared to the Chebychev Type I&II and Elliptic filter. As the Elliptic filter and Chebychev Type I&II always had some hissing noise in the background.
And also i had to amplify it by about 60dB's.
Below is the matlab command for Butterworth filter
% Butterworth lowpass filter based on the given specification
%Loading of Values
F_samp=44100; % Sampling frequency (Hz)
F_pass=2500; % Passband frequency (Hz)
F_stop=4000; % Stopband frequency (Hz)
Rs= 55 ; % Stopband ripple (dB)
Rp = 3; % Passband ripple (dB)
load projIB.mat % Noisy to be filtered
F_Nyg = F_samp/2; % Nyguist frequency (Hz)
wp= (pi*F_pass)/(F_Nyg*pi); % Normalized Passband frequency
ws= (pi*F_stop)/(F_Nyg*pi); % Normalized Stopband frequency
%Deteminign coefficients of the num and den of the H(s)
[b, a]=butter(k, Wk);
[k, Wk]= buttord(wp,ws,Rp,Rs);
% Determining the Magnitude responses of the filter in dB and linear scale
[magnitud,z]=freqz(b,a,256); %freq response
%Plot Noisy signal
title('Original Signal with Noise')
%Filtering process with Butterworth filter
FilterdNoise=filter(b,a,noisy)*(20*log10(1000));%Amplifying the filtered signal by 60dB
title('The Filtered Signal')
aud=audioplayer(FilterdNoise,fs); %Testing the noisy signal after filtering
%Filter Visualization tool:Manitude and Phase Response
%Magnitude Response in dB
plot(w,Hbutter_dB,'LineWidth',3) %plot gain in dB
title('Butterworth Lowpass Filter Magnitude (dB)')
%Magnitude Response in Linear Scale
title('Butterworth Lowpass Filter Magnitude Response (linear scale)')
%Plot the Group Delay
g_delay=grpdelay(b,a,256);%The group delay of a filter is a measure of the average delay of the filter as a function of frequency
ylabel('Group delay (samples)');
xlabel('Normalized Frequency ')
title ('Butterworth Group Delay')
%Poles and Zeros
title('Poles and Zeros')
%Plot the Impulse Response for first 100 samples