\(\renewcommand\AA{\unicode{x212B}}\)
FFTSmooth v1¶
 
FFTSmooth dialog.¶
Warning
FFTSmooth is deprecated. Use FFTSmooth version 2 instead.
Summary¶
Performs smoothing of a spectrum using various filters.
Properties¶
| Name | Direction | Type | Default | Description | 
|---|---|---|---|---|
| InputWorkspace | Input | Mandatory | The name of the input workspace. | |
| OutputWorkspace | Output | Mandatory | The name of the output workspace. | |
| WorkspaceIndex | Input | number | 0 | Workspace index for smoothing | 
| Filter | Input | string | Zeroing | The type of the applied filter. Allowed values: [‘Zeroing’] | 
| Params | Input | string | The filter parameters | 
Description¶
FFTSmooth uses the FFT algorithm to create a Fourier transform of a spectrum, applies a filter to it and transforms it back. The filters remove higher frequencies from the spectrum which reduces the noise.
This version of the FFTSmooth algorithm has one filter:
Zeroing¶
- Filter: “Zeroing” 
- Params: “n” - an integer greater than 1 meaning that the Fourier coefficients with frequencies outside the 1/n of the original range will be set to zero. 
Usage¶
Example: Zeroing with Params=2
ws = CreateSampleWorkspace(function="Multiple Peaks",XMax=20,BinWidth=0.2,BankPixelWidth=1,NumBanks=1)
#add a bit of predictable noise
noiseAmp=0.1
noiseArray= []
for i in range(ws.blocksize()):
    noiseAmp = -noiseAmp
    noiseArray.append(noiseAmp)
for j in range(ws.getNumberHistograms()):
    ws.setY(j,ws.readY(j)+noiseArray)
wsSmooth = FFTSmooth(ws, Params='2', Version=1)
print("bin Orig  Smoothed")
for i in range (0,100,10):
    print("{}  {:.2f}  {:.2f}".format(i, ws.readY(0)[i], wsSmooth.readY(0)[i]))
 
Output:
bin Orig  Smoothed
0  0.20  0.30
10  0.20  0.30
20  0.37  0.47
30  10.20  10.30
40  0.37  0.47
50  0.20  0.30
60  8.20  8.30
70  0.20  0.30
80  0.20  0.30
90  0.20  0.30
Categories: AlgorithmIndex | Arithmetic\FFT | Transforms\Smoothing | Deprecated
Source¶
C++ header: FFTSmooth.h
C++ source: FFTSmooth.cpp
