"matlab 做音频文件(WAV格式)的频谱图程序 以及做时域波形图的程序"2007-10-17 15:45 您还记得这个问题么?

Pyy=Y.*conj(Y)/sigLength;halflength=floor(sigLength/2);f=Fs*(0:halflength)/sigLength;... Pyy = Y.* conj(Y) / sigLength;
halflength=floor(sigLength/2);
f=Fs*(0:halflength)/sigLength;
这段程序是什么意思啊,有点看不懂...
展开
 我来答
匿名用户
2012-06-21
展开全部
朋友,年代太久远了。在工地搬砖的生活容易使人健忘。

做完fft变换的数值是不能直接画图的,因为那些都是向量。横坐标是频率,纵坐标是向量,那是没有办法画出来的。所以一般要画绝对值。abs(Y)。年轻的时候,我喜欢画功率谱:Y.* conj(Y)。两者会有点区别。

Pyy = Y.* conj(Y) / sigLength; 信号点乘它的共轭,求功率。除以信号长度,是为了归一化吗?什么叫做归一化?我老了。。。。
halflength=floor(sigLength/2); FFT以后是对称的,所以画图只要画一半就可以了。
f=Fs*(0:halflength)/sigLength; 采样频率是Fs,所以最后画出的频域图是从0赫兹-Fs赫兹。其实吧,这个信号从0-Fs/2一段,从Fs/2-Fs一段是对称的,所以画一般就行。因为只画半,所以只从最后横轴一半长度即可。

---------------------------------我是分割线-----------------------

请教傅立叶分析中pyy=Y.*conj(Y)/512;和NFFT = 2^nextpow2(L); 的意思y=........%一段受干扰的信号
Y=fft(y,512);
pyy=Y.*conj(Y)/512;
f=1000*(0:256)/512;
plot(f,pyy(1:257))

想知道
pyy=Y.*conj(Y)/512;
f=1000*(0:256)/512;
这两句话什么意思

另外看到MATLAB fft帮助里的傅立叶分析如下:
NFFT = 2^nextpow2(L);
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2);
plot(f,2*abs(Y(1:NFFT/2)))

这二个方法有什么区别呀,nextpow2是什么意思呢?
我是初学者,自学的,还请各位高手请教~
有热心的高手能把每句话详细的解释下吗?
谢谢~
---------------------------你tm才是分割线--------------------------
NFFT = 2^nextpow2(L); % 取2的整数次幂
X = fft(x,NFFT)/L; % 求fft后的真实幅值
f = Fs/2*linspace(0,1,NFFT/2+1);
plot(f,2*abs(X(1:NFFT/2+1))) % 画单边频谱值

参考资料: http://www.ilovematlab.cn/thread-51243-1-1.html

来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式