zoukankan      html  css  js  c++  java
  • 【转载】matlab中freqz函数的使用

    freqz函数计算线性系统的频率响应,包括幅频响应和相频响应,基本输入为线性系统的AMMA模型系数向量,一个典型的AMMA模型为

    %               jw               -jw              -jmw
    %        jw  B(e)    b(1) + b(2)e + .... + b(m+1)e
    %     H(e) = ---- = ------------------------------------
    %               jw               -jw              -jnw
    %            A(e)    a(1) + a(2)e + .... + a(n+1)e

    其中,向量A为IIR系统分母向量,对FIR系统为1;向量B为分子向量

    函数使用零散傅立叶变换(fft)计算系统响应,计算范围为0~pi,即单位圆的上半部分,因为默认情况下对于实数系数系统响应关于DC对称.计算公式为上式的频域离散化形式.计算完成后在对目标解析度使用算术插值方法进行向量填充,填充形式取决于附加输入参数信息.

    freqz的基本调用格式为freqz(b,a),此时函数内部默认进行512点算术插值,所以输出是512点的幅度值和对应的0~pi自变量向量,如果需要改变向量长度便于绘图,则可以附加维度信息,例如freqz(b,a,N)则进行N点插值

    如果系统不是实系数的而是复数系统,则系统响应不再对称,0~pi的范围不足以反映整体特性,此时有两种选择:

    1. 绘制整个主值区(-pi~pi),调用格式是增加字串型参数'whole',例如 freqz(b,a,n,'whole');

    2. 绘制定制区域,则直接给定范围,该范围为给定自变量向量,例如 freqz(b,a,[-pi:2*pi/n:pi])

    使用上述调用格式,输出为-pi~pi范围内的离散傅立叶变换计算结果,如果为绘图方便要标识频率信息,则调用时需要附加采样频率信息,例如freqz(b,a,[-fs/2:(fs/n):fs/2],fs);


    freqz的基本使用方法是利用函数返回值进行后续分析处理,此时函数不会自动绘制曲线,如果直接调用而不指定返回接收变量,则函数自动按照通常标准绘制幅频/相频曲线,幅频曲线为对数格式

    可以使用type freqz分析源代码

  • 相关阅读:
    hive之Json解析(普通Json和Json数组)
    Oracle 默认时间格式 & Date格式转换
    Oracle 中的Top写法
    cvc-complex-type.2.4.a: Invalid content was found starting with element 'async-supported'.
    如何使用MyEclipse的快捷键查找文件和类等资源
    同时运行多个TOMCAT时配置修改
    Dmaven.multiModuleProjectDirectory system propery is not set.
    Java常见异常
    java异常处理中的return和throw
    有return的情况下try catch finally的执行顺序
  • 原文地址:https://www.cnblogs.com/Dontstop/p/4546969.html
Copyright © 2011-2022 走看看