LPC, Chapter 12

download report

Transcript LPC, Chapter 12

Non-Linear Filter
Median of five or seven
Original signal
Median of seven
Moving average
Median Filter
• Definition:
– The middle value of an ordered list
– If there is no middle value, average the two middle values
• Median filter: Yn = medianm=0,M-1 {xn-m}
• Advantages
– Good edge preserving properties
– Preserves sharp discontinuities of significant length
– Eliminates outliers, without blurring the signal
• Applications
– The most effective algorithm to removes sudden impulse noise
– Remove outliers when smoothing a pitch contour
Characteristics: Median Filter
• Linearity
Fails: an * Mn + bn * Mn ≠ (an + bn) * Mn
Succeeds: α (an)*Mn = (α an)*Mn
Succeeds: An * Mn = bn, then An+k * Mn+k = bn+k
• Every output will match one of the inputs (if
the filter length is odd)
• Frequency response
• There is not a well-defined mathematical formula
• Must be determined experimentally
Double Smoothing
1.
2.
3.
4.
Apply a median filter (ex: five point)
Apply a linear filter (Ex: Hanning with values 0, ¼ , ½ , ¼, 0)
Recursively apply steps 1 and 2 to the filtered signal
Add the result of the recursive application back
Single Smoothing
Double Smoothing
Compare Median to Moving
Average Filter
Left: Moving Average, Right: Median
Correlation
Sometimes called a “Matched Filter”
Purpose: identify noisy, scaled, shifted target signal
Application: pitch, radar, edge detection, MRI
Implementation: reversed convolution
How identify similar signal?
• If signal is aligned, we sum the
values squared and y[n] will
contain a spike.
• Result will not resemble
original, but we are testing the
presence, not recreating or
altering.
Auto-correlation
Test if signal delayed i samples correlates with signal delayed j samples
public double autoCorrelate(double[] signal, int i, int j)
{
double sum = 0;
int N = signal.length;
for (int n=0; n<N; n++)
{ try
{ sum += signal[n-i] * signal[n-j]; }
catch (ArrayIndexOutOfBoundsException e) {}
}
return sum;
All-pass filter
Definition: Passes all frequencies
Note: magnitudes remains constant, but the phase and frequencies warped
• Pole of an all-phase filter lies inside the
unit circle and the matching zero is an
equal distance outside.
• The Z-domain magnitudes of the
matching poles and zeros cancel along
the unit circle
• They lie on the same radius line, but with
reciprocal magnitudes
• Example: Assume Pole at p0 = ½+½j
The pole magnitude = (¼+¼)1/2 = 1/2½
The zero magnitude = 2½
Zero z0 = 2½ cos 45 + j(2½ sin 45) = 1 + j
s
z0
r
Φ
p0
All-Pass Transfer Function
• First order all pass filter transfer function:
H(z) = B(z)/A(z)
= (z-1-me-jφ)/(1-1/me-jφz-1) = (z-1-λ)/(1-λz-1)
where m is the magnitude and φ the angle
• Higher order all pass transfer function
• The FIR and IIR coefficients are the same
All pass Filter Visualization
All-pass Filter Phase Response
• H(z) = B(z)/A(z) = (z-1-λ)/(1-λz-1)
2π
λ, controls the location of the
pole (p) and the zero (1/p)
• Notes: Figure to the right
– No phase shift at w = 0, π, 2π
– Phase response:
w+2arctan(λsin(w)/(1- λcos(w))
– π is the cross over point
λ= 0.8
w
2π
Frequency Warping
• Group delay
– Definition: change of phase with respect to change of
frequency
– Interpretation: Different frequencies pass through a filter
at different speeds. Therefore, a frequency warping
operation occurs
– Formula:
Where w is angle of original frequency, w’ is the angle of
the warped frequency, λ is the all-pass coefficient
2)sin(w)
(1λ
w’ = arctan
(1- λ2) cos(w) - 2λ
Illustration
Frequency Warped Mel Scale
Hearing sensitivity corresponds to a non-linear scale
Differentiators
Estimate slope of signal features
• Application: Variations in a adjacent frames of a speech
signal helps to identifies phonemes and syllable changes
• Simple Naïve filter: y[n] = x[n]-x[n-1]
• Central difference filter: y[n] = x[n+1] – x[n-1]
• Higher order differences: using 2M+1 filter coefficients
h(k) = -3k / (M(M+1)(2M+1)
– Example: M=2, then M*(M+1)*(2M+1) = 30
if k = -2, h(k) = -3(-2) / (30) = 0.2
if k = -1, h(k) = -3(-1) / (30) = 0.1
if k = 0, h(k) = -3(0) / (30) = 0
if k = 1, h(k) = -3(1) / (30) = -0.1
if k = 2, h(k) = -3(2) / (30) = -0.2
– Filter: h = { 0.2, 0.1, 0, -0.1, -0.2};
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
For some applications, the frequency response is not important
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
IFIR Filters
Interpolated Finite Response Filters
• FIR Filter Disadvantage: too many calculations
• Goal: Reduce the number of taps
• Process
– Create two filters (shaping, image reject) with less taps
– Apply the shaping filter, and then the mage reject filter
• Result: The number of total
calculations are greatly
reduced
The Shaping Filter
Prototype filter: Np = 9 coefficients
Expanded prototype filter: M = 3 and M(Np-1)+1 coefficients
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Original signal
Prototype filter
creates aliases
Low pass image reject
filter attenuates aliases
Resulting signal
Fpass is the end of the pass band fstop is the end of the stop band
Fir = 1/M – fstop is the end of the stop band of the image reject filter
Frequencies measured in percentage of sampling rate
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Designing an IFIR Filter
• General formula: number of taps
Ntaps = Attenuation in decibels
22(M)(fstop – fpass)
• Example: Attenuation 50 db, M = 7, fpass = 0.02, fstop = 0.03
• Taps for shaping filter (33)
Nshape = 50 / {22 (7)(0.03 – 0.02)} ≈ 32.4
• Taps for image reject filter (25)
Nir = 50 / {22 (1/7 – 0.03 – 0.02)} ≈ 24.5
• Taps for original filter (228)
Nfilter = 50 / (22)(.03 - .02) ≈ 227.3
An FIR filter of any length by truncating the window-sync at any length
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Sample Rate Conversion
• Application: Process speech in audio files
that were recorded at different rates
• Algorithm:
1. Find the greatest common denominator (GCD) of
both source and destination sample rates
2. Use the GCD to interpolate the source signal
3. Apply an appropriate low pass filter
4. Use the GCD to decimate the interpolated signal
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Two stage decimation is useful to reduce the taps and number of calculations
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Example
• Description
– Source signal sample rate = 22,050 hz
– Destination signal rate = 10000 hz
• Compute the Greatest Common Denominator
gcd(x,y) = gcd(x%y,y) = 50 // x>=y
• Compute resampling factors
10000/50 = 200 and 22050/50 = 441
• Interpolate source signal by destination factor
22,050 * 200 = 4,410,000
• Apply an appropriate FIR filter
• Decimate expanded signal by source factor
4,410,000 / 441 = 10,000
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Resampling Comments
• An filter with too wide of a transition band or with too
much pass band ripple will lead to bad results
• The decimation step causes aliases and needs to be
low pass filtered if the frequency band is too small
• Inserting lower tap filters in series are useful to
reduce the number of required steps
• We don’t need to create a huge array in the
interpolation step, but can apply a poly-phase filter to
the original signal, in combination with a ring buffer
(circular queue), and automatically extract the
appropriate outputs.
For each iteration, many of the calculations are zero, so
those can be skipped in the calculations
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.
If m is an even
multiple of the
destination signal,
append to the
output array.
Ring Buffer
Insert all outputs into a
ring buffer, length of the
filter taps, for future filter
calculations. A huge array
is not necessary.
Understanding Digital Signal Processing, Third Edition, Richard Lyons
(0-13-261480-4) © Pearson Education, 2011.