Showing results for 
Search instead for 
Did you mean: 

filter out waviness

Hey there,


First of all I’m using LV 8.6.1 so anyone who is willing to help please post modified code for that version. Thanks for that.


Attached you’ll find a VI mend to filter waviness from roughness using a Gaussian filter as mentioned in industry standards.

I’m using a low cut off of 0.8mm and high cut off of 0.025mm, according to the same standards.

My profile has a very pronounced waviness with a pitch of about 1.33mm.

Looking at the filtered data, I’m wondering why the 1.33mm long wave isn’t attenuate more with a low cut off of 0.8mm. What am I doing wrong here?


Another question I have is the “window parameter” of the filter vi.

According to the help this is the standard deviation using a Gaussian window. But the standard deviation of what; my data?


Thanks for any help and or clarification.


0 Kudos
Message 1 of 10

Did I say something wrong, or ask something very stupid Smiley Sad


No one the slightest idea Smiley Sad

0 Kudos
Message 2 of 10

Hello Alain,


I am not sure I fully understand your VI.  Because your low cut off and high cut off are different from traditional time domain signal processing.

If I "translate" your setting to DSP area, fs = 200k Hz, fl = 1250 Hz, fh = 40k Hz, there is a pitch around 750Hz in the signal.

If you try to remove the pitch, you need a long filter, since it is closed to fl, compared with fs.

So you can increase the taps to attenuate the pitch.


For "window parameter" control, this is used in some types of windows.  For more info, please refer to Gaussian Window VI help.


Best Regards,


0 Kudos
Message 3 of 10

Hello Michael,


Thanks for your reaction, and efforts to do "DSP translation".

You got it all right 🙂

With a scan interval of 5µm low cut off of 0.8mm equals 1250Hz, high cut off of 0.025mm equals 40kHz and the 750Hz peal you find is about 1.33mm pitch on the measured object.

Those are standard cut off wavelengths used in roughness measurement, so I can't change them.

Was the output of your DSP equal to the red line in the VI?



Regarding the "window paramter" it indeed depends on the used window type. For a Gaussian window type the help says "standard deviation" with a default value of 0.2.

The StDev of my signal is 1.99. So, should I use 1.99 for the "window parameter" input or any multiple of that?



My concern is that the filter doesn't attenuate the low wavelength more.

Any idea what's used in roughness analysis software on the market for Standard Deviation of the Gaussian filter and number of taps for the FIR filter??

0 Kudos
Message 4 of 10

Hi Alain,


My output is the same as yours.   Actually I am reading the input of the FIR Window Filter VI and interpret the filter specification.


I know Window Parameter depending on the window type.  Since you are using Gaussian window, this parameter means standard deviation in designing the Gaussian Window.   It does not mean the stdDev of your input signal.


Your filter specification gives the fl and fh of passband.  However, your standard didn't give the stopband attenuation, which means how many dB of attenuation in the stopband.   And this is controlled by # of taps and standard deviation in Gaussian window case.


I post a VI snippet to show the frequency response of the filter.  You can change the # of taps and standard deviation to see the different frequency response.   I think you might want to set your attenuation goal first - what is your expectation of the pitch attenuation?   Then you can try the different combination of # of taps and stdDev to meet your goal.


Best Regards,




Window Filter.png

0 Kudos
Message 5 of 10

Thanks for your efforts on this Michael!

Attached you can find a picture with the transmission characteristic of the filter needed according to ASME & ISO standards.

Does this cover your "which means how many dB of attenuation in the stopband" mention?


The Excel file also shows that I need different setting for StDev & Taps to match the expected transmission characteristic of the filter.

I mean, StDev and Taps are almost ok for a lowpass & highpass filter with a cut off set to 0.8mm but those settings are completely wrong for a highpass filter with a cut off set to 0.25mm.

Does that mean that for each cut off value I need different settings for StDev & taps?

That also means that I can't use bandpass filter right ?!?


Anyone ever tried to filter roughness data according to ASME & ISO standards?

What filter did you use????

0 Kudos
Message 6 of 10

Hello Alain,


Before getting into further detail.


Is there a specific reason why you're only considering gaussian filters?


On which document/formula's are you basing your excel document?

Can you provide a link to that document?


Kind Regards,
Thierry C - CLA, CTA - Staff R&D Engineer, RF Semiconductor Test - National Instruments
If someone helped you, let them know. Mark as solved and/or give a kudo. 😉
0 Kudos
Message 7 of 10

Hi Thierry,


All is based on ISO 11562 standard.

I can't provide you that document since it's licensed.


But, maybe you can read as a start.


Thanks for your concern antway!


Best regards


0 Kudos
Message 8 of 10

Hello Alain,


I didn't receive a notification of this forum post.

Are you still encountering this problem?

Kind Regards,
Thierry C - CLA, CTA - Staff R&D Engineer, RF Semiconductor Test - National Instruments
If someone helped you, let them know. Mark as solved and/or give a kudo. 😉
0 Kudos
Message 9 of 10

Hi Thierry,


The problem is solved but not using standard "Convolution" VI from LabVIEW.

I mean, one can calculate the mean line of a surface using a weighting function.

The convolution between the surface profile and that weighting results in the mean line.

The subtraction of that mean prfiel from the measured profile returns the roughness.


I didn't investigate the reason why the Convolution vi from LabVIEW return wrong results, I wrote my own routine.

Before you ask, I used a commercial roughness software to compare my calculations 🙂


Best regards

0 Kudos
Message 10 of 10