算是一篇随笔吧…
也不知道是不是数字信号处理没学太好,今晚这个简单的问题折磨了我一段时间,之前助教在课程群里发的帮助文档也奇奇怪怪的,然后我感觉CSDN上好多错的…后来我终于琢磨出了一个道理,很快就把问题解决了。
那就是我们在matlab里直接构建的函数都是连续的函数,但是最后显示出来的都是离散的信号,和抽样很像,因此,将矩形序列进行周期延拓,和对连续方波信号进行抽样,是一个道理。
那么只要知道连续方波信号怎么生成就好了,幸运的是,matlab有生成连续方波的square函数:
x = square(t,duty);
这个函数的功能是产生幅值为1,频率为2pi,占空比为duty的方波,如果我们想产生指定频率的方波,可以对t进行伸缩,比如要产生30Hz占空比为50%的方波,可以这样实现:
x = square(2*pi*30*t,50);
这样的话就可以很容易地完成延拓(其实不是延拓,是对方波抽样)了,我建议频率和占空比直接输入分数,如果要输入小数的话,需要考虑如何取小数,因为这影响着抽样的结果。