Low-Pass Digital Filtering From RapidSTM32
Low-Pass Digital Filtering From RapidSTM32
Low-Pass Digital Filtering From RapidSTM32
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Contents
1 Filter 2 Digital Filter 2.1 FIR Filter (Finite Impulse Response) 2.2 IIR Filter (Infinite Impulse Response) 3 IIR Filter 4 Types of Lowpass Filter 4.1 Butterworth filter 4.2 Chebyshev filter type 1 4.3 Chebyshev filter type 2 5 RapidSTM32 Lowpass Digital Filter Block 5.1 Filter Type 5.2 Biquad Filter Order 5.3 Decibels of peak-to-peak ripple 5.4 Cut-off Frequency fc 5.5 Filter coefficients b0 5.6 Filter coefficients A (denominator) 5.7 Filter coefficients B (numerator) 5.8 Sampling time in [sec] (-1 for inherited) 5.9 Scale factor for coefficients [b0 A B]
1 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
5.10 Data type 5.11 View filter response and save coefficients [b A B] to .mat file 6 Experiments 6.1 Experiment based on Simulink 6.1.1 Experiment1: Lowpass filtering corrupted by a fixed frequency modulating noise signal 6.1.2 Experiment2: Lowpass filtering corrupted by an adjustable frequency modulating noise signal 6.1.2.1 Spectrum analysis 6.1.2.2 Variable frequency 6.1.2.3 Simulation results 6.2 Experiment applied using RapidSTM32 Blockset 6.2.1 Filtering by RapidSTM32 Blockset 6.3 References
Filter
Filter is an important electronic device, which can change the amplitude and phase of signal in order to attenuate and eliminate some unwanted signals, including to recover from the destroyed signals through filtering. In general, filters can be classified by frequency-domain characteristics Figure 1.1 shows the frequency response <ref> John G. Proakis and Dimitris K. Manolakis, Digital Signal Processing: Principle, Algorithms, and Applications, 3rd ed., Prentice Hall, New Jersey, 1996. </ref> and transfer Function <ref> Richard G. Lyons, Understanding Digital Signal Processing, 2nd ed., Prentice Hall, New Jersey, 2004. </ref> of lowpass filter, highpass filter, bandpass filter and stopband filter.
Figure 1.1: Frequency response of lowpass filter (LPF), highpass filter (HPF), bandpass filter (BPF) and bandstop filter (BSF).
as follows: Lowpass Filter (LPF) allows low frequency signal passed through.
2 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Highpass Filter (HPF) allows high frequency signal passed through. Bandpass Filter (BPF) allows frequency range signal passed through. Bandstop Filter (BSF) does not allow frequency range signal passed through. Some applications of filters are as follows: an analog to digital convertor (ADC) is using a lowpass filter to eliminate signal contamination and to limit bandwidth range of signal. For example, in radio broadcast system, bandpass filters are used to select the desirable frequency. In amplifier system, many types of filters are used to separate the specific frequency signal sent through the speaker. Furthermore, there are two major types of filters as: Analog Filter that is an electronic RLC-circuit operating on the continuous-time signal. Digital Filter is performed either by an electronic RLC-circuit or functions in mathematics while operating on the discrete-time signal.
Digital Filter
In comparison with analog filters, digital filters also tend to be more limited in cost, bandwidth and significant implementation than analog filters. However, on the other hand, a digital filter performing by mathematical operations that is characterised easily in requirement, especially sharpness, without changing the electronic circuit. In the recent years, the limitation on hardware development has been reduced rapidly. Therefore, the digital filters are useful in variety applications. There are two categories of digital filters as follows.
3 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
The advantages of IIR filters as compared with the same order of FIR filters are that IIR filters have more sharpness with faster transition and lower passband ripple in frequency response than FIR filters. So, the lower order IIR filters are used and required the lower speed processor in practical. In addition to, IIR filters can be designed by a prototype analog filter.
IIR Filter
From Equation (1.2), the frequency response or system function of IIR filters are demonstrated in terms of the complex-valued z of z-transformation as follows. On expanding Equation (1.3), we have where are zeros of system. are pole of system. We note that the zeros and poles are either real number or complex number. is the filter order. From Equation (1.3), we can group zeros and poles in forming the second-order subsystem as Template:EquationRef1.5 Template:EquationRef1.6 Template:EquationRef1.7 where , is the filter order and is even. and is equal to , as shown in Equation (1.7). A high-order IIR system can be factored into a cascade of second-order subsystem, called Cascade of Second-order Subsystem. For example, the 6th-order lowpass filter consists of 3-cascade of second-order subsystems as shown in Equation (1.8) below. Template:EquationRef1.8 In case of the complex-valued coefficients, we can group together a pair of complex-conjugate zeros or poles to form a cascade of second-order subsystem. This implies that the coefficients are real. It is possible to implement in practical. Consequently, the low-order digital filters can be designed easily due to the tolerance in quantisation errors of its coefficients and the effects of finite-precision arithmetic that make them more stable in the system. Figure 1.2 (above) shows the cascade structure for each of second-order subsystems.
4 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Figure 1.2: (above)Cascade structure of second-order subsystems and (below) Block Diagram of each second-order subsystem.
Block diagram of second-order subsystem is shown in Figure 1.2 (below). The general form of each subsystem is described by the following set of equations below. Template:EquationRef1.9 Template:EquationRef1.10 Template:EquationRef1.11 Template:EquationRef1.12
Butterworth filter
Buterworth filter is designed to have a flat frequency response and a linear phase response. Furthermore, a maximally flat in the passband and roll-off towards zero in the stopband will require a high-order filter to implement a particular stopband specification.
5 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
6 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
7 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Figure 2.1: shows the following parameters of the RapidSTM32 Lowpass Digital Filter
RapidSTM32 lowpass digital filter block is developed as a digital lowpass filter shown in Figure 2.1 by the following parameters.
Filter Type
To specify the type of filter. Choose one of the following option as. butterworth: Butterworth Low-Pass Filter. cheby1: Chebyshev type 1 Low-Pass Filter. cheby2: Chebyshev type 2 Low-Pass Filter. custom: To enter the number of specified coefficients.
8 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
To determine the peak-to-peak ripple in dB in the stopband when selecting 'cheby2'. Note: The option is enabled if Filter type was selected for 'cheby1' and 'cheby2'.
Cut-off Frequency fc
To specify the cut-off frequency of lowpass filter. Example If , that means the sampling frequency is multiplied by , where . Note: This option is enabled if Filter type was selected for 'butterworth','cheby1', or 'cheby2'.
Filter coefficients b0
To specify the only one coefficient of , as shown in Equation (1.8). Note: This option is enabled if Filter type was selected for 'custom'.
9 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
data type. It causes easily the quantisation errors. In order to increase the precision in the filter coefficients, it is important to multiply by a constant. After that the result will be divided by a constant, when the calculation is done. Note: This option is enabled if Data type was selected for 'int32'.
Data type
There are three choices as follows. int32: To calculate using Integer Number. single: To calculate using Float Number. double: To calculate using Double Number, which is double-precision.
Experiments
There are two experiments. The first experiment is based on Simulink, whose purpose is to understand the concept and basic properties of lowpass digital filter. The second experiment is applied using RapidSTM32 Blockset.
10 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Experiment1 is a simple example to understand first how to filter the high-frequency signal using lowpass filter by Simulink model, as shown in Figure (3.1). 1. Using the 2-set of Sine Wave block, we assume that 1. The first Sine Wave block [Block: Sine Wave 01] that generates a sinusoidal message signal. (This signal can be generated using function sin) as given by: 2. Meanwhile, the second Sine Wave block [Block: Sine Wave 02] which generates a sinusoidal noise signal as follows: 2. A signal composed of a sum [Block: Add] of previous specified sinusoidal signals is sampled at a frequency of mHz [Block: Zero-Order Hold]. 3. Because of round-off effect from calculation with integer number, it is necessary to multiply by a constant; such as [: Gain1]. 4. A output signal is converted in form of integer number [: Data Conversion1]. 5. All parameters in lpdf block as shown in Figure 2.1[Block: RapidSTM32 Lowpass Digital Filter] are specified. 6. The filtered signal is converted to double-precision data type [Block: Data Conversion2 and then to multiply by a constant given above; such as[Gain2]. 7. Comparison the input and output of lpdf block is simulated using Scope block [Block: Scope02]. Note: If selecting Data Type with 'double' and 'single', there is no need to do Step 3, 4 and 6.
11 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Simulation result shows in Figure 3.2, where Figure 3.2 (above) depicts the input signal consists of the message signal and noise signal. Figure 3.2 (below) illustrates the output signal from lowpass digital filter similar to the input sinusoidal signal. It is noted that the noise signal can be eliminated compared with the input signal. However, the lowpass filtering does not work properly during the initial time. Next experiments, it can adjust the parameters of lpdf block in requirement.
12 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
(The red dotted frames inside show the necessary functions of Simulink Model and Matlab added as illustrated in Figure 3.3. Spectrum analysis Spectrum analysis is to compute and display the spectral density of signal that is a Spectrum Scope block in Toolbox Signal Processing. It is necessary to create the new block using the function 'spectrumscop.m'; by Scott Hirsch, that can download from http://www.mathworks.com/matlabcentral/fileexchange/4539-spectrum-scope Spectrum analysis consists of two main parts as follows. 1. The Function:buffer in Block:Embedded MATLAB Function 01 is used to shape the group of magnitude of signal in form of vector in order to convert by Fourier transform using the function 'fft.m', as shown below. function w = buffer(u,v) buffer_size = 256; w = zeros(buffer_size,1); w(1,1) = v; for i = [2:buffer_size] w(i,1) = u(i-1,1); end 2. The Function:SpectrumScope in Block:Embedded MATLAB Function 02 that refers the function 'spectrumscop.m', which is in the same folder with Simulink Model, as shown below. function y = SpectrumScope(u) eml.extrinsic('spectrumscope'); Fs = 1000; nFFT = 256; spectrumscope(Fs,nFFT); spectrumscope(u); y = 0; end
Variable frequency Figure 3.4 shows how to adjust the frequency using the slider and function 'slider.m'. These files are in the same folder with Simulink Model.
13 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Using the function 'slider.m', it is determined which block is controlled by the slider. For this experiment, the block Block:Sine Wave 02 is adjusted by the slider. To specify below 'Test_lpdf_Simulink_02/Sine Wave 02','Frequency' in the subfunction of 'slider.m ' as follows. function sld_Callback(hObject, eventdata, handles) % hObject handle to sld (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.edtCurrent,'String',num2str(get(hObject,'Value'))); set_param('Test_lpdf_Simulink_02/Sine Wave 02','Frequency',get(handles.edtCurrent,'String')) . . . function edtCurrent_Callback(hObject, eventdata, handles) % hObject handle to edtCurrent (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edtCurrent as text % str2double(get(hObject,'String')) returns contents of edtCurrent as a double set(handles.sld,'Value',str2double(get(hObject,'String'))); set_param('Test_lpdf_Simulink_02/Sine Wave 02','Frequency',get(handles.edtCurrent,'String')) . . . In addition to click at 'Launch Model Explorer', as shown in Figure 3.5. To click at 'Callbacks' in 'Model Properties' and to select at 'InitFcn'. After that, to type 'slider' in the frame 'Model initialization function' which determines to recall either 'Start Simulation' or 'slider.m'.
14 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Simulation results The simulation is starting when click 'Start Simulation' and all setting parameters are correct, the result is shown in Figure 3.6.
15 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Figure 3.6: Simulation results of Simulink Model, the windows of adjustable slider and the plot of spectrum
The window of slider in the left-hand side shows that can adjust the frequency of Block:Sine Wave 02. The window of Figure 1 in the right-hand side shows the spectrum of input signal which composed of a sum of two sinusoidal signals at two different frequency (See the detail in Figure 1 at the peak of spectrum of signal.) Furthermore, the signal from the adjustable waveform generator is similar to the noise signal. If it consists of the high frequency, it will be eliminated. And the spectrum of the output signal can be displayed by adjusting at 'Manual Switch'.
16 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
The second experiment is applied using RapidSTM32 Blockset. First, to create 'Simulink Block' shown in Figure 3.7 as follows. 1. Block: Setup System Clocks & SysTick, to choose the parameter 'SYSCLK setting' with Default as shown in Figure 3.8.
17 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Figure 3.8: All parameters determined in 'Setup System Clocks & Systick'
2. Block: Compile and Download Control, to set parameters as given in Figure 3.9.
18 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
3. Block: ADC Configuration, to set parameters for converting the analog signal to digital signal and to select the -th input channel, as shown in Figure 3.10.
19 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
4. Because of computation by integer number data type, Block: Data Conversion1, Gain1, Data Conversion2 and Gain2 are used the same condition with the experiment in Section 3.1. And if selecting 'Data Type' with double and single, it is not necessary to use these blocks. 5. To specify all parameters in 'Block: lpdf Block, as given in Figure 2.1. 6. Block: DAC Configuration, to set the parameters for converting the digital signal to analog signal and to select the -th output channel as shown in Figure 3.11.
20 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
7. Next step is to update diagram twice and to build model for transforming the Simulink Model to C-Language program and then download into 'RapidSTM32 Blockset'. 8. To install all measurements that consist of the Function Generator, Oscilloscope and 'RapidSTM32 Blockset' as shown in Figure 3.1 and to connect all pins of 'RapidSTM32 Blockset', as shown in Figure 3.12 and 3.13.
21 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Figure 3.12: RapidSTM32 Blockset shown the position of input and output signals
22 of 23
2/12/2014 7:33 AM
http://www.aimagin.com/learn/index.php/Low-Pass_Digital_Filtering
Figure 3.14 shows the simulation result that input signal composed of message signal and noise signal as shown in 'CH1' (channel1) of Oscilloscope and in 'CH2' (channel2) of Oscilloscope, it is illustrated the output signal of filter that is similar to the message sinusoidal signal without noise in the experiment based on Simulink, as shown in Figure 3.2. It is noted that noise signal can be eliminated.
References
<references /> This page was last modified on 22 September 2011, at 07:00. This page has been accessed 50,381 times. Privacy policy About RapidSTM32 Disclaimers
23 of 23
2/12/2014 7:33 AM