项目作者: ymtoo

项目描述 :
Memoryless nonlinearity functions for impulsive noise suppression
高级语言: Julia
项目地址: git://github.com/ymtoo/MemorylessNonlinearities.jl.git
创建时间: 2020-10-22T02:32:10Z
项目社区:https://github.com/ymtoo/MemorylessNonlinearities.jl

开源协议:MIT License

下载


MemorylessNonlinearities

CI
Coverage

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

Usage

  1. using MemorylessNonlinearities, Plots
  2. x = -10:0.1:10
  3. function plotnonlinearity(x, f, params; size=(800, 600))
  4. p = plot(size=size, legend=:outertopright)
  5. for param in params
  6. label = join([String(name) * "=$(p)" for (name, p) in zip(
  7. fieldnames(f), param)], ",")
  8. plot!(p, x, minmaxrescale(filt(f(param...), x), -1.0, 1.0);
  9. linewidth=2, label=label)
  10. end
  11. p
  12. end

Arctangent

window

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

window

Blanking

window

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

window

CauchyNL

window

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

window

Clipping

window

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

window

HampelThreePart

window

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

window

SαSNL

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

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

window

SoftClipping

window

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

window

TurkeyBiweight

window

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

window

InverseHyperbolicSine

window

  1. θs = 1:1:10
  2. 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.

  1. include("perf/simulate.jl")
  2. E, gsnrs, gs = simulate()
  3. plot(gsnrs,
  4. dropdims(sum(E, dims=1) / size(E, 1), dims=1);
  5. linewidth=2,
  6. label=reshape(string.(first.(gs)), 1, length(gs)),
  7. size=(800, 600),
  8. legend=:outertopright,
  9. xlabel="GSNR",
  10. ylabel="RMSE")

window