Download presentation
Presentation is loading. Please wait.
Published byJohnny Goreham Modified over 9 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 71718 152009 121114
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
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 + 0.001current_sample Code: If sample > (threshold x average) apply median filter
15
Pseudo Code for i < buffer_size mag = mag(signal,i) “median” = 0.75median + 0.25(signal,i) average = 0.999average + 0.001mag 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 = 0.999 * (nb->average_mag) + 0.001 * 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
© 2024 SlidePlayer.com Inc.
All rights reserved.