摘要:本教程介绍使用ModelSim实现DDS(直接数字频率合成)数字图像处理的方法。DDS经过调节频率控制字改变输出波形频率,利用ROM查表法达成相位到幅度映射。工程采用全自动化仿真环境,只需双击top_tb.bat即可完成仿真。教程在img_process_pkt包中新建img_dds任务,经过传递不同频率参数生成6个不同频率的正弦波图像,最终合成GIF动图直观展示频率与采样

(本系列只需要modelsim即可搞定数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击通过文件就能够完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球:成工fpga,关注即送200GB学习资料,链接已置顶!)

DDS(Direct Digital Frequency Synthesis)即直接数字频率合成,是一种通过数字技术生成模拟信号的方法,属于计算机术语。其核心包括相位累加器、波形存储器和数/模转换器,通过调节频率控制字改变输出波形频率,并利用ROM查表法实现相位到幅度的映射,最终经滤波生成连续模拟信号。

由于本系列没有涉及任何的时序逻辑,所以只能模拟一下DDS,而且成工在《孩子都能学会的FPGA》中有非常详细的详细的讲解,大家允许去看一下。

DDS,直白的来说就是用固定点数的正弦波(比如256个点的数据)来生成不同频率的正弦波,说白了就是抽样,比如一定的时钟周期,用一个周期256个点可以生成1MHz的正弦波,那我们各一个点采样一个点,也就是128个可以生成一个正弦波,时间减少了一半,周期就增加了一倍,也就是2MHz,也就是说,频率越高,一个周期采样点越少。当然,用DDS行生成并不是基准频率整数倍的频率,比如1.5MHz之类的。

闲话少说,我们直接在img_process_pkt包的image_process类中新建一个img_dds的task,如下所示,通过传递不同的频率来生成不同频率的正弦波。

仿真文件tb_image_sim如下,设置新图片的参数,用for循环直接生成6个不同频率的正弦波的图片。

最后我们双击sim文件夹下的top_tb.bat资料,达成系统的自动化仿真。

通过打开img文件夹,生成的图片如下所示,6张图片有点多,直接合成gif动图,能够很明显的看出来,随着频率的增加,周期内采样点越来越少。

posted @ 2025-07-24 14:14  yjbjingcha  阅读(21)  评论(0)    收藏  举报