carter1987 发表于 2010-3-25 23:27

请问MATLAB中怎样补零?

老师给了个任务,但是我以前完全没接触过这块,都是今天才现看,所以这个问题很弱智,还是麻烦大家告知下

一个50Hz的余弦信号,采样频率6400Hz,先加矩形窗截取128个点,再补零到256点,再做FFT。
信号:y1=A*cos(2*pi*F*t+pi*P/180);
         win =(boxcar(128));
         y2=y1(1:128).*win';
接下来就该是补零的程序,请问该怎么编,添加到Y = fft(y2,N)之前
如果调用zeros函数,该如何使用?
谢谢大家!!

ChaChing 发表于 2010-3-26 00:04

help fft
Y = fft(X,n) returns the n-point DFT. If the length of X is less than n, X is padded with trailing zeros to length n. If the length of X is greater than n, the sequence X is truncated. When X is a matrix, the length of the columns are adjusted in the same manner.

carter1987 发表于 2010-3-26 00:44

回复 沙发 ChaChing 的帖子

谢谢你的答复,我刚开始就是直接使用Y=fft(y2,256),但是仿出来有问题,补零得越多,幅频图里面的幅值就会成倍减少得越多,这是为什么啊?麻烦解答下。

ydiok 发表于 2010-3-28 22:05

回复 板凳 carter1987 的帖子

幅值得公式里要除以点数,点数越大,幅值越小。
页: [1]
查看完整版本: 请问MATLAB中怎样补零?