matlab做快速傅里叶变换,用FFT函数,程序看不懂,有高手能解释一下吗?
这是论文里的一段程序Y=fft(ft,n);%返回n点的离散傅里叶变换,如果向量ft的长度小于n,函数要将向量ft补零到长度n;如果向量ft的长度大于n,则函数ft使之长...
这是论文里的一段程序
Y = fft(ft,n);% 返回n点的离散傅里叶变换,如果向量ft的长度小于n,函数要将向量ft补零到长度n;如果向量ft的长度大于n,则函数ft使之长度为n。若ft 是矩阵,按相同方法对ft 进行处理。
halfLength = floor(n/2);
Pyy = Y(1:halfLength+1);%只选取前半截部分
Pyy = abs(Pyy1);%用于计算向量y的振幅
f =((0:halfLength)+1)*Fs1/n;
plot(f1,Pyy1),title('频谱'),grid;
我看不懂f为什么这样算,以及Pyy取前半截部分为什么Y(1:halfLength+1)这里要加1,不加1正好是一半吧。有人能给我解答一下吗?非常感谢! 展开
Y = fft(ft,n);% 返回n点的离散傅里叶变换,如果向量ft的长度小于n,函数要将向量ft补零到长度n;如果向量ft的长度大于n,则函数ft使之长度为n。若ft 是矩阵,按相同方法对ft 进行处理。
halfLength = floor(n/2);
Pyy = Y(1:halfLength+1);%只选取前半截部分
Pyy = abs(Pyy1);%用于计算向量y的振幅
f =((0:halfLength)+1)*Fs1/n;
plot(f1,Pyy1),title('频谱'),grid;
我看不懂f为什么这样算,以及Pyy取前半截部分为什么Y(1:halfLength+1)这里要加1,不加1正好是一半吧。有人能给我解答一下吗?非常感谢! 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询