如何用MATLAB绘制功率谱密度图形

如何用MATLAB绘制功率谱密度图形,第1张

图片1 图片3 答案1:: function [t,omg,FT,IFT] = prefourier(Trg,N,OMGrg,K) % 输入参数: % Trg : 二维矢量,两个元素分别表示时域信号的起止时间; % N : 时域抽样数量; % OMGrg: 二维矢量,两个元素分别表示频谱的起止频率; % K : 频域抽样数量。 % 输出参数: % t : 抽样时间; % omg : 抽样频率; % FT : 实现傅里叶变换的矩阵~U~及明携系数; % IFT : 实现傅里叶逆变换的矩阵~V~及系数。 T = Trg(2)-Trg(1)t = linspace(Trg(1),Trg(2)-T/N,N)'OMG = OMGrg(2)-OMGrg(1)omg = linspace(OMGrg(1),OMGrg(2)-OMG/K,K)'FT = T/N*exp(-j*kron(omg,t.'))IFT = OMG/2/pi/K*exp(j*kron(t,omg.'))end 在另一个脚本文件中: clcclear close allN=1024*8K=500OMGrg=[0,100]Trg=[0,1][t,omg,FT,IFT] = prefourier(Trg,N,OMGrg,K)% f0=10% f=sin(2*pi*f0*t)f=randn(N,1)F=FT*ffigureplot(t,f)figureplot(omg/2/pi,abs(F).^2)高斯白噪声的功率谱理论上为一直线,你给出的功率谱图不对,谈滚除非它是在某些特定情况下成立,比如经过了滤波器。功率谱密度为傅里叶变换的平方,在我的程序中,先求出傅里叶变换 F,然后求模的平方,得到功率谱。结果的图像看起来是杂乱的,围绕 :::::::::::::::::::请参考以下相关问题:::::::::::::::::::: MATLAB画功率谱密度的图形...求高手 :::::::::::::::::::请参考以下相关问题:::::::::::::::::::: Matlab画图问题,自相关函数,功率谱密度,求具体代码。 :::::::::::::::::::请参考以下相关问题:::::::::::::::::::: 为什么matlab画出的 高斯白噪声功率谱密度不是直线 :::::::::::::::::::请参考以下相关问题:::::::::::::::::::: 为什么用matlab画出的高斯白噪声功率谱密度不是直线 :::::::::::::::::::请参考以下相关问题:::::::::::::::::::: 谁会matlab编程显示功率谱密度呢,跪求... 答案1:: function [t,omg,FT,IFT] = prefourier(Trg,N,OMGrg,K) % 输入参数: % Trg : 二维矢量,两个元素分别表示时域信号的起止时间; % N : 时域抽样数量; % OMGrg: 二维矢量,两个元素分别表示频谱的起止频率; % K : 频域抽样数量。 % 输出参数: % t : 抽样时间; % omg : 抽样频率; % FT : 实现傅里叶变换的矩阵~U~及系数; % IFT : 实现傅里叶逆变换激侍伏的矩阵~V~及系数。 T = Trg(2)-Trg(1)t = linspace(Trg(1),Trg(2)-T/N,N)'OMG = OMGrg(2)-OMGrg(1)omg = linspace(OMGrg(1),OMGrg(2)-OMG/K,K)'FT = T/N*exp(-j*kron(omg,t.'))IFT = OMG/2/pi/K*exp(j*kron(t,omg.'))end 在另一个脚本文件中: clcclear close allN=1024*8K=500OMGrg=[0,100]Trg=[0,1][t,omg,FT,IFT] = prefourier(Trg,N,OMGrg,K)% f0=10% f=sin(2*pi*f0*t)f=randn(N,1)F=FT*ffigureplot(t,f)figureplot(omg/2/pi,abs(F).^2)高斯白噪声的功率谱理论上为一直线,你给出的功率谱图不对,除非它是在某些特定情况下成立,比如经过了滤波器。功率谱密度为傅里叶变换的平方,在我的程序中,先求出傅里叶变换 F,然后求模的平方,得到功率谱。结果的图像看起来是杂乱的,围绕

n=0:0.1:200%设定信号时间长度为0到200秒,采样间隔0.1,则采样频率为10HZ,点慧羡数2001

y=sin(2*pi*0.2*n)+sin(2*0.213*n)

Y=fft(y)%FFTPyy=Y.*conj(Y)/2000%信号功率谱f=10*(0:1000)/2000%计算横轴频率值figure(1)subplot(2,1,1),plot(n,y),title('信号'),xlabel('时间(S)')subplot(2,1,2),plot(f,Pyy(1:1001)),title('信号功率谱'),xlabel('频率(Hz)')

请前敏拍采纳拿首答案,支持我一下。

t=a(:,1)%%%%t是时间;

yt=a(:,2)%%%%yt是数据;

dt=t(2)-t(1)%%%%dt是点距;

lt=length(t)%%%%是数据的长度;

f0=2*pi/(lt*dt)%%%%f0是基频;

fy=fft(yt)%%%%fy是fft变换得到的波谱;

for i=1:1:lt

f(i)=f0*(i-1)%%%%f是频率;

P(i)=abs(fy(i))^2%%%P是功率谱;正嫌神

end

plot(f,P)%%%%画图;

f的单位是秒分之举亏一。就是频率。

P是没有者稿单位的,就是振幅大小。如果有那是yt单位的平方。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12481690.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存