麻烦matlab高手帮忙做出这个信号的频谱,我是菜鸟,刚接触matlab,真心不懂,请多指教!

y=(1+0.2*sin(90*2*pi*t)+0.2*sin(150*2*pi*t)).*cos(108.1*10^6*2*pi*t)
请写出程序。如果确实有帮助我会再加分以表感谢!

频谱可用CPSD函数做:
cpsd(y,y,window,noverlap,nfft,fs)
这里window是加窗函数,一般默认就可以了,noverlap是覆盖数据个数,一般noverlap=0.5*nfft,fs是采样频率
比如:t=0:0.01:100;采样频率是1/0.01=100Hz
y=(1+0.2*sin(90*2*pi*t)+0.2*sin(150*2*pi*t)).*cos(108.1*10^6*2*pi*t)

那么cpsd(y,y,[],512,1024,100)追问

能不能给我完整的程序啊,我看不懂这是什么意思。

追答

已经给你程序了呀。
你的采样频率是多少啊?假设是采样频率是fs,采样时间是t0。
那么程序:
t=0:1/fs:t0;
y=(1+0.2*sin(90*2*pi*t)+0.2*sin(150*2*pi*t)).*cos(108.1*10^6*2*pi*t);
cpsd(y,y,[],1024,2048,fs) %这个程序直接得到频谱图。
或者
t=0:1/fs:t0;
y=(1+0.2*sin(90*2*pi*t)+0.2*sin(150*2*pi*t)).*cos(108.1*10^6*2*pi*t);
[Y,F]=cpsd(y,y,[],1024,2048,fs); %这个程序得到频谱数据,F是横坐标(Hz)Y是频谱能量
plot(F,Y)

追问

感谢您的帮助!还想问一下,这个是不是它的功率谱啊?如果我还想得到这个时域信号的傅立叶变换后的频域呢?

追答

是的,得到的是功率谱。
如果想得到傅立叶变换后的频域,可以用fft函数
Y=fft(y);注意用fft得到的都是复数,而且Y的前半部和后半部是对称的,一般画图时取前面一半的数据。

追问

t=0:0.001:2*pi;
y=(1+sin(90*2*pi*t)+sin(150*2*pi*t)).*cos(108.1*10^6*2*pi*t);
Y=fft(y)
plot(abs(Y))我是这样写的,但是我不知道画出来的图像横,纵坐标的意思,再次请教您一下。

追答

纵坐标就是傅里叶谱啊,横坐标要自己做的。你如果直接用plot(abs(Y))的话,横坐标是没有意义的。你应该自己做一个横坐标向量。在绘制傅里叶谱时横坐标应该是频率。
F=0:fs/n:fs;%这里的n是y数据个数。
plot(F,abs(Y))

我觉得你概念不清楚,要好好看信号处理的书呀。

温馨提示:答案为网友推荐,仅供参考
相似回答