了解数字信号混叠,实现信号的混频处理并使用FFT算法对混频信号进行处理并分析频谱。
信号混频
混频信号:两路信号进行相加,并对结果的幅度进行限制,从而产生混合后的输出波形。
(1)输入信号的产生:外部信号输入和自定义信号输入。在本实验中采用的是自定义信号输入,自定义两路输入信号分别为:f1(t) = 4sin (20πt − π/3)和f2(t) = sin (200πt )。
(2)混频信号的频谱分析:对混频后的信号利用 FFT 算法进行快速傅里叶变换,得到混频信号的频谱图。经过信号频谱的分析,可知,混频后的信号频谱与原信号频谱的关系为:混频信号的频谱为原信号在频谱上的叠加。
程序流程设计
设计中首先在程序中自定义生成两路信号,接着将两路信号混频相加,最后将混频信号转为复数模式,并对混频信号进行FFT变换。
dsplib_c674x_3_4_0_0
将DSPLIB安装到CCS5.5 的安装路径,安装完成后会有相应的文件夹出现。源码所在路径:\dsplib_c674x_3_4_0_0\packages\ti\dsplib\src
函数源码
FFT运算函数
使用 DSPLIB 的库来进行FFT运算。使用时,直接调用“DSPF_sp_fftSPxSP.h”文件 即可。
API接口
void DSPF_sp_fftSPxSP(int N, float *ptr_x, float *ptr_w, float *ptr_y, unsigned char *brev, int n_min, int offset, int n_max);
程序使用 DSPLIB 的库来进行FFT运算,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的FFT函数中,第一个参数是样本中 FFT 的长度,第二个参数是指向数据输入的指针。第三个参数是指向复杂旋转因子的指针。第四个参数是指向复杂输出数据的指针。第五个参数是指向包含 64 个条目的位反转表的指针。如果样本的FFT长度可以表示为 4 的幂,第六个参数是4,否则 第六个参数是 2 。第七个参数是从主FFT开始的样本中的子 FFT偏移索引 。 第八个参数是样本中主FFT的大小。
FFT逆变换函数
使用DSPLIB 的库来进行FFT逆变换。使用时,直接调用“DSPF_sp_ifftSPxSP.h”文件 即可。
API接口
void DSPF_sp_ifftSPxSP (int N, float *ptr_x, float *ptr_w, float *ptr_y,
unsigned char *brev, int n_min, int offset, int n_max);
程序使用DSPLIB 的库来进行FFT逆变换,调用的程序源码和使用说明可以安装DSPLIB后查看。调用的IFFT函数中,第一个参数是样本中 FFT 的长度。第二个参数是指向数据输入的指针。第三个参数是指向复杂旋转因子的指针。第四个参数是指向复杂输出数据的指针。第五个参数是指向包含 64 个条目的位反转表的指针 。如果样本的FFT长度可以表示为 4 的幂,第六个参数是4,否则第六个参数是2 。第七个参数是从主FFT开始的复杂样本中的子FFT偏移索引 。第八个参数是样本中主FFT的大小。
实验设备
本实验所需硬件为实验板、仿真器和电源。
硬件连接
(1)连接仿真器和电脑的USB接口。
(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程,生成可执行文件
将CCS连接实验箱并加载程序
程序加载完成后点击运行程序
运行程序后,程序执行完成后会在断点处停下,可以通过CCS的图形显示工具查看波形。
首先查看两路输入波形,点击工具,选择图像显示,选择双曲线图显示;点击Import,选择导入工程配置好的属性,可以看到图像的属性配置,点击确认后可看到两路输入波形。
接着查看两路输入波形的幅度频谱,点击工具,选择图像显示,选择FFT幅度;点击Import,选择导入工程配置好的属性,可以看到图像的属性配置,点击确认后可看到一路输入波形的幅度频谱。再次点击工具,选择图像显示,选择FFT幅度;点击Import,选择导入工程配置好的属性,可以看到图像的属性配置,点击确认后可看到另外一路输入波形的幅度频谱。
最后查看混频后的波形和幅度频谱,点击工具,选择图像显示,选择双曲线图显示;点击Import,选择导入工程配置好的属性,可以看到图像的属性配置,点击确认后可看到混频波形及频谱。
文章评论(0条评论)
登录后参与讨论