周期信号的功率谱?
周期信号的功率谱与信号的幅度有什么关系吗?能否通过功率谱间接求取信号幅度呢?
回复 楼主 grassing 的帖子
周期信号的频谱是离散的,用频谱概念就很好了,功率谱密度适用于能量连续分布的随机信号。但在做周期信号的FFT时,应取其整数倍周期长度数据。
回复 沙发 hcharlie 的帖子
我之前是用的FFT 来求幅度和相位的但是当频率高于50KHz的时候,求得的值是不对的
而且我都是整周期采样
所以我才考虑通过其他方法来求信号的幅度和相位
回复 板凳 grassing 的帖子
50KHz是信号频率还是采样频率?回复 地板 hcharlie 的帖子
是信号频率,采样频率是5MHz,采样点200个回复 5楼 grassing 的帖子
通常做FFT采样点数应为2的整数幂,128,256点等等,又要采集整数周期,你现在采集了2个整周期,如果变成256点,采集频率应该为6.4M回复 6楼 qhai_yun 的帖子
不太明白我直接用matlab的fft(x)函数,它会自动补零为256个点吧?
你说的采集频率是6.4M是什么意思 matlab的fft(x)函数, 若长度非2的整数幂, 其实是DFT不会自动补零, 除非给定fft(x,n), n>length(x)
试试下面程序
fs=5000000; tt=; tt=tt(1:200); Sol=[];
fnA=; nlengf=length(fnA);
for ii1=1:nlengf, fn=fnA(ii1); dd=sin(2*pi*fn*tt); figure;plot(tt,dd); grid;
fftlengA=; nleng=length(fftlengA);
for ii=1:nleng, fftleng=fftlengA(ii);
spec=fft(dd,fftleng); ind='; spec=abs(spec(ind))*2/fftleng; Hz=(ind-1)*fs/fftleng;
figure; stem(Hz,spec); grid;
tRms=sqrt(sum(dd.^2)/length(dd)); fRms=sqrt(sum(spec.^2))/sqrt(2);
Sol=;
end
end
disp(Sol) 楼上是变化fft长度的影响
试试改变信号频率的影响
fs=5000000; tt=; tt=tt(1:200); Sol=[];
fnA=; nlengf=length(fnA);
for ii1=1:nlengf, fn=fnA(ii1); dd=sin(2*pi*fn*tt); figure;plot(tt,dd); grid;
fftlengA=; nleng=length(fftlengA);
for ii=1:nleng, fftleng=fftlengA(ii);
spec=fft(dd,fftleng); ind='; spec=abs(spec(ind))*2/fftleng; Hz=(ind-1)*fs/fftleng;
figure; stem(Hz,spec); grid;
tRms=sqrt(sum(dd.^2)/length(dd)); fRms=sqrt(sum(spec.^2))/sqrt(2);
Sol=;
end
end
disp(Sol) 本帖最后由 wdhd 于 2016-9-18 14:09 编辑
原帖由 grassing 于 2009-3-6 09:06 发表
不太明白
我直接用matlab的fft(x)函数,它会自动补零为256个点吧?
你说的采集频率是6.4M是什么意思
6.4M采样频率采集256点,采集总时间为40微秒,为50KHz信号两个整周期。
关于自动补另问题,我认为:
1)补另到256点以后对于50K信号就不是两个整周期了;
2)像冲击响应这样的信号起始是另,而且又自然衰减结尾趋于另,这样的数据自动补另做FFT比较自然,但对于采集的信号起始值很大,结尾值还很大就嘎然而止,尾巴自动补另就不自然。比如说,你用5M采集200个点的50K信号,如果起始和终止点都接近于另,和起始终止点值都很大,这两种情况补另处理结果会有较大出入。 一般功率谱有好几种表达方式,一种叫做EUpeak,其代表的幅值就是在时域信号中对应频率的峰值,一种为EUrms,其对应的就表示rms了,不同的应用场合中人们关心的也不同,一般仪器上都有选择项供用户使用
回复 8楼 ChaChing 的帖子
ChaChing 能不能解释一下啊有些地方看不懂运行了一下
发现不同数据长度进行fft的时候,得到的幅度是不同的
[ 本帖最后由 grassing 于 2009-3-9 10:33 编辑 ] 我是试出来的, 并非真正讯号分析高手!
理论还是搜搜或高手回答! 5MHz 采样200个点做fft,得到的频率分辨率是5*1000000/200=25KHz,即楼主若要测试的信号频率不是25KHz的倍数,就不会得到准确的结果。
两点建议:减小采样率, 增大FFT的点数
回复 14楼 HzRad 的帖子
我的信号频率是50KHz ,采样频率是5MHz,采样点200,频率分辨率是5e6/200=25K,是信号频率的整数倍啊
页:
[1]
2