Skip to content

Memoryless nonlinearity functions for impulsive noise suppression

License

Notifications You must be signed in to change notification settings

ymtoo/MemorylessNonlinearities.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MemorylessNonlinearities

CI Coverage

This package implements a set of memoryless nonlinearity functions for impulsive noise suppression.

Usage

using MemorylessNonlinearities, Plots

x = -10:0.1:10

function plotnonlinearity(x, f, params; size=(800, 600))
    p = plot(size=size, legend=:outertopright)
    for param in params
        label = join([String(name) * "=$(p)" for (name, p) in zip(
                     fieldnames(f), param)], ",")
        plot!(p, x, minmaxrescale(filt(f(param...), x), -1.0, 1.0); 
              linewidth=2, label=label)
    end
    p
end

Arctangent

window

αs = 1:1:10
plotnonlinearity(x, Arctangent, αs)

window

Blanking

window

ks = 1:1:5
plotnonlinearity(x, Blanking, ks)

window

CauchyNL

window

ks = 1:1:5
plotnonlinearity(x, CauchyNL, ks)

window

Clipping

window

ks = 1:1:5
plotnonlinearity(x, Clipping, ks)

window

HampelThreePart

window

abcs = ((1, 2, 3), (2, 3, 4), (3, 4, 5))
plotnonlinearity(x, HampelThreePart, abcs)

window

SαSNL

Nonlinearity in locally optimal detectors based on IID SαS noise(approximated by 2D lookup table) window

αs = 1:0.2:2
plotnonlinearity(x, SαSNL, αs)

window

SoftClipping

window

ks = 1:1:5
plotnonlinearity(x, SoftClipping, ks)

window

TurkeyBiweight

window

ks = 1:1:5
plotnonlinearity(x, TurkeyBiweight, ks)

window

InverseHyperbolicSine

window

θs = 1:1:10
plotnonlinearity(x, InverseHyperbolicSine, θs)

window

Performance

Chirp signals with Symmetric α-Stable noise parameterized by α=1.5, scale=1.0, location=0.0 were simulated. The following nonlinear functions were applied to the simulated data to filter the noise.

Nonlinear Parameter
Arctangent α=1
Blanking k=3σ
CauchyNL k=3σ
Clipping k=σ
HampelThreePart a=3σ,b=4σ,c=5σ
SαSNL α=α',scale=c',location=δ'
SoftClipping k=σ
TurkeyBiweight k=3σ
InverseHyperbolicSine θ=σ

σ is median absolution deviation of the simulated data. a', c' and δ' are the estimated pararamters of IID Symmetric α-Stable distributions based on the simulated data. Root Mean Squared Errors (RMSEs) between the true chirp signals and filtered signals with respect to nonlinear functions and Generalizad Signal-to-Noise Ratios (GSNRs) are as follows.

include("perf/simulate.jl")

E, gsnrs, gs = simulate()
plot(gsnrs, 
     dropdims(sum(E, dims=1) / size(E, 1), dims=1); 
     linewidth=2,
     label=reshape(string.(first.(gs)), 1, length(gs)),
     size=(800, 600), 
     legend=:outertopright, 
     xlabel="GSNR",
     ylabel="RMSE")

window

About

Memoryless nonlinearity functions for impulsive noise suppression

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages