Water and rail infrastructure are one of the cornerstones of smart grids, such as smart cities. In them, algorithms are found everywhere.

Challenges in Water and Rail infrastructure

  • Many parts of the infrastructure are decades old and have high maintenance costs
  • Preventative maintenance of components (motor, chain, wiring, jackscrew, etc.) is required to reduce costs and maintain safety
  • Less service disruptions and customer complaints
  • No control of assets, and so no idea if assets are working properly
  • New analysis methods required, as existing infrastructure cannot be dismantled for installation of traditional sensors
  • Most of the infrastructure has been built when security was not an issue. This makes the infrastructure an easy target for hackers and terrorists

Decades old infrastructure

Many parts of the infrastructure are decades old. That’s also one of the reasons that they have high maintenance costs. Besides, regular maintenance consists of doing regular maintenance rounds. Here, every device gets the same attention. However, with preventative maintenance, you can focus on devices which really need it.

Less service disruptions and customer complaints

So, with preventative maintenance, you’ll not only reduce costs. But even more important: devices maintain to be safe for users. Due to timely recognition, you can plan maintenance before a little fault has led to real damage. So, you have less service disruption and more customer satisfaction.

No control of assets

Another challenge we hear is that companies have no control of assets, and so no idea if assets are working properly. Maybe companies have control of the assets they recognize. However, they have no idea if all devices are in scope and how these are connected.

New analysis methods required

The above-mentioned means that new analysis methods are required. However, the existing infrastructure cannot be dismantled for installation of traditional sensors.

Security of assets

Most of the infrastructure has been built when security was not an issue. This makes the infrastructure an easy target for hackers and terrorists

Find out how you can solve your IoT solutions with our algorithms!

Biomedical devices are one of the golden nuggets of IoT.

What are the challenges?

  •  Tightening of health system budgets
  •  Higher treatment costs due to an aging population
  •  Long patient waiting times
  •  Protection of patient medical data from hackers

Biomedical devices are one of the golden nuggets of IoT. The medical industry has the challenge that health system budgets are being tightened. This is further complicated by an aging population with higher life expectancy and higher demands for medical treatment. As a consequence, serving a population with an increasing aging population means that there will be longer patient waiting times and increased medical costs.
Smart medical devices are viable solution to facilitate this for many people, especially the elderly who greatly value their independence.

Exercises at home

A lot of time is lost travelling to therapy appointments, and for elderly people with limited mobility, this is not always possible. A much more efficient method is to allow patients to do their exercises at home. Smart sensors provide a simple way of ‘measuring if they do their exercises correctly’ and if they are on track for recovery. Patients don’t have to travel and spend hours sitting in a waiting room. The therapist just has to follow the patients’ developments and make an appointment when necessary. And at an appointment, the therapist can easily dive into details, because the patient has followed his recovery themselves. This frees up the therapists’ time, and allows them to focus on the patients with more serious injuries.


Meanwhile, there is the need for protection of patient medical data from hackers. Hospitals are an interesting target for terrorists and other evil-doers. That’s why prevention from being hacked is very important. And if you are being hacked, then you want to know as soon as possible, so you can take action in time, before a hacker has caused any serious damage.

In the IoT of medical devices, algorithms play an important role. Use our algorithms to filter and analyse your ECG and EMG signals. Read more about help with your challenges: https://www.advsolned.com/biomedical/

How to reduce maintenance programme costs, improve safety and improve customer satisfaction? In Preventive maintenance, algorithms are used in many ways to solve their challenges.

What are the challenges?

Typical challenges faced by assets managers include:

  • Measurement of mechanical component fatigue
  • Assess electrical wiring health
  • How to reduce overall operating costs, but not comprise on public safety?
  • Risks posed by hackers & terrorists
  • Asset damage due to vandalism

Preventive Maintenance aims to solve these problems by acting beforehand. This is achieved by constantly monitoring the performance of critical components (usually with sensors). So, the maintenance team can be alerted that a component is about to fail. Then, the asset management team can then schedule maintenance in order to replace the failing component(s) with minimum disruption to the public, and overall lower operational costs.

Reduction of operating costs

Preventive maintenance is one of the golden nuggets of IoT. In IoT, algorithms are found everywhere. Sensors can measure if mechanical component fatigue sets in. Or measure the health of electrical wiring. These are some examples how preventive maintenance can benefit from IoT using sensors. As a result, operation costs are reduced. And even more important: devices will work safe and secure.


Besides, most devices have been built while security was not an issue. With everything being connected, IoT devices are a interesting target for terrorists or other evil-doers. Prevent yourself from being hacked. And if you are being hacked, you know as soon as possible. So you can take action before the hack leads to major damage.

Read more at https://www.advsolned.com/preventative-maintenance/

Op het KPN Event van 12 september 2019 stond samenwerking centraal. In het bijzonder ten aanzien van 5GDe komende industriële revolutie is onlosmakelijk verbonden met 5G. 

“Met OEM partners zoals Advanced Solutions Nederland, Alcochem, ExRobotics, Semiotic Labs Topcon Agriculture en enkele tientallen start-ups wordt nauw samengewerkt. Het 5G-ecosysteem vereist samenwerking en openheid naar partners. De nieuwe benadering van de zakelijke markt is voor KPN al realiteit. Paul Cobben, sector developer manufacturing bij KPN, besluit: ‘KPN is actief in Smart Industry, in diverse fieldlabs. We geven graag samen met de maakindustrie invulling aan wireless factories en de use cases die dit mogelijk maakt. Daarmee is KPN een echte ‘enabler’ voor de smart industry en kunnen we onze klanten concreet ondersteunen bij hun digitale transformatie.'” Lees het verslag op de KPN site:


There is an increasing use of the water infrastructure, while the current demand is already adjacent to the existing capacity. However, space for physical expansion is limited. On the other hand, there is a tightening of budgets, while maintenance of water infrastructure comes with high costs.

Huge cost savings as well as reducing public inconvenience can be achieved with a preventative maintenance program. Benefits of a preventive maintenance program are:

  • A longer lifetime for your equipment with preventive maintenance
  • Be in control and optimize your processes
  • Optimize your just-in-time management and get more value by delivering guarantees
  • Increase security for your cargo and your equipment

Struggle with the elements

Working at water is a struggle with the elements: water, wind, dust, heat, pressure. So, you want to know if pipelines are going to leak before they are actually leaking. When cables are beginning to wear out. If the oil is still on the right level. That you can act when dust or smear are blocking lenses. With IoT, you can predict and prevent equipment failure by monitoring product wear and replacement rates.  As such, you improve the reliability of your assets and reduce downtime. And if you recognize little faults, you can solve them easily before they have become big and expensive problems.


Another time- and money saver is the maintenance in the port: one of the worst enemies is rust. No wonder, that the in- and outside of the ship is painted very often. Even when there is no rust, ‘just in case’. It is better to place a rust sensor: it warns when there is rust and those places can be painted or otherwise maintained. And it makes sure spots are not forgotten. Even more: a rust sensor can track rust at places which are hardly reachable. An employee only has to go to this hard-to-reach part when it is really needed.

How preventive maintenance works

In essence, algorithms and analytics monitor sensor data. They look for deviations in a physical process’s normal operation. Examples are the wear and tear in a water sluice’s mechanical components, or even damaged wiring for the pump.

A sensor fusion algorithm merges data from different sensors. Associated analytics determine whether a component’s characteristic is normal for its age. Any deviations outside ‘normal operation’ are fed back to the master system as potential sources of failure.

Modern embedded processors, software frameworks and design tooling now allow engineers to apply advanced measurement concepts to smart factories as part of the I4.0 revolution.

In recent years, PM (predictive maintenance) of machines has received great attention, as factories look to maximise their production efficiency while at the same time retaining the invaluable skills of experienced foremen and production workers.

Traditionally, a foreman would walk around the shop floor and listen to the sounds a machine would make to get an idea of impending failure. With the advent of I4.0 technology, microphones, edge DSP algorithms and ML may now be employed in order to ‘listen’ to the sounds a machine makes and then make a classification and prediction.

One of the major challenges is how to make a computer hear like a human.

Physics of the human ear

An illustration of the human ear shown on the right. As seen, the basic task of the ear is to translate sound (air vibration) into electrical nerve impulses for the brain to interpret.

An illustration of the human ear shown on the right. As seen, the basic task of the ear is to translate sound (air vibration) into electrical nerve impulses for the brain to interpret.

How does it work?

The ear achieves this via three bones (Stapes, Incus and Malleus) that act as a mechanical amplifier for vibrations received at the eardrum. These amplified sounds are then passed onto the Cochlea via the Oval window (not shown). The Cochlea (shown in purple) is filled with a fluid that moves in response to the vibrations from the oval window. As the fluid moves, thousands of nerve endings are set into motion. These nerve endings transform sound vibrations into electrical impulses that travel along the auditory nerve fibres to the brain for analysis.

Modelling perceived sound

Due to complexity of the fluidic mechanical construction of the human auditory system, low and high frequencies are typically not discernible. Researchers over the years have found that humans are most perceptive to sounds in the 1-6kHz range, although this range varies according to the subject’s physical health.

This research led to the definition of a set of weighting curves: the so-called A, B, C and D weighting curves, which equalises a microphone’s frequency response. These weighting curves aim to bring the digital and physical worlds closer together by allowing a computerised microphone-based system to hear like a human.

The A-weighing curve is the most widely used as it is mandated by IEC-61672 to be fitted to all sound level meters. The B and D curves are hardly ever used, but C-weighting may be used for testing the impact of noise in telecoms systems.

The frequency response of the A-weighting curve is shown above, where it can be seen that sounds entering our ears are de-emphasised below 500Hz and are most perceptible between 0.5-6kHz. Notice that the curve is unspecified above 20kHz, as this exceeds the human hearing range.

ASN FilterScript

ASN’s FilterScript symbolic math scripting language offers designers the ability to take an analog filter transfer function and transform it to its digital equivalent with just a few lines of code.

The analog transfer functions of the A and C-weighting curves are given below:

\(H_A(s) \approx \displaystyle{7.39705×10^9 \cdot s^4 \over (s + 129.4)^2\quad(s + 676.7)\quad (s + 4636)\quad (s + 76655)^2}\)

\(H_C(s) \approx \displaystyle{5.91797×10^9 \cdot s^2\over(s + 129.4)^2\quad (s + 76655)^2}\)

These analog transfer functions may be transformed into their digital equivalents via the bilinear() function. However, notice that \(H_A(s) \) requires a significant amount of algebracic manipulation in order to extract the denominator cofficients in powers of \(s\).


A simple trick to perform polynomial multiplication is to use linear convolution, which is the same algebraic operation as multiplying two polynomials together. This may be easily performed via Filterscript’s conv() function, as follows:


As a simple example, the multiplication of \((s^2+2s+10)\) with \((s+5)\), would be defined as the following three lines of FilterScript code:


which yields, 1 7 20 50 or \((s^3+7s^2+20s+50)\)

For the A-weighting curve Laplace transfer function, the complete FilterScript code is given below:

ClearH1;  // clear primary filter from cascade

Main() // main loop

a={1, 129.4};
b={1, 676.7};
c={1, 4636};
d={1, 76655};

aa=conv(a,a); // polynomial multiplication


Nb = {0 ,0 , 1 ,0 ,0 , 0, 0}; // define numerator coefficients
G = 7.397e+09; // define gain

Ha = analogtf(Nb, Na, G, "symbolic");
Hd = bilinear(Ha,0, "symbolic");

Num = getnum(Hd);
Den = getden(Hd);
Gain = getgain(Hd)/computegain(Hd,1e3); // set gain to 0dB@1kHz

Frequency response of analog vs digital A-weighting filter for \(f_s=48kHz\). As seen, the digital equivalent magnitude response matches the ideal analog magnitude response very closely until \(6kHz\).

The ITU-R 486–4 weighting curve

Another weighting curve of interest is the ITU-R 486–4 weighting curve, developed by the BBC. Unlike the A-weighting filter, the ITU-R 468–4 curve describes subjective loudness for broadband stimuli. The main disadvantage of the A-weighting curve is that it underestimates the loudness judgement of real-world stimuli particularly in the frequency band from about 1–9 kHz.

Due to the precise definition of the 486–4 weighting curve, there is no analog transfer function available. Instead the standard provides a table of amplitudes and frequencies – see here. This specification may be directly entered into Filterscript’s firarb() function for designing a suitable FIR filter, as shown below:

ClearH1;  // clear primary filter from cascade

interface L = {10,400,10,250}; // filter order


// ITU-R 468 Weighting

A={-30,A};  //  specify arb response
F={0,F,fs/2};   //



Frequency response of an ITU-R 468-4 FIR filter designed with Filterscript’s firarb() function  for \(f_s=48kHz\)

As seen, FilterScript provides the designer with a very powerful symbolic scripting language for designing weighting curve filters. The following discussion now focuses on deployment of the A-weighting filter to an Arm based processor via the tool’s automatic code generator. The concepts and steps demonstrated below are equally valid for FIR filters.

Automatic code generation to Arm processor cores via CMSIS-DSP

The ASN Filter Designer’s automatic code generation engine facilitates the export of a designed filter to Cortex-M Arm based processors via the CMSIS-DSP software framework. The tool’s built-in analytics and help functions assist the designer in successfully configuring the design for deployment.

Before generating the code, the H2 filter (i.e. the filter designed in FilterScript) needs to be firstly re-optimised (transformed) to an H1 filter (main filter) structure for deployment. The options menu can be found under the P-Z tab in the main UI.

All floating point IIR filters designs must be based on Single Precision arithmetic and either a Direct Form I or Direct Form II Transposed filter structure. The Direct Form II Transposed structure is advocated for floating point implementation by virtue of its higher numerically accuracy.

Quantisation and filter structure settings can be found under the Q tab (as shown on the left). Setting Arithmetic to Single Precision and Structure to Direct Form II Transposed and clicking on the Apply button configures the IIR considered herein for the CMSIS-DSP software framework.

Select the Arm CMSIS-DSP framework from the selection box in the filter summary window:

The automatically generated C code based on the CMSIS-DSP framework for direct implementation on an Arm based Cortex-M processor is shown below:

As seen, the ASN Filter Designer’s automatic code generator generates all initialisation code, scaling and data structures needed to implement the A-weighting filter IIR filter via Arm’s CMSIS-DSP library.

ASN Filter Designer box
ASN Filter Designer Powerful DSP Platform

Energy companies have struggled for years with meeting demand with supply with society’s increasing demand for energy. This been made even more challenging with more people using electric vehicles and smart cities demanding more lighting.

Modern IoT sensors and smart grid solutions help energy companies and consumers improve and optimize the modern grid for the 21st century. But what does all the jargon really mean?


The UK National Grid recently experienced a major outage that left almost a million homes in the dark and forced trains to a standstill. The source of the blackout was traced back to two generators that failed, resulting in grid’s frequency falling below the critical 49.5Hz set by the regulator.

According to the media the UK blackout was triggered when the frequency slumped to 48.88Hz, which is well below the legal limits set by the regulatory agencies.

But what do these limits really mean?

Some background information

The energy grid frequency is 50Hz in Europe, 60Hz in the US. Japan has an unusual historical situation in that the East of the country runs on a European 50Hz system and the West of country runs on an American 60Hz system.

In all cases, in order to meet the energy requirements, several generators are needed to work in parallel and must be synchronised. Accurate frequency control is required to control the amount of power delivered by multiple generators in order to provide a stable power supply to consumers. The challenge for the energy companies is meeting the changes in supply and demand, since higher demand than supply will result in fall of frequency and vice versa.

Thus, the challenge for IoT sensors and algorithms is measuring the operating frequency and phase to a sufficient accuracy and adjusting the generators to meet the energy demand requirement at that particular time. But how?

A PMU (phase measurement unit) is typically used the measure and report back (typically 30-60 measurements per second) to the network operator what the actual frequency and phase of various points on the grid are. In order to synchronise the measurements, the PMU internal clocks are time synchronised via a GPS (global positioning system) unit, such that all reported frequency and phase measured across the grid are time aligned.

The frequency limits are shown below:

The challenge for energy managers

As seen above, the normal region in Europe is between 49.85 – 50.15Hz. If the generators exceed 50.15Hz (entering the orange region), there is too much energy and the generators need to be rolled back a little. If the frequency falls below 49.85Hz (also in the orange region), there is not enough energy to meet demand, and more energy is needed. In all cases, the frequency must never enter the red region, otherwise Blackouts will occur.

The energy company is legally obliged to keep the powerline frequency between 49.5 – 50.5Hz (± 1%). This is typically tracked to an accuracy of ± 1mHz resolution.


The UK blackout was triggered when the frequency slumped to 48.88Hz, which is well below the legal limits and in the blackout region. The damage to the UK economy has still yet to be determined, but National Grid UK should be considering adding extra redundancy safe guards in order restore public confidence.

Dips and swells tracking

Another common problem that occurs is that of energy dips, i.e. the voltage momentarily drops for a few cycles. Think about lights temporarily flickering in your house.

In factories running machinery, this usually occurs when a machine is started up, indicating imminent component failure. Swells are the opposite of dips, but are much less common.

ASN’s IoT sensor and algorithms play an essential role in keeping the grid healthy, as demonstrated in the video below.

5G’s claim of ultra-low latency, and suitability for real-time edge processing has created a fever of interest in the IoT market. But what does Real-time dataset analysis really mean for your IoT application?

It’s estimated that the global smart sensor market will have over 50 billion smart devices in 2020. All of these IoT smart sensors (temperature, pressure, gas, image, motion, loadcells) will be connected to Wifi, 5G, LoRa etc network services via embedded processors performing real-time signal processing on the captured datasets.

But there are a number of challenges….

IoT sensor measurement challenge

A common challenge is that many sensors used in these applications require a little bit of filtering in order to clean the measurement data in order to make it useful for analysis.

Let’s have a look at what sensor data really is…. All sensors produce measurement data. These measurement data contain two types of components:

  • Wanted components, i.e. information what we want to know
  • Unwanted components, measurement noise, 50/60Hz powerline interference, glitches etc – what we don’t want to know

Unwanted components degrade system performance and need to be removed.

So, how do we do it?

DSP means Digital Signal Processing and is a mathematical recipe (algorithm) that can be applied to IoT sensor measurement data in order to clean it and make it useful for analysis.

But that’s not all! DSP algorithms can also help in analysing data, producing more accurate results for decision making with ML (machine learning). They can also improve overall system performance with existing hardware (no need to redesign your hardware – a massive cost saving!), and can reduce the data sent off to the cloud by pre-analysing data and only sending what is necessary.

Do you have a practical example?

All analog sensor signals need to be sampled by a digital system in order to make them usable for analysis in the digital domain.  The choice of the sampling frequency is primarily goverend by the maximum frequency that needs to be analysed. But what are design rules?

Consider the following application for gas sensor measurement (see the figure below). The requirement is to determine the amplitude of the noisy sinusoid (shown in blue) in order to get an estimate of gas concentration, where the bigger amplitude, the more the gas concentration.

In order to clean the noisy sinusoid with a filtering algorithm (results shown in red), we first need to find what the frequency of the sinusoid is. The Nyquist sampling Theorem is used for determining this value, and states that,

the analog signal must be sampled at a least two times the maximum analog frequency component.

For our gas sensor, the frequency of the blue sinusoid is about 5Hz, so a minimum sampling frequency of 10Hz is required in order to perform valid analysis on the sampled dataset. However, many designers choose a value 10 times higher than Nyquist in order account for the effects of the noise component and not to be on the borderline of the Nyquist-sampling theorem.

The concept of sampling is demonstrated below:


What does Real-time really mean?

Many clients ask us to clarify what real-time really means.

Most people assume that an instant response to a button push or event means real-time. However, the reality is a little more complicated, as a real-time system means that the response is deterministic occurring within a known time frame. This could be seconds or even micro-seconds. In all cases, the response or action time is always known.

For the gas sensor discussed above, the sampling frequency must be constant in order to correctly follow the characteristics of the sinusoid. If the sampling rate varied over time, the sampled data wouldn’t match the design criteria of the algorithmic filtering blocks, and the data analysis would be invalid.

In recent years, much has been said about 5G’s potentially ultra-low latency, and suitability for real-time edge processing. Time will tell how far 5G’s low latency claim can be realised. However, latency in network/cloud services, means that no communication channel can be guaranteed to be real-time 100% of the time. This is further complicated by the requirement of meeting the Nyquist-sampling criteria for sampling analog sensors signals.

In light of all of these issues, our experience has shown that real-time sensor processing (especially for critical automotive or industrial control operations) should be performed at the edge on an embedded real-time processor for maximum reliability and safety.

Our close collaboration with leading technology companies, such as: Arm, Texas Instruments and KPN ensure that our 5G IoT solutions are built with the latest design paradigms using the best of today’s sensor and networking technology.

In ECG signal processing, the Removal of 50/60Hz powerline interference from delicate information rich ECG biomedical waveforms is a challenging task! The challenge is further complicated by adjusting for the effects of EMG, such as a patient limb/torso movement or even breathing. A traditional approach adopted by many is to use a 2nd order IIR notch filter:

\(\displaystyle H(z)=\frac{1-2cosw_oz^{-1}+z^{-2}}{1-2rcosw_oz^{-1}+r^2z^{-2}}\)

where, \(w_o=\frac{2\pi f_o}{fs}\) controls the centre frequency, \(f_o\) of the notch, and \(r=1-\frac{\pi BW}{fs}\) controls the bandwidth (-3dB point) of the notch.

What’s the challenge?

As seen above, \(H(z) \) is simple to implement, but the difficulty lies in finding an optimal value of \(r\), as a desirable sharp notch means that the poles are close to unit circle (see right).

In the presence of stationary interference, e.g. the patient is absolutely still and effects of breathing on the sensor data are minimal this may not be a problem.

However, when considering the effects of EMG on the captured waveform (a much more realistic situation), the IIR filter’s feedback (poles) causes ringing on the filtered waveform, as illustrated below:

Contaminated ECG with non-stationary 50Hz powerline interference (FIR filtering), ECG sigal processing, ECG DSP, ECG measurement

Contaminated ECG with non-stationary 50Hz powerline interference (IIR filtering)

As seen above, although a majority of the 50Hz powerline interference has been removed, there is still significant ringing around the main peaks (filtered output shown in red). This ringing is undesirable for many biomedical applications, as vital cardiac information such as the ST segment cannot be clearly analysed.

The frequency reponse of the IIR used to filter the above ECG data is shown below.

IIR notch filter frequency response, ECG signal processing, ECG DSP, ECG  measurement

IIR notch filter frequency response

Analysing the plot it can be seen that the filter’s group delay (or average delay) is non-linear but almost zero in the passbands, which means no distortion. The group delay at 50Hz rises to 15 samples, which is the source of the ringing – where the closer to poles are to unit circle the greater the group delay.

ASN FilterScript offers designers the notch() function, which is a direct implemention of H(z), as shown below:

ClearH1;  // clear primary filter from cascade
ShowH2DM;   // show DM on chart

interface BW={0.1,10,.1,1};


Num = getnum(Hd); // define numerator coefficients
Den = getden(Hd); // define denominator coefficients
Gain = getgain(Hd); // define gain

Savitzky-Golay FIR filters

A solution to the aforementioned mentioned ringing as well as noise reduction can be achieved by virtue of a Savitzky-Golay lowpass smoothing filter. These filters are FIR filters, and thus have no feedback coefficients and no ringing!

Savitzky-Golay (polynomial) smoothing filters or least-squares smoothing filters are generalizations of the FIR average filter that can better preserve the high-frequency content of the desired signal, at the expense of not removing as much noise as an FIR average. The particular formulation of Savitzky-Golay filters preserves various moment orders better than other smoothing methods, which tend to preserve peak widths and heights better than Savitzky-Golay. As such, Savitzky-Golay filters are very suitable for biomedical data, such as ECG datasets.

Eliminating the 50Hz powerline component

Designing an 18th order Savitzky-Golay filter with a 4th order polynomial fit (see the example code below), we obtain an FIR filter with a zero distribution as shown on the right. However, as we wish to eliminate the 50Hz component completely, the tool’s P-Z editor can be used to nudge a zero pair (shown in green) to exactly 50Hz.

The resulting frequency response is shown below, where it can be seen that there is notch at exactly 50Hz, and the group delay of 9 samples (shown in purple) is constant across the frequency band.

FIR  Savitzky-Golay filter frequency response, ECG signal processing, ECG DSP, ECG measurement

FIR  Savitzky-Golay filter frequency response

Passing the tainted ECG dataset through our tweaked Savitzky-Golay filter, and adjusting for the group delay we obtain:

Contaminated ECG with non-stationary 50Hz powerline interference (FIR filtering), ECG signal processing, ECG digital filter, ECG filter designa

Contaminated ECG with non-stationary 50Hz powerline interference (FIR filtering)

As seen, there are no signs of ringing and the ST segments are now clearly visible for analysis. Notice also how the filter (shown in red) has reduced the measurement noise, emphasising the practicality of Savitzky-Golay filter’s for biomedical signal processing.

A Savitzky-Golay may be designed and optimised in ASN FilterScript via the savgolay() function, as follows:

ClearH1;  // clear primary filter from cascade

interface L = {2, 50,2,24};
interface P = {2, 10,1,4};


Hd=savgolay(L,P,"numeric");  // Design Savitzky-Golay lowpass


This filter may now be deployed to variety of domains via the tool’s automatic code generator, enabling rapid deployment in Matlab, Python and embedded Arm Cortex-M devices.