您现在的位置是:结局

chirp,求用matlab实现chirp—Z的程序代码,步骤如下

2020-11-07 09:57结局

简介需要处理成什么?chirp-z是频谱分具, 能直接得出频谱.10 kHz载频50 Hz 调号最上面是调制波部.是幅度频谱, 可以看到,在9950Hz和10050Hz位置的都有一个峰值, 这是调幅的特点 求用matlab实现chirp—Z的程序代码,步骤如下...

需要处理成什么?

chirp-z是频谱分具, 能直接得出频谱.

10 kHz载频

50 Hz 调号

最上面是调制波部.

是幅度频谱, 可以看到,在9950Hz和10050Hz位置的都有一个峰值, 这是调幅的特点.

最下面是相位频谱.

追问
额,我也不是很清楚,好像是用matlab编写出Chirp-Z,然后再用一个窄带信号(例如Sa(t-20))验证Chirp-Z的优点,题目是Chirp-Z变换及其在窄带信号中的应用。

PS:这是个研究生作业题
追答
示例代码, 自取
追问
function test()函数定义报错,而且菜鸟表示看不懂您的程序。。。可以再加些说明不?谢谢
追答
什么错误. 贴个图看看. 我这里是可以运行的.
追问

运行的结果是这个样子,我还是没看懂,大神,求详细说明可以不。。。

  • 追答
    不错, 终于可以运行了.

    哪个地方不懂? 总共没几行代码.
    追问
    额,我突然发现 您是不是调用了matlab自带函数czt?老师要求不允许调用任何函数。。。。我现在在逐行理解您的代码中。。。。
    追答
    不用czt也很简单, 直接用chirp-z的定义式也可以.
    追问
    额,我自己看看吧, 谢谢您啦

    -

    下面是更多关于chirp的问答

    %如题,窄带信号最好是调幅波,程序最好有详细说明,菜鸟在此感谢 这是在做卷积, 哪里是chirp-z 追问

    教材上的chirp-z计算流程是这样的啊

    • 追答
      我当然知道chirp-z流程. 意思是你把问题没有讲清楚,

      h(n)是什么, DFT多长, ...

      作为一个题目, 需要把细节讲清楚.

      或者简单一点, 不要讲太多的细节, 只求用matlab实现一个chirp-z的算法的标准流程也是可以的.
      追问
      或许我没把题目理解清楚吧,因为出的题目就是这个按步骤用DFT计算Chirp-Z,我也没看懂。。。那用matlab实现一个chirp-z的算法的标准流程怎么弄?
      追答
      matlab 中czt有源代码, 很简单, 可以看看.

      输入edit czt就可以了.
      matlab 里面 czt源码是可以看到的

      输入edit czt就可以了
      追问
      我觉得应该是下面的。。可是我不知道怎样将这一步步做下来怎么变成czt,或许是我这里代码太零碎了

      h(n)的编程求解过程如下:(hr[]代表实部,hi[]代表实部)

      WR=W*cos(pha);WI=W*sin(pha);

      DR=W*cos(pha/2);DI=W*sin(pha/2);

      hr[0]=1;

      hi[0]=0;

      for(i=1;i<N;i++)

      {m=i-1;
      追答

      代码在附件里面, 看看func_czt是怎么实现czt算法的吧.

      看你的代码, 明显还是C语言的思维方式. matlab强大的功能一点都没有用上.

      追问
      而function [flist, famp] = get_amp(x, fs, f1, f2, M)这个函数报错了。。。

      function x = gen_signal(amp, f, t)

      n = length(t);

      x = amp * cos(2 * pi * f * t);

      这个n没有用啊
      追答
      func_czt就是按照chirp-z框图设计的.
      追问
      哦,可是程序运行报错
      追答
      什么错误, 图贴出来看看.
      追问

      function [flist, famp] = get_amp(x, fs, f1, f2, M)这个函数报错了

      fsigal整个程序没有使用

      • 追答
        我试过了, 只是一个小bug. 最末一行, end去掉就可以运行.
        来自:求助得到的回答 你对这个回答的评价是?

        数字信号处理? so,easy,ma ma zai ye bu yong dan xin wo de xue xi le . 直接用函数czt,就能计算是z变换 在初始化状态下,sys是体,用它来设置的一些参数,各个参数说明如下

        size = simsizes;%用于设置模块参数的结构体用simsizes来生成

        sizes.NumContStates = 0;%模块连续状态变量的个数

        sizes.NumDiscStates = 0;%模块离散状态变量的个数

        sizes.NumOutputs = 0;%模块输出变量的个数

        sizes.NumInputs = 0;%模块输入变量的个数

        sizes.DirFeedthrough = 1;%模块是否存在直接贯通! 例子

        >> syms z

        f = 2*z/(z-2)^2

        iztrans(f)

        f =

        (2*z)/(z - 2)^2

        ans =

        2^n + 2^n*(n - 1) 追问
        问题解决了,大家注意3z之间要有*,以及(z-1)(z-2)之间的*都很容易被忽视
        本回答被提问者和网友采纳

        Tags:chirp,求用Chirp-Z变换处理窄带信号的Matlab