NCO ip核生成正弦波并用FIR滤波器输出滤波波形 | 您所在的位置:网站首页 › 滤波器输出波形是什么 › NCO ip核生成正弦波并用FIR滤波器输出滤波波形 |
NCO ip核生成正弦波并用FIR滤波器输出滤波波形
一、认识ip核1、数字振荡器(NCO)2、FIR滤波器
二、quartus调用ip核1、NCO产生正弦波2、FIR ip核调用3、乘法器 ip核调用
三、项目源码四、modelsim仿真1、启动仿真2、效果查看
五、参考资料
一、认识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; 主要由延迟单元Z-1、乘法器和累加器组成。此结构为直接型FIR滤波器结构,也称横向结构(transverse)。 二、quartus调用ip核 1、NCO产生正弦波调用ip核 Outputs: Single Output:只产生sin wave;Dual Output: 产生sin wave and cos wave。界面认识 调用IP核 调用ip核 例化NCO数字振荡器以及FIR滤波器模块,并进行正弦信号叠加 fir.v module fir( input sys_clk ,//系统时钟 input sys_rst_n ,//系统复位 低电平有效 output signed[11:0] sin1 ,//1Mhz正弦波 output sin1_vld ,//数据输出有效 output signed[11:0] sin10 ,//10Mhz正弦波 output sin10_vld ,//输出数据有效 output signed[12:0] add_sin ,//正弦波叠加输出 output add_vld ,//叠加输出有效 output signed[34:0] fir_out //滤波输出 ); //信号定义 reg signed[12:0] sum_sin ;//叠加结果寄存 wire signed[11:0] sin1_do ; wire signed[11:0] sin10_do ; wire out_en ; wire s_val ; wire s_err ; //结果赋值 assign sin1 = sin1_do; assign sin10 = sin10_do; assign add_sin = sum_sin; assign add_vld = sin1_vld & sin10_vld; //波形叠加 always @(posedge sys_clk or negedge sys_rst_n) begin if(!sys_rst_n)begin sum_sin |
CopyRight 2018-2019 实验室设备网 版权所有 |