Graphical User Interface Design of FIR Filter
Open Access Library Journal
2018, Volume 5, e4709
ISSN Online: 2333-9721
ISSN Print: 2333-9705
Myagmardorj Bayasgalan, Xiang-E Sun
College of Electronic & Information, Yangtze University, Jingzhou, China
How to cite this paper: Bayasgalan, M. and
Sun, X.-E. (2018) Graphical User Interface
Design of FIR Filter. Open Access Library
Journal, 5: e4709.
https://doi.org/10.4236/oalib.1104709
Received: June 4, 2018
Accepted: December 25, 2018
Published: December 28, 2018
Copyright © 2018 by authors and Open
Access Library Inc.
This work is licensed under the Creative
Commons Attribution International
License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
Open Access
Abstract
FIR digital filter is a stable linear phase filter. Relying on the powerful com-
puting power of MATLAB software and its GUI platform, this graduation
project has completed the GUI design and implementation of FIR digital fil-
ter through programming. Through the FIR filter to achieve the program, you
can design and implement a variety of amplitude characteristics of the FIR
digital filter, according to the user input filter design indicators, select the
corresponding filter design method (window function, frequency sampling
method) to design the corresponding filter. According to the different ampli-
tude characteristics, the parameters of the filter design parameters will change
accordingly; when the Kaiser window design filter is selected, the user is al-
lowed to input the stopband attenuation of the filter; when using the fre-
quency sampling method to design the filter, the user must input the filter
length and the transition zone sample value; when the parameter is entered
incorrectly, the system will prompt for an error message. GUI can also pro-
vide intuitive filter amplitude characteristics, phase characteristics and the
unit impulse response graphics to help users to confirm whether the design of
the filter meets the design specifications; by setting the global shortcut keys,
the user after all parameters and options is confirmed by the Shortcut keys to
achieve the rapid implementation of filter design.
Subject Areas
Computer Engineering
Keywords
MATLAB, GUI , FIR Digital Filter, Design and Implementation
1. Introduction
1.1. Introduction of Digital Filter
The digital filter is a discrete system, and it can do a series of mathematic
DOI: 10.4236/oalib.1104709 Dec. 28, 2018
1
Open Access Library Journal
M. Bayasgalan, X.-E. Sun
processing to the input signal, and therefore obtain the desired information from
the input signal. There are many kinds of digital filters, and also many different
ways to classify them [1]. According to their function, the FIR filters can be clas-
sified into four categories, which are lowpass filter, highpass filter, bandpass fil-
ter, and bandstop filter. According to the impulse response, there are usually two
types of digital filters, which are finite impulse response (FIR) filters and infinite
impulse response (IIR) filters. According to the formula above, if ai is always
zero, then it is a FIR filter. Otherwise, if there is at least one none-zero ai, then it
is an IIR filter. Usually, we need three basic arithmetic units to design a digital
filter, which are the adder, the delay, and the multiplier.
1.2. FIR Filter
The finite impulse response (FIR) filter is one of the most basic elements in a
digital signal processing system, and it can guarantee a strict linear phase fre-
quency characteristic with any kind of amplitude frequency characteristic. Be-
sides, the unit impulse response is finite; therefore, FIR filters are stable system.
Process of designing the FIR filter is as shown in Figure 1. The FIR filter has a
broad application in many fields, such as telecommunication, image processing,
and so on.
The system function of FIR filter is
= ∑
( )
H z
L
k
1
−
0
=
(
)
h k z
−
k
(1)
where L is the length of the filter, and
(
h k is the impulse response.
)
2. Methods of FIR Digital Filters
2.1. Window Function Method
We will design filters that meet our requirements based on our own ideas. In
general, we begin by studying the filter problem from the filter's frequency re-
sponse function Hd(w). Filter frequency response function expression can be
written
(
H w
d
)
∞
= ∑
n
=−∞
h n
d
( )e jwn
−
(2)
hd(n) is the unit impulse response of Hd(w). If we can know Hd(w) we can find
hd(n) through expression (20),
( )
h n
d
=
1
2π
π
−
π
∫
(
H w
d
)
e
jwn
w
d
(3)
If hd(n) can be known, the frequency response function of the filter can be
calculated by (1), and Z-transform can be used to find the system function.
In general, unit sample response hd(n) obtained from the above relation is in-
finite in duration, so it must be truncated at some point say n = M − 1 to yield
an FIR filter of length M (i.e. 0 to M − 1). This truncation of hd(n) to length M −
1 is same as multiplying hd(n) by the rectangular window defined as
2
Open Access Library Journal
DOI: 10.4236/oalib.1104709
M. Bayasgalan, X.-E. Sun
(4)
Figure 1. FIR filter design.
( )
w n
=
0
1
1
≤ ≤
−
0 otherwise
n M
Thus the unit sample response of the FIR filter becomes
( )
h n
=
0
≤ ≤
( )
( )
w n
hd n
( )
hd n
1
−
0 otherwise
n M
(5)
Now, the multiplication of the window function w(n) with hd(n) is equivalent
to convolution of Hd(w) with W(w), where W(w) is the frequency domain re-
presentation of the window function
)
(6)
(
W w
( )
w n
jwn
e
−
= ∑
M
1
−
n
0
=
Thus the convolution of Hd(w) with W(w) yields the frequency response of
the truncated FIR filter
(
H w
)
=
1
2π
π
−
π
∫
H v W w v w
−
d
( )
(
)
d
(7)
The frequency response can also be obtained using the following relation
(
H w
)
M
1
−
( )
h n
= ∑
n
=
0
−
jwn
e
(8)
DOI: 10.4236/oalib.1104709
3
Open Access Library Journal
M. Bayasgalan, X.-E. Sun
Thus the frequency response obtained by using (7) contains ripples in the
frequency domain. In order to reduce the ripples, instead of multiplying hd(n)
with a rectangular window w(n), hd(n) is multiplied with a window function that
contains a taper and decays toward zero gradually, instead of abruptly as it oc-
curs in a rectangular window. As multiplication of sequences hd(n) and w(n) in
time domain is equivalent to convolution of Hd(w) and W(w) in the frequency
domain, it has the effect of smoothing Hd(w).
The several effects of windowing the Fourier coefficients of the filter on the
result of the frequency response of the filter are as follows:
1) A major effect is that discontinuities in H(w) become transition bands be-
tween values on either side of the discontinuity.
2) The width of the transition bands depends on the width of the main lobe of
the frequency response of the window function, w(n) i.e. W(w).
3) Since the filter frequency response is obtained via a convolution relation, it
is clear that the resulting filters are never optimal in any sense.
4) As M (the length of the window function) increases, the mainlobe width of
W(w) is reduced which reduces the width of the transition band, but this also
introduces more ripple in the frequency response.
5) The window function eliminates the ringing effects at the bandedge and
does result in lower sidelobes at the expense of an increase in the width of the
transition band of the filter.
This article will introduce six typical window functions, which are Rectangle
Window, Bartlett Window, Hanning, Hamming, Blackman, Kaiser Window [2].
1) Rectangle Window
2) Bartlett Window
( )
W n
R
=
( )
R n
N
(9)
( )
W n
B
n
2
−
N
=
−
2
1
n
2
N
−
1
0
≤ ≤
n
0.5
(
N
−
)
1
0.5
(
N
)
1
− < ≤
n N
−
1
(10)
3) Hanning window
( )
W n
Hn
=
0.5 1 cos
−
n
2π
−
N
1
( )
R n
N
(11)
4) Hamming
5) Blackman
( )
W n
Hm
=
0.54 0.46cos
−
n
2π
−
N
1
( )
R n
N
(12)
( )
W n
Bl
=
0.42 0.5cos
−
n
2π
N
1
−
+
0.08cos
n
4π
N
1
−
( )
R n
N
(13)
Figure 2 shows the plots of the five classic windows in the time domain is:
4
Open Access Library Journal
DOI: 10.4236/oalib.1104709
M. Bayasgalan, X.-E. Sun
Figure 2. Plots of the five classic windows in the time domain.
6) Kaiser Window
The Kaiser window has some differences from the other five window functions.
The other five window functions are fixed at design time, so the sidelobe ampli-
tude is also fixed in each case. However, the parameters of the Kaiser window
can be adjusted, which is an optimized function.
( )
W n
k
=
(
)
β
)
(
α
I
I
0
0
, 0
≤ ≤
n N
1
− (14)
2.2. Frequency Sampling Method
In this method, the given frequency response is sampled at a set of equally
spaced frequencies to obtain N samples. Thus, sampling the continuous fre-
quency response Hd(w) at N points essentially gives us the N-point DFT of
Hd(2pnk/N).
Thus by using the IDFT formula, the filter coefficients can be calculated using
the following formula
( )
h n
N
= ∑
1
−
(
H k
1
N
n
=
0
−
(
j
2π
)
n N k
)
e
(15)
Now using the above N-point filter response, the continuous frequency re-
sponse is calculated as an interpolation of the sampled frequency response. The
approximation error would then be exactly zero at the sampling frequencies and
would be finite in frequencies between them. The smoother the frequency re-
sponse being approximated, the smaller will be the error of interpolation be-
tween the sample points [3] [4].
There are two different set of frequencies that can be used for taking the sam-
1
.
=
ples. One set of frequency samples are at
The other set of uniformly spaced frequency samples can be taken at
where
k N=
−
N
,
0,1,
fk
k
DOI: 10.4236/oalib.1104709
5
Open Access Library Journal
(
k
+
)1 2
N
for
fk
=
Merits of frequency sampling method
1) Unlike the window method, this technique can be used for any given mag-
−
0,1,
1
.
,
N
k
=
M. Bayasgalan, X.-E. Sun
nitude response.
2) This method is useful for the design of non-prototype filters where the de-
sired magnitude response can take any irregular shape. There are some disad-
vantages with this method i.e. the frequency response obtained by inter polation
is equal to the desired frequency response only at the sampled points. At the
other points, there will be a finite error present.
3. The Realization of Fir Filter with Matlab
a) The Merits of Matlab GUI
GUI is communication platform between user and computer. By using GUI,
user can conveniently communicate with Matlab program and control program.
Matlab offers ample GUI design instructions which make the realization of GUI
more convenient, intuitive and flexible [5].
FIR digital filter design needs to achieve the task
Since the FIR filter is designed in MATLAB GUI, we can design according to
FIR filter [6].
The process selectively designs filters. The tasks required to design the FIR filter
are as follows:
1) The filter selection box is fixed as FIR filter. The program can be developed
by follow-up personnel to design the IIR filter Wave device.
2) In the response characteristic selection of the filter, you can choose
low-pass filter, high-pass filter, band-pass filter Wave filter, band-rejection filter
and four filter response types.
3) Input the sampling frequency and the passband of the filter in the basic pa-
rameter input box of the filter. Frequency, filter stopband cutoff frequency,
passband attenuation, stopband attenuation and other design criteria.
4) There is an input parameter error alarm mechanism; when the parameter
input is not reasonable, it will pop up error input dialogue Box error message.
5) After selecting the response characteristics of the filter, three design me-
thods for designing FIR filters are selected: window function method, frequency
sampling method, and equal-ripple optimal approximation method.
6) When the choice of FIR filter window function design, you can choose rec-
tangular window, triangular window, Hanning window, Hamming window,
Blackman window, Kaiser window to design FIR filter; when the frequency sam-
pling method is selected, FIR filter needs to be provided with specified order and
transition sampling value; when selecting the equal ripple best approximation
method, it is necessary to provide passband attenuation and stopband attenua-
tion to design the FIR filter.
7) In the graphic display area, there are three coordinate axes. You can draw
three maps, respectively, the frequency response diagram, phase frequency re-
6
Open Access Library Journal
DOI: 10.4236/oalib.1104709
M. Bayasgalan, X.-E. Sun
sponse diagram and unit impulse response diagram.
8) The minimum order calculated by this method can be displayed above the
unit impulse response axis.
9) Each case has a default parameter settings and global shortcut response
when running in the UI interface by comparing and analyzing the amplitude
characteristics of the filter shown in Figure 1, the amplitude characteristics of w
on [0, 2π] can be found different.
b) GUI of FIR filter
The GUI implementation of FIR filter: However, when using MATLAB FIR
filter design, processes the data in [0,1]. The results of Window methods and
Frequency sampling method at different Filters are represented in figures. Fig-
ure 3 shows the realization of a low-pass filter rectangular window at the wf
(Sampling frequency = 10000 Hz), wp1 (Passband cut off frequency) = 3000 Hz,
ws 1 (Stopband cut off frequency) = 3300 Hz. Figure 4 shows the realization of a
high-pass filter Kaiser window at the (wf = 10000 Hz, wp1 = 3100 Hz, ws1 =
2600 Hz). Figure 5 shows the realization of a pass-band filter frequency sam-
pling method at the (T1 = 0.25, N = 60, wp1 = 3500 Hz, ws1 = 3000 Hz, as = 31
dB). Figure 6 shows the realization of a stop-band filter frequency sampling
method at the (T1 = 0.25, N=60, wp1 = 3000 Hz, ws1 = 3500 Hz, as = 29dB).
Analysis of the design features of the window function method:
When we use the window function method, we only need two parameters, one
is the basic frequency parameter of the filter, and the other is the selection of the
window function type. But in the design of Kaiser window, besides the above
parameters, we need to provide the value of stopband attenuation. So if you want
to fix the stopband attenuation value, you can design the FIR filter through the
Kaiser window. If you want to design a FIR filter using only the base frequency
parameters, you can use several other window functions, and we can choose the
most appropriate window function by comparing the passband attenuation, the
actual value of stopband attenuation and the value of the minimum order. After
changing the filter parameters, we can analyze which window function is the
best under the window function method in the same way.
Analysis of the design features of the frequency sampling method:
In the use of the frequency sampling method, three conditions are required.
One is the basic frequency parameter of the filter, the specified order value, and
the other is the given transition sampling value (a value between [0,1]). The in-
fluence of the filter on the stopband attenuation can be analyzed by adjusting the
order of the filter and the size of the transition sampling value, respectively, and
because of the characteristics of frequency sampling method, this method has
many advantages over window function method, so the frequency sampling
method rather than the window function method is generally chosen when the
computational quantity is not taken into account and the minimum order is not
required.
7
Open Access Library Journal
DOI: 10.4236/oalib.1104709
M. Bayasgalan, X.-E. Sun
Figure 3. Realization of a low-pass filter rectangular window (wp1 = 3000 Hz, ws1 = 3300
Hz, a s = 20 dB, minimum order 31).
Figure 4. Implementation of a high-pass filter Kaiser window (wp1 = 3100 Hz, ws1 =
2600 Hz, as = 60dB, minimum order 74).
4. Conclusions
The GUI realization of FIR filter was offered in the form of example in this pa-
per. The main idea of the research includes its characteristics of linear phase, two
methods of implementation and programming in MATLAB GUI.
The linear phase of the FIR filter can be further divided into the first type of
linear phase and the second type of linear phase. In the frequency domain, the
length N of the filter is combined to take the characteristics of even and odd
numbers. The filter is divided into four cases to discuss its frequency domain
characteristic. Next, the two methods of FIR digital filter implementation, and
the characteristics of each design method and the advantages and disadvantages
between them are analyzed in detail. The two design methods have been
8
Open Access Library Journal
DOI: 10.4236/oalib.1104709