微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > DSP学习交流 > + 官方FFT测试与CCS波形查看功能

+ 官方FFT测试与CCS波形查看功能

时间:10-02 整理:3721RD 点击:
这几天每天就是到12点才睡,外设功能已经测试的差不多了,都是一些简单的程序,也就没必要再发贴了,最终还是要做自己的项目的。
今天 就先测试一下官方给出的FFT算法的能力 。
首先,导入FFT工程 。


可以看到,工程中多了一个.m的文件 ,这就是matlab的程序文件,既然有,那就运行一下,看看吧。
以下是matlab程序文件。

  1. fs=1000;                                     % 采样频率
  2. N=1024;                                      % 数据点数
  3. n=0:N-1;t=n/fs;                              % 时间序列
  4. x=5*sin(2*pi*150*t)+15*sin(2*pi*350*t);      % 信号
  5. subplot(2,1,1),plot(t,x);                    % 绘制时域信号图
  6. y=fft(x,N);                                  % 对信号进行快速傅里叶变换
  7. mag=abs(y);mag=mag*2/N;                      % 振幅
  8. f=n*fs/N;                                    % 频率序列
  9. subplot(2,1,2),plot(f,mag);                  % 绘制振幅图
  10. xlabel('频率/Hz');
  11. ylabel('振幅');title('N=1024');grid on;
  12. grid on;                                     % 绘制振幅图

复制代码

可以看到,这个算法是与程序中的c文件是一样的。在matlab中运行一下。可以看到结果
以下是FFT的原始信号。


以下是FFT后的幅值。可以看到在150与350的地方才会有值。这与原始信号的函数是一样的。

  1. x=5*sin(2*pi*150*t)+15*sin(2*pi*350*t);

复制代码



回来看看一下CCS5.5中的程序仿真结果。
可以看到工程中有两个仿真器配置文件,simulation.ccxml是软件仿真配置文件。默认情况下是有效的。
直接点Debug就可以了。在产生信号后加上断点,查看一下产生信号的波形。
如下图,打开信号查看窗口。


在窗口中设置好相应的参数。点击 OK


会生成如下的信号波形,可以看出,与matlsb产生的波形是一样的。
C文件中的程序为

  1. Input[i]=5*sin(2*PI*150*(i/Fs))+15*sin(2*PI*350*(i/Fs));

复制代码




如上方法,再建一个窗口,查看幅值。一定是与matlab的结果相同的。


以上就是对官方FFT测试的结果,用profile clock测了下,有9416个时钟。效率还是很高的,虽然这根实际运行时的时间有误差,但也能说明问题。

小弟最近也在做FFT,资料很棒,受益匪浅!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top