主要内容

Filter Design Gallery

This example shows how to design a variety of FIR and IIR digital filters with thedesignfiltfunction in the Signal Processing Toolbox® product.

The gallery is designed for you to identify a filter response of interest, view the code, and use it in your own project. It contains examples for each of the available filter responses offered bydesignfilt. Note, however, that these are only a few of the possible ways in which you can design filters for each response type. For an exhaustive list of specification sets, see the Signal Processing Toolbox documentation.

Except when noted otherwise, in this example all frequency units are in hertz, and all ripple and attenuation values are in decibels.

lowpass FIR Filters

平等设计

fpass = 100;fstop = 150;Apass = 1;astop = 65;FS = 1E3;d = designfilt('lowpassfir',...'Passband职业',馈送,'StopbandFrequency',Fstop,...'PassbandRipple',Apass,'stopbandattenuation',Astop,...'DesignMethod','equiripple','SampleRate',fs);FVTool(D)

lowpass IIR Filters

Maximally Flat Design

fpass = 100;fstop = 150;Apass = 0.5;astop = 65;FS = 1E3;d = designfilt('洛链',...'Passband职业',馈送,'StopbandFrequency',Fstop,...'PassbandRipple',Apass,'stopbandattenuation',Astop,...'DesignMethod','牛油','SampleRate',fs);FVTool(D)

通带和停机带的波纹

n = 8;fpass = 100;Apass = 0.5;astop = 65;FS = 1E3;d = designfilt('洛链',...'FilterOrder',N,...'Passband职业',馈送,...'PassbandRipple',Apass,'stopbandattenuation',Astop,...'SampleRate',fs);FVTool(D)

Highpass FIR Filters

平等设计

Fstop = 350; Fpass = 400; Astop = 65; Apass = 0.5; Fs = 1e3; d = designfilt('highpassfir','StopbandFrequency',Fstop,...'Passband职业',馈送,'stopbandattenuation',Astop,...'PassbandRipple',Apass,'SampleRate',Fs,'DesignMethod','equiripple');FVTool(D)

高通IIR过滤器

Maximally Flat Design

Fstop = 350; Fpass = 400; Astop = 65; Apass = 0.5; Fs = 1e3; d = designfilt('highpassiir','StopbandFrequency',fstop,...'Passband职业',馈送,'stopbandattenuation',Astop,...'PassbandRipple',Apass,'SampleRate',Fs,'DesignMethod','牛油');FVTool(D)

通带和停机带的波纹

n = 8;Fpass = 400; Astop = 65; Apass = 0.5; Fs = 1e3; d = designfilt('highpassiir',...'FilterOrder',N,...'Passband职业',馈送,...'stopbandattenuation',Astop,'PassbandRipple',Apass,...'SampleRate',fs);FVTool(D)

Bandpass FIR Filters

平等设计

fstop1 = 150;Fpass1 = 200; Fpass2 = 300; Fstop2 = 350; Astop1 = 65; Apass = 0.5; Astop2 = 65; Fs = 1e3; d = designfilt('bandpassfir',...'stopbandfrequency1',fstop1,'PassbandFrequency1', Fpass1,...'passbandfrequency2'',Fpass2,'stopbandfrequency2', Fstop2,...'stopbandattenuation1',Astop1,'PassbandRipple', 通过,...'StopbandAttenuation2',Astop2,...'DesignMethod','equiripple','SampleRate',fs);FVTool(D)

Asymmetric Band Attenuations

N = 50; Fstop1 = 150; Fpass1 = 200; Fpass2 = 300; Fstop2 = 350; Wstop1 = 3; Wstop2 = 100; Fs = 1e3; d = designfilt('bandpassfir',...'FilterOrder',N,...'stopbandfrequency1',fstop1,'PassbandFrequency1', Fpass1,...'passbandfrequency2'',Fpass2,'stopbandfrequency2', Fstop2,...'StopbandWeight1',Wstop1,'StopbandWeight2',Wstop2,...'DesignMethod','equiripple','SampleRate',fs);FVTool(D)

带通IIR过滤器

Maximally Flat Design

fstop1 = 150;Fpass1 = 200; Fpass2 = 300; Fstop2 = 350; Astop1 = 65; Apass = 0.5; Astop2 = 65; Fs = 1e3; d = designfilt('bandpassiir',...'stopbandfrequency1',fstop1,'PassbandFrequency1', Fpass1,...'passbandfrequency2'',Fpass2,'stopbandfrequency2', Fstop2,...'stopbandattenuation1',Astop1,'PassbandRipple', 通过,...'StopbandAttenuation2',Astop2,...'DesignMethod','牛油','SampleRate', Fs); fvtool(d)

通带和停机带的波纹

n = 8;Fpass1 = 200; Fpass2 = 300; Astop1 = 65; Apass = 0.5; Astop2 = 65; Fs = 1e3; d = designfilt('bandpassiir',...'FilterOrder',N,...'PassbandFrequency1', Fpass1,'passbandfrequency2'', Fpass2,...'stopbandattenuation1', Astop1,'PassbandRipple', 通过,...'StopbandAttenuation2', Astop2,...'SampleRate', Fs); fvtool(d)

Bandstop FIR Filters

平等设计

fpass1 = 100;fstop1 = 150;fstop2 = 350;fpass2 = 400;Apass1 = 0.5; Astop = 65; Apass2 = 0.5; Fs = 1e3; d = designfilt('bandstopfir',...'PassbandFrequency1',Fpass1,'stopbandfrequency1',fstop1,...'stopbandfrequency2',fstop2,'passbandfrequency2'',Fpass2,...'PassbandRipple1',Apass1,'stopbandattenuation',Astop,...'PassbandRipple2', Apass2,...'DesignMethod','equiripple','SampleRate', Fs); fvtool(d)

不对称通带涟漪

n = 30;fpass1 = 100;fstop1 = 150;fstop2 = 350;fpass2 = 400;wpass1 = 1;wpass2 = 10;FS = 1E3;d = designfilt('bandstopfir',...'FilterOrder',N,...'PassbandFrequency1',Fpass1,'stopbandfrequency1',fstop1,...'stopbandfrequency2',fstop2,'passbandfrequency2'',Fpass2,...'passbandweight1',Wpass1,'passbandweight2',Wpass2,...'DesignMethod','equiripple','SampleRate', Fs); fvtool(d)

Bandstop IIR Filters

Maximally Flat Design

fpass1 = 100;fstop1 = 150;fstop2 = 350;fpass2 = 400;Apass1 = 0.5; Astop = 65; Apass2 = 0.5; Fs = 1e3; d = designfilt('bandstopiir',...'PassbandFrequency1',Fpass1,'stopbandfrequency1',fstop1,...'stopbandfrequency2',fstop2,'passbandfrequency2'',Fpass2,...'PassbandRipple1',Apass1,'stopbandattenuation',Astop,...'PassbandRipple2', Apass2,...'DesignMethod','牛油','SampleRate', Fs); fvtool(d)

通带和停机带的波纹

n = 8;fpass1 = 125;fpass2 = 375;Apass = 0.5;astop = 65;FS = 1E3;d = designfilt('bandstopiir',...'FilterOrder',N,...'PassbandFrequency1',Fpass1,'passbandfrequency2'',Fpass2,...'PassbandRipple',Apass,'stopbandattenuation',astop,...'SampleRate',fs);FVTool(D)

Arbitrary Magnitude FIR Filters

Single-Band Arbitrary Magnitude Design

N = 300;% Frequencies are in normalized unitsF1 = 0:0.01:0.18;f2 = [.2 .38 .4 .55 .562 .585 .78];F3 = 0.79:0.01:1;freqvect = [f1 f2 f3];% vector of frequencies% Define desired response using linear unitsA1 = .5 + SIN(2 * PI * 7.5 * F1)/ 4;% Sinusoidal sectionA2 = [.5 2.3 1 1 -.2 -.2 1 1];%分段线性部分A3 = .2 + 18 *(1-F3)。^ 2;%二次部分AmpVect = [A1 A2 A3];d = designfilt('arbmagfir',...'FilterOrder',N,'Amplitudes',安瓿,'频率',FreqVect,...'DesignMethod','freqsamp');FVTool(D,'MagnitudeDisplay','Zero-phase')

Multiband Lowpass Design with Stepped Attenuation Levels on Stopband

n = 150;B = 2;频段数量% Frequencies are in normalized unitsF1 = [0 .25];%通频带F2 = [.3 .4 .401 .5 .501 .6 .601 .7 .701 .8 .801 .9 .901 1];%stopband.A1 = ones(size(F1));% Desired amplitudes for band 1 in linear unitsA2 = zeros(size(F2));线性单元中带2的%期望幅度%载体的重量W = 10.^([0 0 5 5 10 10 15 15 20 20 25 25 30 30 35 35]/20); W1 = W(1:2);% Weights for band 1w2 = w(3:结束);% Weights for band 2d = designfilt('arbmagfir',...'FilterOrder',N,'numbands',B,...'BandFrequencies1',F1,'BandAmplitudes1',A1,...'BandFrequencies2',F2,'BandAmplitudes2',A2,...'Bandweights1',W1,'bandweights2', W2); fvtool(d)

差异化因素FIR滤清器

Full Band Design

N = 41; Fs = 1e3; d = designfilt('differentiatorfir',...'FilterOrder',N,'DesignMethod','equiripple','SampleRate',fs);FVTool(D,'MagnitudeDisplay','zero-phase','OverlayedAnalysis','phase')

Partial Band Design

n = 40;fpass = 100;fstop = 150;FS = 1E3;d = designfilt('differentiatorfir',...'FilterOrder',N,...'Passband职业',馈送,'StopbandFrequency',Fstop,...'DesignMethod','equiripple','SampleRate',fs);FVTool(D,'MagnitudeDisplay','zero-phase','OverlayedAnalysis','phase')

Hilbert FIR Filters

平等设计

n = 40;tw = 50;FS = 1E3;d = designfilt('hilbertfir',...'FilterOrder',N,'transitionwidth',Tw,...'DesignMethod','equiripple','SampleRate',fs);FVTool(D,'MagnitudeDisplay','Zero-phase','OverlayedAnalysis','phase')

See Also

|