NCO ip核生成正弦波并用FIR滤波器输出滤波波形
一、认识ip核
实验任务:使用NCO ip核分别生成1Mhz和10Mhz正弦波,叠加两个列波作为输入数据,通过FIR滤波器处理得到输出波形,分析FIR输入输出两列波形,查看FIR滤波器效果。
1、数字振荡器(NCO)
- 英文:numerically controlled oscillator;
- 是软件无线电、直接数据频率合成器(DDS,Direct digital synthesizer)、快速傅立叶变换(FFT,Fast Fourier Transform) 等的重要组成部分;
- 同时也是决定其性能的主要因素之一,用于产生可控的正弦波或余弦波。随着芯片集成度的提高、在信号处理、数字通信领域、调制解调、变频调速、制导控制、电力电子等方面得到越来越广泛的应用。
基本原理
数控振荡器的作用是产生正交的正弦和余弦样本。传统方法是采用查表法(LUT),即事先根据各个正余弦波相位计算好相位的正余弦值,并按相位角度作为地址存储该相位的正余弦值,构成一个幅度P相位转换电路(即波形存储器)。在系统时钟的控制下,由相位累加器对输入频率字不断累加,得到以该频率字为步进的数字相位,再通过相位相加模块进行初始相位偏移,得到要输出的当前相位,将该值作为取样地址值送入幅度P相位转换电路,查表获得正余弦信号样本。
FPGA实现
频率控制字寄存器将接收到的的频率控制字送入相位累加器,相位累加器对系统时钟进行计数,每到达输入频率控制字的值即对相位进行累加,随后将累加值送入相位相加器,与相位控制字寄存器接收到的初始相位进行相加,得到当前的相位值。
有关更多的NCO认识,可参考链接:
NCO (数字振荡器)
2、FIR滤波器
- 广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号;
- FIR滤波器是全零点结构,系统永远稳定;
- 具有线性相位的特征,在有效频率范围内所有信号相位上不失真;
- 在无线通信收发机中的DDC/DUC模块,抽取和内插都需要加入滤波器以防止信号在频谱上混叠,最典型的是采用FIR滤波器实现半带滤波器。
FIR滤波处理如下式所示,其中x(n)为输入信号,h(n)为FIR滤波系数,y(n)为经过滤波后的信号;N表示FIR滤波器的抽头数,滤波器阶数为N-1;
FIR滤波器在FPGA中的实现结构
主要由延迟单元Z-1、乘法器和累加器组成。此结构为直接型FIR滤波器结构,也称横向结构(transverse)。
二、quartus调用ip核
1、NCO产生正弦波
调用ip核
进入配置界面,修改ip名称以及保存路径
界面认识
Generation ALgorithm:
- Small ROM(消耗存储空间少,精准度低);
- Large ROM(消耗存储空间大,精准度高);
- CORDIC(不消耗存储空间,但占用大量逻辑块,精准度最低);
- Multiplier-based(使用更少的存储空间,同时使用逻辑块和DSP块)。
Outputs:
- Single Output:只产生sin wave;
- Dual Output: 产生sin wave and cos wave。
界面认识