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的系数。。。。。

  • 相关阅读:
    接竹竿
    Vijos P1053 Easy SSSP
    计算机网络-五层协议和物理层
    代码阅读
    selenium自动化测试原理和设计的分享
    appium desktop 1.7 byName不能用,重写
    appium desktop 1.7 的swipe功能不能用,重写。
    appium在不同类中使用的是同一个session
    GIT 上传、ssh设置、一些命令。
    java 学习:在java中启动其他应用,由jenkins想到的
  • 原文地址:https://www.cnblogs.com/lianjiehere/p/4151217.html
Copyright © 2011-2022 走看看