Download presentation

Presentation is loading. Please wait.

Published byJohnny Goreham Modified over 2 years ago

1
Rank Ordered Mean Noise Blanker or Sliding Median Noise Blanker (or how NB2 works!) Phil Harman VK6APH

2
The Problem

3
Conventiona l (Analogue) Solutions Noise Clipper Noise Blanker

4
A DSP Solution

5
An image processing technique

6
Original Image Image + Impulse noise

7
Median Filtering Median Filtered Image Image + Impulse noise

8
How Median Filtering works

9
How Median Filtering works Record the values nearby 7, 9, 11, 12, 14, 15, 17, 18, 200 Sort (Rank) the values 7, 9, 11, 12, 14, 15, 17, 18, 200 The median is the middle of a distribution: half the scores are above the median and half below*. 7, 9, 11, 12, 14, 15, 17, 18, 200 The median is much less sensitive to extreme values and makes it a better measure than the mean for highly skewed distributions e.g. the mean is 34 * For an even number of values use the average of centre values

10
Median Filtering Example

11

12

13
Median Filtering Example - recap Look for samples that are outside the norm Sort (Rank) the samples either side in Order Calculate the median value Replace the suspect sample with the median Slide along to the next suspect sample and repeat Issues: –Processor intensive –Distortion if applied too aggressively –Only effective on impulse noise –Simpler technique gives equally good results.

14
Median Filtering Example Q. How do we detect suspect samples? A. Keep an average of all samples and look for samples that are greater than the average by some amount e.g. average = 0.999last_sample current_sample Code: If sample > (threshold x average) apply median filter

15
Pseudo Code for i < buffer_size mag = mag(signal,i) “median” = 0.75median (signal,i) average = 0.999average mag if mag > (threshold x average) (signal,i) = median next i

16
SDR1000 Code void SDROMnoiseblanker(NB nb) { int i; for (i = 0; i sigbuf); i++) { REAL cmag = Cmag(CXBdata(nb->sigbuf, i)); nb->average_sig = Cadd(Cscl(nb->average_sig, 0.75), Cscl(CXBdata(nb->sigbuf, i), 0.25)); nb->average_mag = * (nb->average_mag) * cmag; if (cmag > (nb->threshold * nb->average_mag)) CXBdata(nb->sigbuf, i) = nb->average_sig; }

17
Future Techniques Noise “Subtraction” (N4HY) –Detect the pulse –Determine what the receiver has done to it –Create a model of the pulse –Subtract the model from the signal –Completely linear process –If you get it wrong it will add a noise pulse!

18
Questions? Rank Order Mean (ROM) Noise Banker Sliding ROM Noise Blanker Median Impulse Reduction

Similar presentations

© 2016 SlidePlayer.com Inc.

All rights reserved.

Ads by Google