zoukankan      html  css  js  c++  java
  • matlab中freqz的用法以及多项式的展开

    对于一个变量a,matlab中定义需要这样 syms a;

    定义之后就可以写由变量组成的式子,比如 c=(1+a^-1)^5;

    可以用expand(c) 就能把c展开成多项式,每一项的系数就可以看到。

    freqz的用法

    MATLAB提供了专门用于求离散系统频响特性的函数freqz(),调用freqz()的格式有以下两种:

    l        [H,w]=freqz(B,A,N)

     

        BA分别为离散系统的系统函数分子、分母多项式的系数向量,N为正整数,返回量H则包含了离散系统频响  0——pi范围内N个频率等分点的值,向量w则包含 范围内N个频率等分点。调用中若N默认,默认值为512

    l        [H,w]=freqz(B,A,N,’whole’)

    该调用格式将计算离散系统在0—pi范内的N个频率等分店的频率响应的值。

    因此,可以先调用freqz()函数计算系统的频率响应,然后利用abs()angle()函数及plot()函数,即可绘制出系统在  范围内的频响曲线。

    绘制如下系统的频响曲线

    H(z)=(z-0.5)/z

     

     

     MATLAB命令如下:

        B=[1 -0.5];

        A =[1 0];

        [H,w]=freqz(B,A,400,'whole');

     H是频率响应的幅度,w是0---pi内的400个点

        Hf=abs(H);

        Hx=angle(H);

        clf

        figure(1)

        plot(w,Hf)

    title('离散系统幅频特性曲线')

        figure(2)

        plot(w,Hx)

        title('离散系统相频特性曲线')

    这样画出来的是线性的,要想获得db格式的幅度,需要转换 20*log10(Hf)

    之后再画就是db格式的

    也可以直接用freqz(b,a)这样就会画出幅频响应和相频响应,幅频响应直接是db格式的幅度。

    在输入数据中,b,a的数据应该按照如下格式写下系数

    z^0,z^-1,z^-2,z^-3......z^-m。

    也就是先写常数,再写z^-1的系数再写z^-2的系数。。。。。

  • 相关阅读:
    -webkit-margin-before 及 扩展浏览器前缀、内核
    vue封装分页组件
    vue项目中使用qrcode生成二维码
    git中全局设置用户名、邮箱
    promise.all 解说
    超详细弹性盒子布局
    js对象转数组
    js取整数、取余数的方法
    数组方法大全
    Vue绑定class
  • 原文地址:https://www.cnblogs.com/lianjiehere/p/4151217.html
Copyright © 2011-2022 走看看