作业帮 > 综合 > 作业

求信号y的功率谱密度,画出图形

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 15:12:43
求信号y的功率谱密度,画出图形
clear;
clc;
fs=30*10^6; %采样率1k
sweeptime=10^(-4); %扫描时间
t=0:1/fs:sweeptime;%扫描时间为0~12s
f0=5*10^6; %初始频率
f1=10*10^6; %结束频率
y=chirp(t,f0,sweeptime,f1); %产生扫频信号 频率在0~12s内从10Hz增加到120Hz
figure(1) %画第一幅图
subplot(2,1,1) %在第一个位置绘图
%plot(t(1:2000),y(1:2000)); %显示扫描信号波形
plot(y);
title('signal chirp figure') %标题
xlabel('Time(s)') %横坐标标签
ylabel('Amplitude') %纵坐标标签
在你的程序后面加上这个
p=(abs(fft(y,4096))/4096).^2;   %求功率谱
subplot(2,1,2);
plot(p);
title('功率谱');
我也是菜鸟,不对的话见笑了.

再问: 你这求出来的是功率谱吗?应该是简单的做傅里叶变换得到的频谱而已吧
再答: 我觉得有平方就是功率谱,没有平方是频谱。另外你要的是功率谱密度还是功率谱?我看了另一端程序,改成画功率谱密度的话应该是如下程序 yy=fft(y,4096); p=yy.*conj(yy)/4096; %计算功率谱密度 ff=10000*(0:2047)/4096; %计算变换后不同点对应的频率值 subplot(2,1,2); plot(ff,p(1:2048)); ylabel('幅值'); xlabel('频率(Hz)'); title('功率谱密度(周期图法)');
再问: 我要的是通过间接法得到的功率谱密度,就是对信号先求自相关,然后求傅里叶变换得到的PSD
再答: 你再看看这段函数,也是看了别人的给你改的,不知道是不是你所需要 nfft=4096; yy=xcorr(y,'unbiased'); %计算序列的自相关函数 y_fft=fft(yy,nfft); P=abs(y_fft); index=0:round(nfft/2-1); k=index*fs/nfft; PSD=10*log10(P(index+1)); subplot(2,1,2); plot(k,PSD); ylabel('幅值'); xlabel('频率(Hz)'); title('功率谱密度(间接法)'); 这个思想是对的,横轴你可以根据需要稍加改动
再问: 结果画出来的图是这样的,我感觉应该不对啊!你可以看下我的百度知道的另外一个问题
再答: 没太理解你的意思。你最终目的是想要另一个问题中图对对应的时域信号么?这两个问题的联系我没有搞清楚,这个问题中y的频谱也不是你问的另个问题中的频谱啊
再问: 另一个问题你的理解是对的。我这个问题其实也就是想找到这样一个时域信号,而提出来的。说白了,我自己也画出了功率谱,但是就是觉得图不应该这样。我的最终问题就是要这样一个时域信号