zoukankan      html  css  js  c++  java
  • Matlab filter常用函数

    Filtering and Analysis Functions

    Filtering

    FunctionDescription

    fftfilt

    Filters a signal with a digitalFilter using an FFT-based overlap-add method

    filter

    Filters a signal using a digitalFilter

    filtfilt

    Performs zero-phase filtering of a signal with a digitalFilter

    Filter Analysis

    FunctionDescription

    double

    Casts the coefficients of a digitalFilter to double precision

    filt2block

    Generates a Simulink® filter block corresponding to a digitalFilter

    filtord

    Returns the filter order of a digitalFilter

    firtype

    Returns the type (1, 2, 3, or 4) of an FIR digitalFilter

    freqz

    Returns or plots the frequency response of a digitalFilter

    fvtool

    Opens the Filter Visualization Tool and displays the magnitude response of a digitalFilter

    grpdelay

    Returns or plots the group delay response of a digitalFilter

    impz

    Returns or plots the impulse response of a digitalFilter

    impzlength

    Returns the length of the impulse response of a digitalFilter, whether actual (for FIR filters) or effective (for IIR filters)

    info

    Returns a character array with information about a digitalFilter

    isallpass

    Returns true if a digitalFilter is allpass

    isdouble

    Returns true if the coefficients of a digitalFilter are double precision

    isfir

    Returns true if a digitalFilter has a finite impulse response

    islinphase

    Returns true if a digitalFilter has linear phase

    ismaxphase

    Returns true if a digitalFilter is maximum phase

    isminphase

    Returns true if a digitalFilter is minimum phase

    issingle

    Returns true if the coefficients of a digitalFilter are single precision

    isstable

    Returns true if a digitalFilter is stable

    phasedelay

    Returns or plots the phase delay response of a digitalFilter

    phasez

    Returns or plots the (unwrapped) phase response of a digitalFilter

    single

    Casts the coefficients of a digitalFilter to single precision

    ss

    Returns the state-space representation of a digitalFilter

    stepz

    Returns or plots the step response of a digitalFilter

    tf

    Returns the transfer function representation of a digitalFilter

    zerophase

    Returns or plots the zero-phase response of a digitalFilter

    zpk

    Returns the zero-pole-gain representation of a digitalFilter

    zplane

    Displays the poles and zeros of the transfer function represented by a digitalFilter

    1.zero,pole-->transfer function form

    [b,a] = zp2tf(zer,pol,1);
    fvtool(b,a)

    2.transform function-->zero/polo

    fvtool(b,a,'Analysis','polezero')

    zplane(b,a)

    3.Z-transform frequency response of a digital filter.

    [h,w] = freqz(b,a,p)
    

    returns the p-point complex frequency response, H(ejω), of the digital filter.

     For example, a ninth-order Butterworth lowpass filter with a cutoff frequency of 400 Hz, based on a 2000 Hz sampling frequency, is

    [b,a] = butter(9,400/1000);
    

    To calculate the 256-point complex frequency response for this filter, and plot the magnitude and phase with freqz, use

    freqz(b,a,256,2000)
    

     4.filter

    Use filter in the form y = filter(d,x) to filter an input signal, x, with a digitalFilterd, and obtain output data, y.

    5.designfilt(https://ww2.mathworks.cn/help/signal/ref/designfilt.html)

    Use designfilt in the form d = designfilt(resp,Name,Value) to design a digital filter, d, with response type resp. Specify the filter further using a set of Name,Value pairs.

    Type d.Coefficients to obtain the coefficients of a digitalFilterd. For IIR filters, the coefficients are expressed as second-order sections.

    Lowpass IIR Filter

    Design a lowpass IIR filter with order 8, passband frequency 35 kHz, and passband ripple 0.2 dB. Specify a sample rate of 200 kHz. Visualize the magnitude response of the filter. Use it to filter a 1000-sample random signal.

    lpFilt = designfilt('lowpassiir','FilterOrder',8, ...
             'PassbandFrequency',35e3,'PassbandRipple',0.2, ...
             'SampleRate',200e3);
    fvtool(lpFilt)

    dataIn = randn(1000,1);
    dataOut = filter(lpFilt,dataIn);

    Output the filter coefficients, expressed as second-order sections.

    sos = lpFilt.Coefficients
    sos = 4×6
    
        0.2666    0.5333    0.2666    1.0000   -0.8346    0.9073
        0.1943    0.3886    0.1943    1.0000   -0.9586    0.7403
        0.1012    0.2023    0.1012    1.0000   -1.1912    0.5983
        0.0318    0.0636    0.0318    1.0000   -1.3810    0.5090

    Bandpass FIR Filter

    Design a 20th-order bandpass FIR filter with lower cutoff frequency 500 Hz and higher cutoff frequency 560 Hz. The sample rate is 1500 Hz. Visualize the magnitude response of the filter. Use it to filter a random signal containing 1000 samples.

    bpFilt = designfilt('bandpassfir','FilterOrder',20, ...
             'CutoffFrequency1',500,'CutoffFrequency2',560, ...
             'SampleRate',1500);
    fvtool(bpFilt)

    dataIn = randn(1000,1);
    dataOut = filter(bpFilt,dataIn);

    Output the filter coefficients.

    b = bpFilt.Coefficients
    b = 1×21
    
       -0.0113    0.0067    0.0125   -0.0445    0.0504    0.0101   -0.1070    0.1407   -0.0464   -0.1127    0.1913   -0.1127   -0.0464    0.1407   -0.1070    0.0101    0.0504   -0.0445    0.0125    0.0067   -0.0113 ⋯
    

     6.fvtool

    fvtool(b,a)
    fvtool(sos)
    fvtool(d)
    fvtool(b1,a1,b2,a2,...,bN,aN)
    fvtool(sos1,sos2,...,sosN)
    fvtool(Hd)
    fvtool(Hd1,Hd2,...,HdN)
    h = fvtool(...)

    Use fvtool to visualize a digitalFilterd.

  • 相关阅读:
    命令行方式执行YUITest单元测试
    Rails系统重构:从单一复杂系统到多个小应用集群
    hudson部署设置 Spring——Java程序员的春天 ITeye技术网站
    java获取本机IP
    2.5.如何创建JAR以及把它安装到本地库中?
    管理员常用的管理工具有哪些?
    PHP学习之十四:构造函数
    window phone 7开发之 项目初体验
    window phone7开始之 横屏竖屏
    Silverlight 硬件加速
  • 原文地址:https://www.cnblogs.com/fellow1988/p/9180818.html
Copyright © 2011-2022 走看看