本人使用CCS3.3平台TMS320C55xx(Simulator)仿真程序,使用的是DSPlib中的RFFT程序。
用matlab生成10HZ信号,程序使用采样频率128HZ,采样点128个。
相应的在RFFT的例程上进行修改,对输入信号使用GHAPH中的FFT-Mag观测,最大的幅值出现在10HZ位置上,这点没问题。
但是当经过 rfft(x,NX,SCALE)变换后,使用GHAPH对FFT后的结果进行观测,频谱最大的幅值出现在21HZ位置上。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
本人使用CCS3.3平台TMS320C55xx(Simulator)仿真程序,使用的是DSPlib中的RFFT程序。
用matlab生成10HZ信号,程序使用采样频率128HZ,采样点128个。
相应的在RFFT的例程上进行修改,对输入信号使用GHAPH中的FFT-Mag观测,最大的幅值出现在10HZ位置上,这点没问题。
但是当经过 rfft(x,NX,SCALE)变换后,使用GHAPH对FFT后的结果进行观测,频谱最大的幅值出现在21HZ位置上。
我又重新做了一遍,采样频率未变,更换了采样点数,由上面的128个变为256个。结果频谱最大的幅值出现在41HZ位置上!
具体过程如下:
matlab使用一下生成采样点
fs=128;N=256; %采样频率和数据点数
n=0:N-1;
t=n/fs; %时间序列
x=32766*(0+0*sin(2*pi*5*t)+1*sin(2*pi*10*t)+0*sin(2*pi*20*t)); %模拟输入信号
调用RFFT函数结果如图,频谱最大的幅值出现在41HZ(采样点数256),比之前提问时的21HZ(采样点数128)又增大了,现在怀疑与采样点数有关,可是都是完全按照文档进行编写的,rfft(x,NX,SCALE)各参数也没问题,期待官方解答!
试了几组新数据,其中f为单频信号的频率,fs为采样频率,n为采样点数,fmax为fft后频谱最大处的频率。
f=10Hz, fs=64Hz, n=64, fmax=21Hz.(是f的2倍)
f=10Hz, fs=64Hz, n=128, fmax=41Hz.(是f的4倍)
f=10Hz, fs=64Hz, n=256, fmax=81Hz.(是f的8倍)
f=10Hz, fs=128Hz, n=64, fmax=11Hz.(有1Hz偏差,可能与我正弦信号取整所影响)
f=10Hz, fs=128Hz, n=128, fmax=21Hz.(是f的2倍)
f=10Hz, fs=128Hz, n=256, fmax=41Hz.(是f的4倍)
f=20Hz, fs=64Hz, n=64, fmax=41Hz.(是f的2倍)
f=20Hz, fs=128Hz, n=64, fmax=21Hz.(有1Hz偏差,可能与我正弦信号取整所影响)
以上我用matlab仿真,数据结果都没有问题。可是使用CCS就是出现了上述问题,即最大频谱的频率点不等于单频信号的频率f,还与采样频率fs、采样点数n有关。现在实在是搞不懂了,期待答复。