赞
踩
参考资料
GC4016 芯片手册
GC4016是Craychip公司生产的一种高性能、多通道数字下变频器。
数字下变频芯片功能软件仿真和验证,实验基于Matlab实现GC4016芯片中信号处理部分的功能仿真,并用Verilog语言进行功能实现。
数字下变频是一种数字信号处理技术,用于将高采样率的信号降低到更低的采样率,以减少数据处理和传输的复杂性和成本。通过滤波、抽取和重构等步骤可有效实现信号频带的转换和信息压缩。
IQ信号下变频模块基本结构(数字混频结构)
包含四个相同的下变频电路。每个下变频电路接受高达100 MHz的真实采样率,将选定的载波频率向下转换为零,通过32至16,384的可编程因子对信号率进行抽取对通道进行重新采样,以通过任意因子向下调整采样率。
实验平台: Windows 11,Matlab R2021b,Vivado 2018
使用模块:RAM、NCO、CIC、FIR
Matlab设置基本参数并模拟生成100MHz采样率的ADC信号的输入信号(为便于实验观测信号使用10MHz为载波进行IQ调制的包含50kHz正弦信号和100kHz的余弦信号),使用Simulink实现数字混频,CIC,CFIR,PFIR模块,最终输出1MHz采样率的双音信号。
输入数据存入RAM中,通过FPGA实现时通过直接读取RAM获得数据。即将Matlab生成的信号存入RAM中。
IQ调制可以表示为以下形式
Matlab手册提供的NCO的参考结构(很典型的DDS的结构)
CIC由梳状器,插值模块和积分器组成。CIC滤波器的优点是不使用乘法器的情况下可以实现较高倍数(10倍以上)的信号变频处理,缺点是相比于FIR滤波器带内不平坦需要结合补偿滤波器使用。
实验使用下图结构的五阶CIC
FIR滤波器,GC4016手册中给出了典型参数设置。(FCFIR,FPFIR为输入该FIR的采样频率)
%GC4016(100MHz采样率)-ADC采样信号生成
% 定义余弦信号
t = 0:1/f_osc:0.001-1/f_osc;
y=sin(2*pi*50e3*t)+cos(2*pi*100e3*t);
%生成复数IQ信号形式为I+iQ
y_hilbert=hilbert(y); %
carry=cos(2*pi*f_carry*t) + 1i*sin(2*pi*f_carry*t);%载波
ADC_data=real(y_hilbert.*carry);
频域图
时域图
实验设计最终是需要使用FPGA进行实现的因此仿真设计中的信号格式统一采样定点数格式,通过数字下变频器信号的采样频率应按照设计倍率减少。
图中展示的信号属性符合预期设计。
Simulink仿真时为定点数仿真。
数字模式:数据周期变化正确,数据率从100MHz降为了1MHz
模拟模式:数据时序正确未出现失真
Verilog代码(代码较多不详细展开,直接使用Simulink生成代码)整个模块封装为一个整体输入频率字即可运行。
实验最终在FPGA上实现了100kHz调制到10MHz后通过DDC模块还原出了双音信号,但Modlesim仿真数据需要取反后才能与原始信号波形相同,具体原因我暂未找到。最终输出结果数据采样率从100MHz降到了1MHz。
仿真结果如下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。