Вы находитесь на странице: 1из 99

MATLAB for Signal Processing

Ricardo A. Losada DSP Development The MathWorks, Inc. rlosada@mathworks.com www.mathworks.com

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

The MathWorks family of DSP products

MATLAB r
Filter Design Toolbox Signal Processing Toolbox Wavelet Toolbox MATLAB Link for Code Composer StudioTM

SIMULINK r
DSP Blockset Embedded Target for C6000TMDSP Platform

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Possible Signal Processing topics

Estimation theory/Spectral analysis Digital lter design Fixed-point ltering Adaptive ltering Wavelets Multirate signal processing
MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Topic to be covered

Practical aspects of FIR digital lter design Companion whitepaper available at: www.mathworks.com/matlabcentral File exchange Signal Processing Filter Design and Analysis Practical FIR Filter Design in MATLAB

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Why FIR lters

Simple robust way of obtaining digital lters Inherently stable when implemented nonrecursively Free of limit cycles when implemented nonrecursively Easy to attain linear phase Simple extensions to multirate and adaptive lters Some vendors (Xilinx) and specialized hardware only support FIR
MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Why FIR lters (continued)

Simple, widely available design algorithms exist to obtain digital lters with arbitrary magnitude response Low sensitivity to multiplication roundo errors and lter coecients variations

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

FIR lter drawbacks

Computationally expensive Somewhat brute-force approach Ex: Consider DVD-Audio. 6 channels at 96 kHz. Given an FIR lter with 100 taps implemented in direct-form this requires: 57.6 106 MACs per second.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Some possibilities to handle drawbacks

Frequency-domain implementation (FFT, Overlap-Add, OverlapSave) Multirate implementation Recursive implementation (CIC) Hardware aids (circular buering) Custom hardware (FPGA, ASIC)

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Ideal lowpass lter

Frequency domain: HLP(e ) = Time domain (impulse response): sin(cn) hLP[n] = , n < n < .
j

1, 0 c 0, c <

Since the impulse response is innite, any FIR lter will be non-ideal.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Key to FIR lter design

Find the best possible approximation to the ideal lter with a nite number of coecients.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Some terminology in FIR approximations

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Terminology continued

Filter Order N Passband-edge frequency p Stopband-edge frequency s Transition width = p s Cuto frequency c = (p + s)/2 Passband/stopband ripple E ( ) = Ha( ) HLP(ej ) = [0, p] [s, ]

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

FIR specications as viewed as angles of a triangle

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

FIR specications viewed as angles of a triangle (continued)

(E ( )) is a measure of the passband/stopband ripple.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

FIR specications viewed as angles of a triangle (continued)

Commonly used values of (E ( )) (E ( )) = E ( ) (E ( )) = E ( ) (E ( )) = E ( )


2 2

= max|E ( )|

|E ( )|2
1/p

p =

|E ( )|p

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

FIR specications viewed as angles of a triangle (continued)

A maximum of two angles of the triangle can be specied as design requirements. The remaining angle is given as a result of the design algorithm. If the value of any angle is changed, it will aect one or both of the other angles.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Simplest FIR design algorithm

The simplest FIR design algorithm is to truncate-delay-and-window the impulse response: sin(cn)) hW [n + M ] = w[n] , n In MATLAB: h = fir1(N,Wc,win); This algorithm only allows control over one of the angles in the triangle, namely the lter order.1
If a Kaiser window is used, it is possible to control the transition-width and the maximum ripple in lieu of control over the lter order. MATLAB for Signal Processing
Current Topics in Digital Signal Processing
1

M < n < M.

Optimal designs

Fixed N and Fixed and (E ( )) Fixed N and (E ( ))

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Optimal designs - Fixed N and

Optimal designs with xed N and will result in FIR lters with minimum (E ( )). (E ( )) = E ( ) (E ( )) = E ( )
2 2

Equiripple designs

Least-squares designs

Weights are used to allow for dierent ripples in the passband and the stopband.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Optimal designs - Fixed N and - Equiripple designs

Minimizing the maximum value of the ripple (minimax design) results in an even distribution of the ripples equiripple characteristic. Key advantage: No other (linear-phase) FIR lter with the same N and will have a smaller maximum deviation from the ideal lter. Use in situations when a maximum allowable passband ripple and a minimum allowable stopband attenuation are required.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Equiripple designs - example

N = 42 c = 0.4 = 0.06 br = remez(42,[0 0.37 0.43 1],[1 1 0 0]);

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Equiripple designs - example (continued)

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Optimal designs - Fixed N and - Least-squares designs

Equiripple lters have a small maximum ripple, but a large total ripple. Least-squares designs minimize the energy of the ripples, resulting in a small total error. Use in situations in which we want to attenuate the energy of a signal as much as possible.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Least-squares designs - example

N = 42 c = 0.4 = 0.06 bls = firls(42,[0 0.37 0.43 1],[1 1 0 0]); The stopband energy is given by 1 Esb = 2
MATLAB for Signal Processing

|Ha(ej )|2d
0.43

Current Topics in Digital Signal Processing

Least-squares designs - example

Esb is 1.7608e-004 in the equiripple case, 3.3106e-005 in the leastsquares case, and 6.1645e-005 for Kaiser win.
MATLAB for Signal Processing
Current Topics in Digital Signal Processing

Linear-phase as a constraint

Linear-phase FIR lters require symmetry or anti-symmetry of the coecients. As a result, of N = 2M + 1 coecients, only M are freely assignable. From this point of view, linear-phase imposes a constraint on the possible designs. By alleviating the linear-phase constraint, it is possible to obtain lters that are superior in some sense to linear-phase lters. However, in many applications (e.g. image processing, data transmission) linear-phase is a requirement.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Minimum-phase designs - Fixed N and

Minimum-phase equiripple designs with xed N and will have a smaller (E ( )) than comparable linear-phase designs. Minimum-phase designs are not completely unconstrained. Polynomial zeros must lie on or inside the unit circle. Use gremez to design minimum-phase equiripple lters. Use firminphase to nd the minimum-phase spectral factor of any linear-phase lter with nonnegative zero-phase response.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Minimum-phase designs - Example

bm = gremez(42,[0 0.37 0.43 1],[1 1 0 0],... [1 10],minphase);

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Nonlinear-phase designs - Fixed N and

With fully unconstrained designs, algorithms are much more complicated. There no longer is a unique optimal solution. Design algorithm can converge to one of several optimal solutions. Use firlpnorm to design nonlinear-phase lters with xed N and .

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Nonlinear-phase designs - example


blp = firlpnorm(42,[0 0.37 0.43 1],... [0 0.37 0.43 1],[1 1 0 0],[1 1 1.7 1.7); Converges to essentially the same lter as the minimum-phase design.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Nonlinear-phase designs - example 2

blp = firlpnorm(30,[0 .3 .45 1],... [0 0.37.45 1],[1 1 0 0],[1 1 10 10]); Converges to a totally dierent lter than the minimum-phase design. bm = gremez(30,[0 .3 .45 1],... [1 1 0 0],[1 100],minphase);

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Nonlinear-phase designs - Least-squares

firlpnorm can design lters optimized for norms others than . For example: b = firlpnorm(40,[0 .4 .45 1],[0 .4 .45 1],... [1 1 0 0],[1 1 10 10],[2 2]); b2 = firls(40,[0 .4 .45 1],[1 1 0 0],[1 20]);

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Nonlinear-phase least-squares example (continued)

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Nonlinear-phase designs - other p-norms

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Nonlinear-phase designs - advice

For equiripple designs use gremez with minphase option. For other norms, use firlpnorm. Linear-phase designs may be implemented more eciently in hardware by exploiting the symmetry in the coecients.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Optimal designs - Fixed (E ( )) and

Only for (E ( )) = E ( )

Optimal designs with xed (E ( )) and will result in FIR lters that meet the specs. with reduced lter order. The nonoptimal window-based designs are particularly poor performers when the peak passband and peak stopband ripples are dierent.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Fixed (E ( )) and - example

Design Specications Set 1. 1. Cuto frequency: 0.375 rad/sample 2. Transition width: 0.15 rad/sample 3. Maximum passband ripple: 0.008 4. Maximum stopband ripple: 0.0009

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Fixed (E ( )) and - example (continued)

b = gremez(minorder,[0 .3 .45 1],... [1 1 0 0],[.008 .0009]); The order turns out to be N = 37 for the equiripple case while a Kaiser-window design requires N = 50. The Kaiser-window design unnecessarily oversatises the pasband specs.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Fixed (E ( )) and - example (continued)

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Fixed (E ( )) and - Minimum-phase designs

As in the case of xed N and , if we are able to relax the linear-phase constraint, a minimum-phase lter can be designed that outperforms a similar linear-phase design. In the case of xed N and the minimum-phase design resulted in smaller ripples, in this case the result is a lter with fewer coecients.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Minimum-phase design example

As an example, consider the following specications set: Design Specications Set 2. 1. Cuto frequency: 0.13 rad/sample 2. Transition width: 0.02 rad/sample 3. Maximum passband ripple: 0.01 4. Maximum stopband ripple: 0.001

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Minimum-phase design example (continued)

A linear-phase design requires N = 262 whereas a minimum-phase design requires N = 216.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Optimal designs - Fixed N and (E ( ))

Optimal designs with xed N and resulted in FIR lters that meet the specs. with reduced (E ( )), while optimal designs with xed (E ( )) and resulted in FIR lters that meet the specs. with reduced lter order. Naturally, optimal designs with xed N and (E ( )) result in lters that meet the specs. with reduced .

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Optimal designs - Fixed N and (E ( )) (continued)

For optimal designs with xed N and (E ( )) use firceqrip. Ex: bc = firceqrip(50,0.375,[0.008 0.0009]);

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Fixed N and (E ( )) - Minimum-phase designs

As before, if we are able to relax the linear-phase constraint, a minimum-phase lter can be designed that outperforms a similar linear-phase design. In this case, the improvement is in a smaller transition width Ex: bc = firceqrip(50,0.375,[0.008 0.0009],min);

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Other equiripple designs

See paper for constrained-band equiripple designs and sloped equiripple designs. Sloped equiripple designs may provide a very good alternative to least-squares designs, because you can control the energy in the stopband by setting a decay slope while keeping the passband equiripple.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Interpolated FIR (IFIR) designs.

The IFIR design is a novel technique to design lters with very narrow transition widths with a very signicant reduction in the number of multipliers employed. Moreover, linear-phase is retained! The idea is two implement the lter as a cascade of two lters,

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Illustration of IFIR

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

IFIR example

For the design specications set 2, and using an interpolation factor of 6, it is possible to obtain a design that uses only 127 multipliers. This contrasts with 263 for the linear-phase case and 217 for the minimum-phase case. [bup,bimg]=ifir(6,low,[.12 .14],[.01 .001]); Hup=dfilt.dffir(bup); Himg = dfilt.dffir(bimg); fvtool(Hup,Himg,cascade(Hup,Himg))

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

IFIR example (continued)

The result is still not the best, because the passband ripples of the two lters add up in a rather chaotic manner, and the design must account for the worst-case scenario.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

IFIR optimizations - joint design

[bup,bimg]=ifir(6,low,[.12 .14],... [.01 .001],adv); Hup=dfilt.dffir(bup); Himg = dfilt.dffir(bimg); fvtool(Hup,Himg,cascade(Hup,Himg)) We are able to reduce the number of multipliers from 127 to 74.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Jointly optimized IFIR

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Jointly optimized IFIR - passband details

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Multirate techniques for ecient implementation

Key: If the lter you implement reduces the bandwidth of the input signal by a factor of 1/N , consider reducing the sampling rate of the output by a factor of N . Otherwise, any subsequent signal processing will include redundant information - unnecessary computation.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Multirate techniques for ecient implementation

Consider the following specs. Design Specications Set 3. 1. Cuto frequency: 0.25 rad/sample 2. Transition width: 0.04 rad/sample 3. Maximum passband ripple: 1 dB 4. Minimum stopband attenuatiom: 80 dB

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Multirate techniques for ecient implementation

Assume and input sampling frequency of 48 kHz. An elliptic IIR lter that meets the specs. requires 15 multiplications per sample or 720000 multiplications per second. A conventional equiripple design requires 132 multiplications per sample or 6336000 multiplications per second. A minimum-phase design requires 115 multiplications per sample or 5520000 multiplications per second.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Multirate techniques for ecient implementation

Expoliting the symmetry of the coecients in the linear-phase case requires 66 multiplications per sample or 3168000 multiplications per second. If we implement a polyphase decimator, we still have 132 multiplications per output sample, but only 1584000 multiplications per second because the output rate can be reduced to 12 kHz.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Multirate implementation of IFIR

Denote by I (z ) the image suppressor lter and by U (z L) the upsampled lter, we would have a cascade of these two lters and a downsampler:

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Multirate implementation of IFIR (continued)

Using the Noble identities, we can commute the downsampler and U (z L) to obtain the implementation below. The combination of I (z ) and the downsampler form a decimator which can be implemented eciently in polyphase form.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Multirate implementation of IFIR example

For the same specications 3, and using the multirate implementation just described, it is possible to implement an IFIR lter with 83 multiplications per output sample or 996000 multiplications per second (using L = 3). If we exploit the symmetry in coecients of the upsampeld lter, the number can be reduced to 60 multiplications per output sample or 720000 multiplications per second (same as elliptic lter).

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Design of interpolation lters

In the signal processing realm, interpolation usually refers to bandlimited interpolation. The central idea is that there exists an underlying continuous-time signal. The interpolation lter is used to digitally compute missing samples from the continuous-time signal. The ideal band-limited interpolation lter is a lowpass lter.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Ideal interpolation lter in the frequency domain

Consider a band-limited analog signal

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Ideal interpolation lter in the frequency domain

Spectrum of critically sampled signal, fs = 2fmax:

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Ideal interpolation lter in the frequency domain

Spectrum of oversampled signal, fs = 4fmax:

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Ideal interpolation lter in the frequency domain

Ideal interpolation lter:

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Ideal interpolation lter in the frequency domain

For the general case of interpolation by a factor of L, the frequency response of the ideal interpolation lter is given by L, 0, |f |
fs 2 fs 2 fs 2

HD (e2jf /fs ) =

< |f |

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Ideal interpolation lter in the frequency domain

The corresponding impulse response is: L sin(fsT m) hD [m] = , fs T m < m <


1 Lfs

If we use the fact that fs = 1/T and T = sin(m/L) hD [m] = , m/L

we have

< m <

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Ideal interpolation lter in the time domain

Interpolation is inherently noncausal, ideally, we fractionally advance the signal to compute the missing samples:

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Ideal interpolation lter in the time domain

In general, the ideal interpolator consists of a bank of L lters which will fractionally advance the input signal by a factor k/L, k = 0, . . . , L 1. The outputs of the lters are then interleaved (i.e. only one lter needs to operate per high rate output sample) to produce the interpolated signal. The L lters that comprise the lter bank are the fractional advance lters Hk (z ), Hk (z ) = z k/L, k = 0, . . . , L 1.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Ideal interpolation lter in the time domain

Evaluating on the unit circle, we have Hk (ej ) = ejk/L, k = 0, . . . , L 1

so that each lter Hk (ej ) is allpass, i.e. |Hk (ej )| = 1 and has linear phase, arg{Hk (ej )} = k/L. Herein lies the impossibility of designing these lters. We cannot design them as FIR lters because no FIR lter can be allpass (except for a pure delay). We cannot design them as IIR lters, because no stable IIR lter can have linear phase.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Design of halfband lters

Halfband lters are well-suited for interpolation (and decimation) by a factor of 2. The cuto frequency for a halfband lter is always 0.5 . Moreover, the passband and stopband ripples are identical, limiting the degrees of freedom in the design. The function firhalfband designs FIR halfband lters.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Design of halfband lters

It is possible to design halfband lters by xing any two of the three angles of the triangle: b1=firhalfband(102,.47); % N and b2=firhalfband(102,.01,dev); % N and E ( ) b3=firhalfband(minorder,.47,.01); % and E ( ) To analyze, we can create an FIR interpolator object h = mfilt.firinterp(2,2*b3); polyphase(h)

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Design of other Nyquist lters

b1 = firnyquist(minorder,4,.1,.01); % L = 4 h1 = mfilt.firinterp(4,4*b1); polyphase(h1)

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Conventional equiripple lowpass

b2 = firceqrip(90,.25,[.01 .01]); h2 = mfilt.firinterp(4,4*b2); polyphase(h2)

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Nyquist lters for matched-ltered data Tx

bmin = firnyquist(47,10,.45,minphase); bmax=fliplr(bmin); h1=dfilt.dffir(bmax); h2=dfilt.dffir(bmin); hcas=cascade(h1,h2); fvtool(hcas)

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Design of perfect reconstruction 2-channel lter banks

Two-channel subband coding lter bank:

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Design of perfect reconstruction 2-channel lter banks

It is well-known that perfect reconstruction can be achieved if


1 2 G0(z )H0(z )

+1 2 G1(z )H1(z ) = 0 and

1 2 G0(z )H0(z )

k +1 G ( z ) H ( z ) = z . 1 1 2

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Design of perfect reconstruction 2-channel lter banks

Starting with a prototype lowpass lter H (z ), the following selection for the lters results in perfect reconstruction, H0(z ) = H (z ) G0(z ) = 2H (z ) H1(z ) = H (z ) G1(z ) = 2H (z )

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Design of perfect reconstruction 2-channel lter banks

It turns out that in order to achieve perfect reconstruction using solely FIR lters, it is necessary that additionally H0(z )H1(z ) H0(z )H1(z ) = cz l where c is some constant and l is an integer. The function firpr2chfb designs FIR lters H0(z ), H1(z ), G0(z ), G1(z ) such that the lter bank achieves perfect reconstruction. (1)

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Design of perfect reconstruction 2-channel lter banks

[H0,H1,G0,G1] = firpr2chfb(N,Fp); % N and [H0,H1,G0,G1] = firpr2chfb(N,Dev,dev); % N and E ( ) [H0,H1,G0,G1] = firpr2chfb(minorder,Fp,Dev); % and E ( )

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Design example - Digital Down-Converter


Graychip 4016 multi-standard quad DDC chip:

For the particular case of GSM, we have the following requirements: Input sample rate: 69.333248 MHz CIC decimation factor: 64 CFIR input sample rate: 1.083332 MHz PFIR input sample rate: 541.666 kHz
MATLAB for Signal Processing
Current Topics in Digital Signal Processing

PFIR output sample rate: 270.833 kHz Passband width: 80 kKz Passband ripple: less than 0.1 dB peak to peak

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

CIC decimator

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Passband details.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

CFIR decimator

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

CIC*CFIR

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Passband details.
MATLAB for Signal Processing
Current Topics in Digital Signal Processing

GSM spectral mask overlaid.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

PFIR decimator

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

CIC*CFIR*PFIR

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

GSM spectral mask overlaid.


MATLAB for Signal Processing
Current Topics in Digital Signal Processing

Passband details.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Other topics

See paper for xed-point ltering considerations for FIR lters.

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Summary of relevant MATLAB commands

Filter Design: Graphical user interface: fdatool Conventional lter design: fir1, firls, remez, fircls, fircls1, gremez, firceqrip, firlpnorm Multirate lter design: firhalfband, firnyquist, firpr2chfb, fireqint

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Summary of relevant MATLAB commands

Digital lter objects: b1 = firceqrip(...); b2 = gremez(...); h1 = dfilt.dffir(b1); h2 = dfilt.dfsymfir(b2); h = dfilt.fftfir(b); hcas = cascade(h1,h2,...); fvtool(h1,h2,hcas,...); y = filter(h,x);

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Summary of relevant MATLAB commands

Multirate lter objects: b1 = firhalfband(...); hm1 = mfilt.firinterp(2,b1); % L = 2 hm2 = mfilt.fftfirinterp(4);% Default lter polyphase(hm1) hm3 = mfilt.firdecim(D,b); fvtool(hm1,hm2,hm3,...); y = filter(hm1,x);

MATLAB for Signal Processing

Current Topics in Digital Signal Processing

Summary of relevant MATLAB commands

Getting help on lter objects: help dfilt/dffirt, help mfilt/firsrc,... Helpful demos (Signal Processing Toolbox and Filter Design Toolbox): Working with DFILT Objects Using FVTool and its Application Program Interface (API) Minimax FIR Filter Design FIR Nyquist (L-th band) Filter Design
MATLAB for Signal Processing
Current Topics in Digital Signal Processing

Ecient Narrow Transition-Band FIR Filter Design Least Pth-norm optimal FIR Filter Design Constrained Equiripple FIR Filter Design Halfband FIR Filter Design Getting started with multirate lter (MFILT) objects Filtering with FIR decimators Using Cascaded Integrator-Comb (CIC) decimation lter objects Filtering with FIR interpolators Audio Sample-Rate Conversion
MATLAB for Signal Processing
Current Topics in Digital Signal Processing

Вам также может понравиться