• 【转载】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分析源代码

  • 相关阅读:
    PAT 甲级 1041 Be Unique (20 分)(简单,一遍过)
    [精]Odoo 8.0深入浅出开发教程-模块开发基础
    iOS开发- UILabel 自己主动换行 及 高度自适应
    Android
    权限管理表结构设计
    创建SQL语句_面试
    Hasen的linux设备驱动开发学习之旅--时钟
    关于源程序到可运行程序的过程
    微信服务号 微信支付开发
    MongoDB基础入门视频教程
  • 原文地址:https://www.cnblogs.com/Dontstop/p/4546969.html
Copyright © 2020-2023  润新知