低通FIR将基带信号的旁瓣滤去,保留基带信号的主瓣。基带信号之所以是基带信号,正是因为它处在零中频附近。实际上,信号之所以在高频甚至射频的原因主要有:
1.接收天线的长度与电磁波的波长存在正比例关系,所以波长越小,接收天线也可以做的越小。电磁波波长与频率存在反比例关系,所以需要将基带信号上变频至高频部分,方便天线接收。
(资料图)
2.方便扩展信号带宽,提高频带利用率。
本文将通过DDS IP核输出的正弦波,与基带信号混频上变频至高频部分,将涉及一点数字信号处理内容。
首先,简单写一下上变频的数学理论基础,
基带信号乘以一个正弦波,频域卷积,频谱上会将基带信号的频谱搬移到正弦波的频率。
所以,我们需要做的就是生成一个所需的正弦波,并与基带信号相乘。这个过程就需要使用到Xilinx的DDS IP核以及DSPIP核。
在Vivado中IP Catalog中找到DDS IP核,
DDS IP核设置
系统时钟选择50MHz,通选数量选择1,其他的可以保持默认。注意Configuration Option,这里选择Phase Generator and SIN COS LUT,这个模式会根据GUI设置自动产生所需要的频率的正弦波;而另一种模式SIN COS LUT ONLY,会根据输入的相位信息phase_data输出对应的正弦波值,相位信息需要不断地自加获取输出的正弦波值。两种模式各有利弊,第一种模式设置更方便,第二种模式不需要固定输入时钟,可以改变参数获取不同的频率的正弦波。
第一种模式下,dds实例化,只需要取m_axis_data_tdata的数据即可,输出的波形按照GUI设置的要求。
dds_compiler_0 dds_inst (.aclk(clk_50m), // input wire aclk.m_axis_data_tvalid(), // output wire m_axis_data_tvalid.m_axis_data_tdata(cos_o), // output wire [15 : 0] m_axis_data_tdata 13 - 2.m_axis_phase_tvalid(), // output wire m_axis_phase_tvalid.m_axis_phase_tdata() // output wire [31 : 0] m_axis_phase_tdata );
第二种模式下,dds实例化,需要不断地自加相位数据,DDS会根据相位数据输出对应的正弦波值。这更像ROM表,相位数据为ROM地址,根据ROM地址输出相应地址的数据。
always @ (posedge clk orposedge rst)beginif (rst) phase_data <= 16"d0;else phase_data <= phase_data + fre_word;enddds_compiler_0 dds_i (.aclk(clk), // input wire aclk.aclken(1"b1), // input wire aclken.s_axis_phase_tvalid(1"b1), // input wire s_axis_phase_tvalid.s_axis_phase_tdata(phase_data), // input wire [15 : 0] s_axis_phase_tdata.m_axis_data_tvalid(), // output wire m_axis_data_tvalid.m_axis_data_tdata(t_data) // output wire [31 : 0] m_axis_data_tdata);
其实DDS的原理正是ROM表存储,相位数据就是地址信息,根据地址信息查找表,输出对应数据,FPGA擅长的正是查表。第一种模式固定了相位数据和相位差,简化了操作但固定了使用时的输出频率;第二种模式开放了相位数据接口,输出的频率更加多变。
根据公式可知,
上面示例中的fre_word计算来源于这个公式。
DDS IP核设置
Output Selection可以选择输出的波形是Sine,Cosine,Sine and Cosine。注意选择Sine and Cosine时输出的信号宽度是Sine,Cosine的两倍,需要使用截位的方法将信号的前半段与后半段分开。高半段为Sine,低半段为Cosine。
DDS IP核设置
这个部分根据需要的频率进行设置。
DDS IP核设置
可以看到预想10M,但由于精度的问题,实际输出的频率是9.9999MHz,非常接近了。
接下来就是DSP IP核的使用,在Vivado中IP Catalog中找到DDS IP核。
DSP IP核
使用最简单的乘法功能,其他通道不选择。
DSP IP核
设定A,B的位数以及输出数据的位宽之后就完成了DSP IP核的设置。
xbip_dsp48_macro_0 dsp_product_inst (
.CLK(clk_50m), // input wire CLK
.A(fir_out[19:8]), // input wire [11 : 0] A
.B(cos_o[13:2]), // input wire [11 : 0] B
.P(out_data) // output wire [23 : 0] P
);
为了平衡性能与面积,所以A,B设置的12位输入,分别对FIR和DDS的正弦波进行了截位
由此,就完成了基带信号的上变频操作;但是,这样的上变频会带来双边带问题,占用了2倍的基带信号带宽。为了解决这个问题,又可以引入IQ调制。IQ调制如何操作以及它的原理等待后续的文章梳理。
最后,上板测试可以看到如下图所示。
实测图
duc_data是搬移到高频之后的信号,最后可以对duc_data进行截位操作,以适应实际中DAC的位数限制。
- 使用DDS将基带信号上变频
- 天天最新:投资交易对价不超164亿元,华晨三年重整之路接近尾声
- 软件板块强势拉升,鼎捷软件、福昕软件等大涨,星环科技再创新高-世界快播
- 鼎通科技股价盘中创历史新高
- 得润电子于上海新设电子科技子公司 业务含物联网技术研发|全球百事通
- 【天天时快讯】胡润发布中国新能源产业集聚度城市榜 深圳位列榜首
- 每日热讯!6月19日河北白龙苯酐价格走势暂稳
- 四川大学望江校区地址街道_四川大学望江校区地址
- 中国丰收地图:中国粮仓 装满中国粮 环球今头条
- 《劲舞团》6月版本上线 收藏璀璨盒装回忆 天天最新
- 当前热讯:三线晋级!向鹏3比1掀翻欧洲亚军,林诗栋淘汰韩国劲敌
- 世界滚动:五部门联合启动2023年新能源汽车下乡活动
- 凝神静气的意思_怎么理解凝神静气
- 今日聚焦!6•18数据出炉 大庆排全省第二
- 真正的卷王还得是浙江老人 今日最新
- 恩威医药:6月16日融资买入94.63万元,融资融券余额3668.15万元
- 厦大新闻学教授谈张雪峰言论:可关切其质疑,但不必害怕其破坏力
- 每天吃 1 个猕猴桃会发生什么?皮肤会变好?便便会顺畅? 环球热消息
- 缘来婚恋指导_缘来婚恋_环球热讯
- 有诗意的成语及解释_有诗意的成语 环球视讯
- 当前头条:庆端午,话诗祖——两岸屈氏后裔再聚屈氏故里
- 200多名台胞跨海结武缘_天天报道
- 全国台联常住大陆台胞代表人士交流年会在武汉召开_世界新动态
- 甘肃高校中亚学子访丝路起点西安:听到乡音,我回故乡了
- 6月14日《青海新闻联播》
- 祁连山国家公园青海片区认真做好正式设园前各项准备工作
- 祁连山国家公园(青海) 第二届自然观察节在门源启动
- 甘孜州持续推进草原生态保护修复工作
- 第十七届中国·青海国际抢渡黄河 极限挑战赛(循化站)圆满结束|每日视讯
- 世界热推荐:宜昌信访局到当阳督导信访积案化解工作