matlab fft()函数对一正弦函数频谱分析的困惑 10
我对一个在一段时间内频率为5M的10个周期的正弦波信号做fft,结果发现核心频率的最大值没有出现在5M位置处,不知道问题出在什么地方?希望大家帮忙!附上我的激励函数,和f...
我对一个在一段时间内频率为5M的10个周期的正弦波信号做fft,结果发现核心频率的最大值没有出现在5M位置处,不知道问题出在什么地方?希望大家帮忙!
附上我的激励函数,和fft分析程序
function [Vi,T]=Sin_Impulse()
t0=2E-6; % 10个周期
Vamp=1; % 电压幅值10V
f=5E6; % 脉冲5MHz
w=2*pi*f; % 角频率
index=1;
for t=0:(1E-9):1E-5;
if(t<=t0)
Vi(index)=Vamp*sin(w*t);
else
Vi(index)=0;
end
T(index)=t;
index=index+1;
plot(T,Vi);
end
>> Y=fft(Vi,512);
>> Pyy=Y.*conj(Y)/512;
>> f=1E8/512*(0:255);
>> plot(f,Pyy(1:256)) 展开
附上我的激励函数,和fft分析程序
function [Vi,T]=Sin_Impulse()
t0=2E-6; % 10个周期
Vamp=1; % 电压幅值10V
f=5E6; % 脉冲5MHz
w=2*pi*f; % 角频率
index=1;
for t=0:(1E-9):1E-5;
if(t<=t0)
Vi(index)=Vamp*sin(w*t);
else
Vi(index)=0;
end
T(index)=t;
index=index+1;
plot(T,Vi);
end
>> Y=fft(Vi,512);
>> Pyy=Y.*conj(Y)/512;
>> f=1E8/512*(0:255);
>> plot(f,Pyy(1:256)) 展开
1个回答
展开全部
f=1E8/512*(0:255); 这个有问题的,采样频率为100M,即1E9
改为f=1E9/512*(0:255)即可;
另外你写的这个程序效率太低,改写了下
t0=2E-6; % 10个周期
Vamp=1; % 电压幅值10V
f=5E6; % 脉冲5MHz
w=2*pi*f; % 角频率
index=1;
t1=0:(1E-9):1E-5;
Vi = zeros(size(t1));
t=0:(1E-9):t0;
Vi(1:2001) = Vamp*sin(w*t);
plot(t1,Vi)
>> Y=fft(Vi,512);
>> Pyy=Y.*conj(Y)/512;
>> f=1E9/512*(0:255);
>> plot(f,Pyy(1:256))
改为f=1E9/512*(0:255)即可;
另外你写的这个程序效率太低,改写了下
t0=2E-6; % 10个周期
Vamp=1; % 电压幅值10V
f=5E6; % 脉冲5MHz
w=2*pi*f; % 角频率
index=1;
t1=0:(1E-9):1E-5;
Vi = zeros(size(t1));
t=0:(1E-9):t0;
Vi(1:2001) = Vamp*sin(w*t);
plot(t1,Vi)
>> Y=fft(Vi,512);
>> Pyy=Y.*conj(Y)/512;
>> f=1E9/512*(0:255);
>> plot(f,Pyy(1:256))
富港检测技术(东莞)有限公司_
2024-04-02 广告
2024-04-02 广告
正弦振动多用于找出产品设计或包装设计的脆弱点。看在哪一个具体频率点响应最大(共振点);正弦振动在任一瞬间只包含一种频率的振动,而随机振动在任一瞬间包含频谱范围内的各种频率的振动。由于随机振动包含频谱内所有的频率,所以样品上的共振点会同时激发...
点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询