94 IMPLEMENTATION OF DIGITAL FILTERS IN FPGA STRUCTURES Mózes Ferenc-Emil, Germán-Salló Zoltán Petru Maior University of Tirgu-Mureş mozes.ferenc.emil@gmail.com, zgerman@engineering.upm.ro ABSTRACT Filtering is the most common task in digital signal processing, when some particular parameters of the input signal are removed or modified and a new signal is obtained at the output. The most common filtering goal is to remove noise from a signal. Digital filtering deals with discrete sequences, their implementation require both soft and hard solutions. This work focuses on some useful methods to implement digital filters in reconfigurable hardware structures, as FPGAs. This paper presents FIR filters of different order and structures, and using the MathWorks® tools, shows how these structures can be mapped to the Xilinx® FPGA architecture. The implemented digital filters are evaluated through signal to noise ratio and root mean square error between the filtered and the noisy signal. Keywords: digital filter, FPGA, FIR filter 1. Introduction Filtering is a fundamental aspect of signal processing which performs direct manipulations on the frequency band of signals, removing undesirable parts as noise or extracting useful components. There are two main types of filter, analog and digital, they are very different in physical structure and function. An analog filter uses analog electronic circuits made up from components such as resistors, capacitors and operational amplifiers to produce the required filtering effect. A digital filter uses a digital processor to perform numerical calculations on sampled values of the signal. They can achieve better performance than analog filters (limited by the accuracy of their electronic components), can easily be changed without affecting the circuitry (hardware). An analog filter can only be changed by redesigning the filter circuit. Digital filters are build from three basic elements: an adder, a multiplier and a delay element and can be implemented using either a block diagram or a signal flow graph. Recently the Field Programmable Gate Arrays (FPGAs) became one of the most preferred platform for evaluating and implementing signal processing algorithms. They have special features, like embedded multipliers, dedicated DSP circuitry, scalability and re- configurability therefore they are one of the most attractive platforms for advanced signal processing algorithms [1, 6]. Some engineering tools like MATLAB have enabled the design of various digital filter structures in a faster and more accurate way with the possibility of implementation in FPGAs. The second part of this work presents briefly the most common digital filter structures and some possibilities to implement them. The proposed implementation and structures are shown in the third part. Experimental results obtained with different structures on test signal are presented in the fourth section. Finally, the conclusions show some possible directions for further work. 2. Digital filter realizations The Fourier transform theory says that the linear convolution of two sequences in the time domain is the same as multiplication of two corresponding spectral sequences in the frequency domain. Therefore filtering is in the multiplication of the signal spectrum by the frequency domain impulse response of the filter. Usually a digital filter is a simple discrete-time, discrete-amplitude convolver which performs a convolution of the time domain impulse response and the discrete (sampled) signal. There are two types of digital filters: a non-recursive (known as an FIR or Finite Impulse Response filter) and a recursive (named IIR or Infinite Impulse Response) filter [3, 4]. An FIR type has the output as a convolution between the input sequence and the impulse response of filter:  1 0 ) ( N k k n x k b n y (1) A large percentage of filters implemented in the digital domain are Finite Impulse Response (FIR) filters. These filters are used over a wide range of sample rates and are supported in terms of software tools, and FPGA IP cores. An FIR filter is usually