主要内容

GSM数字下变频MATLAB

这个例子展示了如何模拟用于GSM(全球移动系统)基带转换的定点数字下转换器的稳态行为。该示例使用信号处理系统对象来模拟TI Graychip 4016 Quad数字下变频的操作,并需要一个固定点设计器™许可证。

简介

数字下变频(DDC)是数字无线电的重要组成部分。它执行频率转换,将高输入采样率转换为较低的采样率,以实现高效处理。在本例中,DDC接受采样速率约为70兆样本每秒(MSPS)的带通信号,并执行以下操作:

  • 使用数字控制振荡器(NCO)和混合器对输入信号进行数字混合或下转换。

  • 使用级联积分器梳状(CIC)和FIR滤波器的滤波器链进行窄带低通滤波和抽取。

  • 增益调整和数据流的最终重采样。

DDC产生一个采样速率为270千采样/秒(KSPS)的基带信号,为解调做好准备。典型DDC的框图如下所示。

如果~ isfixptinstalled错误(消息(“dsp: dspDigitalDownConverter: noFixptTbx”));结束

初始化

创建和配置一个正弦波源系统对象™,以建模GSM源。你将对象的频率设置为69.1e6*5/24 MSPS,因为在数字混合之后,对象将有一个大约48 KSPS的基带频率。因为您正在建模的系统对输入进行4/(3*256)的重采样,所以您需要将对象的帧大小设置为这些因子中最小的公共乘数。

Fs = 69.333e6;FrameSize = 768;sin = dsp。SineWave (...“频率”, 69.1 e6 * 5/24,...“SampleRate”Fs,...“方法”,三角函数的,...“SamplesPerFrame”, FrameSize);

创建并配置一个NCO System对象来混合和向下转换GSM信号。TI Graychip要求调优频率(PhaseIncrement属性)是具有32位分数长度的32位数据类型。相位偏移需要是16位的数据类型,具有16位的分数长度。为了减少幅值量化噪声并在可用带宽内分散杂散频率,可在累加器相位值中添加抖动信号。通常,抖动位数(14)是累加器字长(32)和表地址字长(18)之间的差值。

Nco = dsp。甲(...“PhaseIncrementSource”,“属性”,...“PhaseIncrement”, int32((5/24) *2^32),...“PhaseOffset”int16 (0)...“NumDitherBits”14岁的...“NumQuantizerAccumulatorBits”, 18岁,...“波形”,“复指数”,...“SamplesPerFrame”FrameSize,...“AccumulatorDataType”,“自定义”,...“CustomAccumulatorDataType”numerictype ([] 32),...“OutputDataType”,“自定义”,...“CustomOutputDataType”numerictype(18)[], 20日);

创建并配置一个CIC decimator System对象,该对象将混合器输出减少64倍。CIC滤波器可以在不使用任何乘数的情况下实现高抽取或插值率。这一特性使它们对于高速率运行的数字系统非常有用。

M1 = 64;Cicdec = dsp。CICDecimator (...“DecimationFactor”M1,...“NumSections”5,...“FixedPointDataType”,“最小节字长度”,...“OutputWordLength”, 20);

创建并配置一个FIR decimator System对象,以补偿CIC滤波器造成的通带下垂。这个过滤器也以2倍的倍数进行抽取。

gsmcoeffs;读取CFIR和pir系数。M2 = 2;Cfir = dsp。cfir FIRDecimator (M2,...“CoefficientsDataType”,“自定义”,...“CustomCoefficientsDataType”numerictype ([], 16)...“FullPrecisionOverride”假的,...“OutputDataType”,“自定义”,...“CustomOutputDataType”numerictype ([], -12));

创建并配置一个FIR decimator System对象,将抽样率再降低2倍。

M3 = 2;pir = dsp。pfir FIRDecimator (M3,...“CoefficientsDataType”,“自定义”,...“CustomCoefficientsDataType”numerictype ([], 16)...“FullPrecisionOverride”假的,...“OutputDataType”,“自定义”,...“CustomOutputDataType”numerictype ([], -12));

创建并配置一个FIR速率转换器System对象,以按4/3的倍数重新采样最终输出。

Firrc = dsp。FIRRateConverter(4,3, fir1(31,0.25),...“CoefficientsDataType”,“自定义”,...“CustomCoefficientsDataType”numerictype ([], 12),...“FullPrecisionOverride”假的,...“OutputDataType”,“自定义”,...“CustomOutputDataType”numerictype ([], 24, -12));

创建一个指定numerictype的fi对象,作为正弦输出的数据类型转换。

Gsmsig = fi(zero (768,1),true,14,13);

创建指定数字类型的fi对象来存储定点混频器输出。

Mixsig = fi(0 (768,1),true,20,18);

创建并配置两个Time Scope System对象,以绘制FIR速率转换器过滤器输出的实部和虚部。

timeScope1 = timescope(...“名字”,“速率转换器输出:实信号”,...“SampleRate”Fs / 256 * 4/3,...“时间间隔”, 1.2 e - 3,...“YLimits”, [-2e8],...“TimeSpanOverrunAction”,“滚动”);pos = timeScope1.Position;timeScope1.Position (1:2) = (pos (1) -0.8 * pos (3) pos (2) + 0.7 * pos (4)];timeScope2 = timescope(...“名字”,“速率转换器输出:虚信号”,...“位置”, [pos(1)-0.8*pos(3) pos(2)-0.7*pos(4) pos(3:4)],...“SampleRate”Fs / 256 * 4/3,...“时间间隔”, 1.2 e - 3,...“YLimits”, [-2e8],...“TimeSpanOverrunAction”,“滚动”);

创建并配置两个Spectrum Analyzer System对象,以绘制NCO输出和补偿CIC decimator输出的功率谱。

specScope1 =谱分析仪(...“方法”,“韦尔奇”,...“名字”,'DSPDDC: NCO输出',...“SampleRate”Fs,...“FrequencySpan”,“start-and-stop-frequencies”,...“StartFrequency”0,“StopFrequency”Fs / 2,...“RBWSource”,“属性”,“RBW”, 4.2 e3,...“标题”,“NCO输出功率谱”,...“位置”,[pos(1)+.8*pos(3) pos(2)+0.7*pos(4) pos(3:4)]);FsCICcomp = Fs/(M1*M2);specScope2 =谱分析仪(...“方法”,“韦尔奇”,...“名字”,“DSPDDC:补偿CIC Decimator输出”,...“SampleRate”FsCICcomp,...“FrequencySpan”,“start-and-stop-frequencies”,...“StartFrequency”0,“StopFrequency”FsCICcomp / 2,...“RBWSource”,“属性”,“RBW”, 4.2 e3,...“标题”,补偿CIC decimator输出的功率谱,...“位置”,[pos(1)+.8*pos(3) pos(2)-0.7*pos(4) pos(3:4)]);

处理循环

在处理环路中,混频器前端数字向下转换GSM信号到基带。CIC抽取和补偿滤波器将信号采样降至128倍,而可编程FIR滤波器将信号抽取至2倍,以实现256倍的总体抽取。重采样后端执行附加的特定于应用程序的过滤。运行100次迭代的处理循环相当于处理大约1.1毫秒的重采样输出。

Ii = 1:100 gsmsig(:) = sin ();% GSM信号Ncosig = nco();% NCO信号Mixsig (:) = gsmsig.*ncosig;%数字混频器CIC过滤和补偿Ycic = cfir(cicdec(mixsig));可编程FIR和采样率转换Yrcout = firrc(pir (ycic));频率和时域图timeScope1(真正的(yrcout));timeScope2(图像放大(yrcout));specScope1 (ncosig);specScope2 (ycic);结束释放(timeScope1);

释放(timeScope2);

释放(specScope1);

释放(specScope2);

结论

在本例中,您使用了DSP System Toolbox™System对象来模拟定点GSM数字下变频的稳态行为。时间范围和频谱分析仪系统对象使您能够分析DDC的各个阶段。