Constrained-least-squares FIR multiband filter design
collapse all in page
Syntax
b = fircls(n,f,amp,up,lo)
fircls(n,f,amp,up,lo,"design_flag")
Description
example
b = fircls(n,f,amp,up,lo)
generates a length n
+ 1 linear phase FIR filter. The frequency-magnitude characteristics of this filter match those given by vectors f
and amp
. up
and lo
are vectors with the same length as amp
. They define the upper and lower bounds for the frequency response in each band.
fircls(n,f,amp,up,lo,"design_flag")
enables you to specify visual display options for the filter design.
Examples
collapse all
Constrained Least-Squares Lowpass Filter
Open Live Script
Design a 150th-order lowpass filter with a normalized cutoff frequency of rad/sample. Specify a maximum absolute error of 0.02 in the passband and 0.01 in the stopband. Display the design error and magnitude responses of the filter. The bound violations denote the iterations of the procedure as the design converges.
n = 150;f = [0 0.4 1];a = [1 0];up = [1.02 0.01];lo = [0.98 -0.01];b = fircls(n,f,a,up,lo,"both");
Bound Violation = 0.0788344298966 Bound Violation = 0.0096137744998 Bound Violation = 0.0005681345753 Bound Violation = 0.0000051519942 Bound Violation = 0.0000000348656 Bound Violation = 0.0000000006231
Input Arguments
collapse all
n
— Filter order
real positive scalar
Filter order, specified as a real positive scalar.
Note
The fircls
function always uses an even filter order for configurations with a passband at the Nyquist frequency (that is, highpass and bandstop filters). This is because for odd orders, the frequency response at the Nyquist frequency is necessarily 0. If you specify an odd-valued n
, fircls
increments it by 1.
f
— Normalized frequency points
real-valued vector
Normalized frequency points, specified as a real-valued vector. The transition frequencies are in the range [0, 1], where 1 corresponds to the Nyquist frequency. The first point of f
must be 0
and the last point must be 1
. The frequencies must be in increasing order.
amp
— Piecewise-constant desired amplitude
real-valued vector
Piecewise-constant desired amplitude of the frequency response, specified as a real-valued vector. The length of amp
is equal to the number of bands in the response, length(f)-1
.
up
— Upper bounds
real-valued vector
Upper bounds for the frequency response in each band, specified as a real-valued vector with the same length as amp.
lo
— Lower bounds
real-valued vector
Lower bounds for the frequency response in each band, specified as a real-valued vector with the same length as amp.
Note
Normally, the lower value in the stopband is specified as negative. By setting lo
equal to 0
in the stopbands, a nonnegative frequency response amplitude is obtained. Such filters are spectrally factored to obtain minimum phase filters.
"design_flag"
— Filter design display
"trace"
| "plots"
| "both"
Filter design display, specified as one of these:
"trace"
— View a textual display of the design error at each iteration step."plots"
— View a collection of plots showing the full-band magnitude response of the filter and a zoomed view of the magnitude response in each sub-band. All plots are updated at each iteration step. The O's on the plot are the estimated extrema of the new iteration and the X's are the estimated extrema of the previous iteration, where the extrema are the peaks (maxima and minima) of the filter ripples. Only ripples that have a corresponding O and X are made equal."both"
— View both a textual display and plots.
Output Arguments
collapse all
b
— Filter coefficients
row vector
Filter coefficients, returned as a row vector of length n + 1.
Algorithms
The fircls
function uses an iterative least-squares algorithm to obtain an equiripple response. The algorithm is a multiple exchange algorithm that uses Lagrange multipliers and Kuhn-Tucker conditions on each iteration.
References
[1] Selesnick, I. W., M. Lang, and C. S.Burrus. “Constrained Least Square Design of FIR Filters withoutSpecified Transition Bands.” Proceedings of the1995 International Conference on Acoustics, Speech, and Signal Processing. Vol.2, 1995, pp. 1260–1263.
[2] Selesnick, I. W., M. Lang, and C. S. Burrus.“Constrained Least Square Design of FIR Filters without SpecifiedTransition Bands.” IEEE® Transactions on SignalProcessing. Vol. 44, Number 8, 1996, pp. 1879–1892.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
All inputs must be constants. Expressions or variables are allowed if their values do not change.
Version History
Introduced before R2006a
See Also
Apps
- Filter Analyzer | Filter Designer
Functions
- fircls1 | firls | firpm
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 简体中文
- English
- 日本 (日本語)
- 한국 (한국어)
Contact your local office