一、课程设计问题的提出一、课程设计问题的提出一、课程设计问题的提出一、课程设计问题的提出::::试设计一数字下变频器,并用matlab仿真;二、二、二、二、解决问题的原理、技术方案解决问题的原理、技术方案解决问题的原理、技术方案解决问题的原理、技术方案以及以及以及以及matlabmatlabmatlabmatlab验证验证验证验证::::数字下变频器的原理说明:数字下变频器(DDDDDC)是接收机A/D变换后,首先要完成的处理工作,一般的DDC由本地振荡器(NCO)、混频器、低通滤波器和抽取器组成.主要作用:其一是把中频信号变为零中频信号;其二是降低采样率。从频谱上看,数字下变频将A/D采样后信号从中频变换,到基带。这样的处理由两步完成:首先是将输入信号与正交载波相乘,然后进行数字滤波滤除不需要的频率分量。NCO,混频器,数字滤波器速率要等于采样率,采样率低于600MHz,很难实时的在FPGA中进行处理。数字下变频器的基本结构:NCO:产生正余弦序列,即I/Q两路信号。CIC滤波器,适用于系统中的第一级抽取和进行大的抽取因子的抽取工作,并降低速率。FIR滤波器,完成对整个信道的整形滤波。DDC主要有三种实现途径:采用专用芯片、自制专用芯片、基于DSP或FPGA等通用芯片。NCO采用的直接数字频率合成技术(DDS)是一种实用的频率合成技术,DDS由相位概念出发直接合成所需波形的一种新的频率合成技术。DDS合成技术采用了简便和有效的查表法。运用matlab进行NCO的仿真:程序:t=0:0.001*10^(-6):10^-6;I=110*cos(7*(10^7)*t-0.5*pi);subplot(2,1,1);plot(t,I);gridon;Q=110*sin(7*(10^7)*t+0.5*pi);subplot(2,1,2);plot(t,Q);gridon;信号的频率为11.2MHzCIC滤波器:CIC滤波器,即级联积分梳状滤波器,具有结构简单,便于处理,运算速度快等特点。CIC滤波器的积分器H1(Z)是不稳定系统,如果不采取措施,它们级联后会出现溢出现象。另外,滤波器级数过多还会引起高频失真现象。为了获得较大的阻带衰减,降低混叠影响,在信号带宽一定的条件下,应尽可能的采用小的抽取因子或增大采样率fs,后者意味着CIC抽取滤波器一般要用在抽取系统的第一级(输入采样率最高)。CIC的冲击响应:CIC的冲击响应的Z变换为:其中H1(Z)为,H2(Z)为。分析H1(Z)和H2(Z)从结构上可以看出H1(Z)其实就是一个积分器。通过Z变换和傅立叶变换的关系可得两式的傅立叶变换H1(z),H2(z)的matlab程序代码:w=0:pi/100:2*pi;10-1()0,nDhn≤≤⎧=⎨⎩,其他101112()()111(1)1()()DnnDDHzhnzzzzzHzHz−−=−−−−=−=−=−−=∑iii111()1Hzz−=−2()1DHzz−=−1/2/2/2/2()/21()11()2sin()22sin()2jjjjjjjHeeeeejeeωωωωωωωπωω−−−−=−=•−−•=•=•2/2/2/2/2()/2()1222sin()22sin()2jDjDjDjDjDjDHjeeeeDjeDeωωωωωπωωωω−−−−−=−⎡⎤−=•⎢⎥⎣⎦=••=••H1=exp(j*(w-pi)/2)./(2.*sin(w/2));H2=2.*exp(j*(pi-w*10)/2).*sin(w*10/2);subplot(2,2,1);plot(w/pi,abs(H1));axis([0,2,-10,40]);grid;subplot(2,2,2);plot(w/pi,angle(H1));axis([0,2,-pi,pi]);grid;subplot(2,2,3);plot(w/pi,abs(H2));axis([0,2,min(abs(H2)),max(abs(H2))]);grid;subplot(2,2,4);plot(w/pi,angle(H2));axis([0,2,-pi,pi]);grid;H1(z),H2(z)的响应图像如图所示:N阶CIC抽取滤波器的频幅响应:12(1)/21(1)/2()()()sin()2sin()2()()22jjjjDjDHeHeHeDeDDSaSaeωωωωωωωωω−−−=•=•=•••Matlab程序:wstep=pi/100;w=0:wstep:2*pi;H=10*sin(w*10/2)./(10.*sin(w/2)).*exp(j*w*(1-10)/2);subplot(1,2,1);plot(w/pi,abs(H));axis([0,2,min(abs(H))-10,max(abs(H))+10]);grid;subplot(1,2,2);plot(w/pi,angle(H));axis([0,2,-pi,pi]);grid;当然,由于CIC梳妆滤波器在滤波上所采用的采样频率过大,因而需要进行多级的采样,以保证信号的准确程度。HB半带滤波器:半带滤波器是一种基于抽取和内插原理的滤波器,它是一种特殊的低通FIR(有限冲激响应)数字滤波器——一种抽因子为2的抽取滤波器,这种滤波器由于通带和阻带相对于二分之一Nyquist频率对称,因而有近一半的滤波器系数为O。由于系数为0的部分在运算的过程中不需要消耗运算量,所以运算量减少了一半,使实际滤波过程中的运算量大幅度减少。因此计算的效率高,实时性比较强,有利于滤波运算的实时实现,在多速率信号处理中有着特别重要的地位,并且得到了广泛的应用 。HB滤波器非常多的用于实现D=2M倍的抽取,计算效率比普通FIR效率高出近一倍,时间也更快。HB性质:5.0)()(1)(H2/)(=−=−πωπjjjweHeHe由matlab的HB滤波器程序可以得到HB滤波器幅频特性、相频特性:00.51-100-50050HB000.51-3000-2000-10000HB000.51-300-200-1000100HB400.51-6000-4000-20000HB4HB滤波器的实例调用:Matlab程序:fs=16e3;%采样频率n=0:5119;%采样点数x=sin(2*pi*1e3/fs*n);%输入原始信号b=firhalfband(18,0.00245,'dev');%获得设计的半带滤波器抽头系数impz(b);%半带滤波器的冲击响应h=mfilt.firdecim(2,b);figurey_fi=filter(h,x);x=double(x);y=double(y_fi);y=y/max(abs(y));stem(n(1:44)/fs,x(1:44),'r');xlabel('时间(sec)');ylabel('输入信号');holdonfigurestem(n(1:2:44)/fs,y(5:26),'filled');xlabel('信号值');ylabel('时间(sec)');结果:FIR滤波器设计方法以直接逼近所需离散时间系统的频率响应为基础,主要是选择有限长度的h(n),尽可能逼近传输函数。线性相位FIR滤波器单位冲激响应h(n)的设计常用等纹波法、窗函数法或频率抽样法。窗函数法是指定连续的理想频率响应,然后用积分方法求出理想滤波器的单位抽样响应。容易做到线性相位、稳定,可以设计各种特殊类型的滤波器,设计方法简单。但是幅频指标不理想,不易控制边缘频率。其中采用汉宁(hanning)窗设计的滤波器,主瓣和旁瓣有大约50dB的差距,并且过渡带宽、通带波动比较小,而且其旁瓣下降比较快,基本满足设计要求。Matlab程序:Window=hanning(31);b=fir1(30,0.4,Window);freqz(b,1)汉宁窗(HanningWindow)调用格式:w=hanning(n),根据长度n产生一个汉宁窗w。基于窗函数的FIR滤波器设计利用MATLAB提供的函数firl来实现调用格式:firl(n,Wn,’ftype’,Window),n为阶数、Wn是截止频率(如果输入是形如[W1W2]的矢量时,本函数将设计带通滤波器,其通带为W1ωW2)、ftype是滤波器的类型(低通-省略该参数、高通-ftype=high、带阻-ftype=stop)、Window是窗函数。三、三、三、三、matlabmatlabmatlabmatlab验证与解释验证与解释验证与解释验证与解释利用DDS技术生成信号源;将各相位所对应的幅值A按二进制编码并存入ROM中。1周期内共有60等分,由于正弦波对为奇对称,对和为偶对称,因此ROM中只需存储~范围内的幅值码。若以=计算,在0~pi/2之间共有15等分,其幅值在ROM中共占16个地址单元。因为=16,所以可按4位地址吗对数据ROM进行寻址。地址码幅度(满度值为1)幅值编码00000.0000000000010.1050001100100.2070011100110.3090101001000.4060110101010.5001000001100.5881001101110.6691010110000.7431100010010.8091101010100.8661110010110.9141110111000.9511111011010.9781111111100.9941111111111.00011111Matlab程序:%fout:Outputfrequency%Fs:Samplefrequency%Bits:NumberofbitsoftheLUT%endtime:Expectedsimulationendtime%y:Outputsinewave%t:Outputtimefunction[y,t]=dds_matlab(fout,Fs,Bits,endtime)t=2*pi*(0:2^Bits-1)/2^Bits;LUT=sin(t);subplot(2,1,1)plot(t,LUT)figure(1);gridont=0:1/Fs:endtime;N=length(t);n=1;y=zeros(1,N);IND=zeros(1,N);%InputFrequencyWordk=floor(fout/Fs*2^Bits);index=0;whilen=NIND(n)=index;index=index+k;index=mod(index,2^Bits);n=n+1;endIND=IND+1;y=LUT(IND);subplot(2,1,2)plot(t,y)figure(1);axis([0endtime-1.21.2]);gridon实例调用:dds_matlab(100,1000,5,1)为了是频率达到要求的10MHz左右,且体现DDS技术的特性,取输入值:dds_matlab(10000000,100000000,7,0.000001)由于ADC在中频进行采样,采样速率有可能很高,而混频后得到的数据率和采样速率是一致的,后级的FIR滤波器根本无法达到这个处理速率,因此先通过CIC(级联积分梳状)和HB(半带)滤波抽取器进行大的抽取,使数据率快速降下来,再由FIR进行滤波。CIC滤波器的系数都为1,因此实现非常简单,只有加减运算,没有乘法运算,硬件实现时可达到很高的处理速率,很适合作抽取系统中的第一级抽取和进行大的抽取因子的工作。但由于CIC滤波器的过渡带和阻带衰减特性不是很好,通常需要采用五级CIC级联的方法加大过渡带和阻带的衰减,抽取因子为1~32。HB滤波器由于其系数几乎一半为零,滤波时运算量减少一半,因此被作为第二级低通滤波和抽取。HB的抽取因子固定为2,特别适合采样率降低一半的要求。通过CIC和HB滤波抽取后,基带信号由最初的高数据率被降到较低的速率,适于后级FIR处理。FIR滤波器的主要用途是对整个信道进行整形滤波,需要的时候还可以作为匹配滤波器使用。整体级