基于cordic算法的数字下变频实现笔记.docx

基于cordic算法的数字下变频实现笔记.docx

ID:58863685

大小:133.22 KB

页数:5页

时间:2020-09-22

基于cordic算法的数字下变频实现笔记.docx_第1页
基于cordic算法的数字下变频实现笔记.docx_第2页
基于cordic算法的数字下变频实现笔记.docx_第3页
基于cordic算法的数字下变频实现笔记.docx_第4页
基于cordic算法的数字下变频实现笔记.docx_第5页
资源描述:

《基于cordic算法的数字下变频实现笔记.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于cordic算法的数字下变频的实现---------孙月2014/12/11Matlab实现的参数采样频率fs=62e6;调制频率f1=15.5e6;采样点数N=1024*32;n=1:N;时域时间“t”t=n/fs;频域里的频率参考freq=(-N/2:N/2-1)/N*fs;在一个matlab脚本中,时域到频域转换之后。它们的点数是一一对应的,均为N个点。在时域中N个点,只是离散的点与时间“t”没有关系,作图时plot(t,x)才建立的关系,可以理解为把N个点放在了时间t上。频域上也是如此(一定要真正理解)。主要步骤1

2、、用wgn函数产生N点的白噪声x;2、再将白噪声信号x,用2M的低通滤波器,产生零中频的带宽信号x_0;3、用调制信号cos(2*pi*fi.*t)与信号x_0相乘,变频到15.48M为中心的带宽信号sig。将信号sig扩大2^14倍后,以2进制补码的形式存入到txt文本中,作为硬件实现时的测试激励信号;4、在matlab中,用cordic算法实现将信号分为I,Q两路,并作时域,和频域分析。5、同时在matlab中直接调用cos,sin函数,产生NCO算法,验证4中的cordic算法是否正确。6、基于ise平台,实现cordi

3、c算法,并将I,Q两路输出存在txt文本中,再导入到matlab中,做频谱分析,与(4)中matlab实现的cordic算法结果比对,验证硬件实现是否正确。下面是具体实现,以及遇到的问题Wgn(1,N,1)是产生一维的N个点,平均功率为1.低通滤波器的实现有两种方式一、直接调用fdatool工具,设置参数,低通滤波时采样频率fs>2fp。带通时,fs>2(fh-fl),将fs设置的稍大一点性能更好。生成的系数,通过“file”—>”export”导出,在matlab中保存以num_1.mat格式保存在该件夹中。在本脚本中使用时

4、,fir_1=load('Num_1.mat'),fir_1.Num_1即为各系数。二、直接使用fir1(N,Wn)函数,直接生成一个N级的FIR数字低通滤波器,返回一个长度为N+1的向量Wn=fpass/(fs/2).让信号通过低通滤波器,可以直接引用filter函数,x_0=filter(coefficient,1,x),x_0为滤除高频成分的输出信号。X是输入信号。调制信号与信号x_0相乘,两个相量相乘可以采用点乘“.*”,变频到15.48M为中心的带宽信号sig。此处输出的信号sig,会作为硬件的测试输入数据,参与以后

5、的算术运算,所以要以二进制补码的形式保存在一个txt文本里。这里又要用到一个函数fi,FI=fi(MAX,1,16)即把信号sig中最大的数MAX=1(由于此处做了归一化处理)用16位字长的二进制数表示,其中1,代表有一位是符号位,整数位一位,小数部分是14位,共16位。最后将sig归一化的结果*2^14后用round取整,得y(i),即保留到了sig信号的小数点后14位。此处还需要注意到是,负数y(i)转成补码时,将y(i)+2^16,再转换成二进制,求得二进制负数的补码2^16次方对于16位二进制是一个周期,如y=-5,-

6、5的补码=1111_1111_1111_1011,5的补码=0000_0000_0000_0101,16位,2^16+(—5)=65531,65531的二进制=1111_1111_1111_1011.与-5的补码相同。在matlab中产生cordic算法Cordic算法有两种工作模式,一种是旋转模式,一种是向量模式。旋转模式是赋初值x(0)=1,y(0)=0,通过迭代使最后的旋转角度Zi趋于0.X(i)=cos(μ),y(i)=sin(u).而向量模式不断的使y(i)趋于0。本文采用的是旋转模式,sig(n)即为x(1),y(

7、1)=0.sig每输入一个数据相位累加2*pi*f1/fs,经过cordic算法的n级循环后,输出I,Q两路信号。cos,sin运算以2*pi为周期,相位累加超过2*pi时,将其转换到[0:2*pi]域,即累加的角度angle_add-2*pi。此处不能用floor函数,原因未知????由于cordic算法i次旋转的角度,为atan(1/2^(-i+1)),N次旋转之后的累加旋转角度在(-99度,99度)之间。所以在进入到cordic算法的第一级时,要将[0:2*pi]域的累加相位在转换到第一象限,用xf,yf标记转换过程中第

8、一级输入信号x(1),y(1)符号的变化。例如pi/2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。