主要内容

基于MATLAB的GSM数字下变频

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

介绍

数字下变频(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.333 e6;FrameSize = 768;正弦= dsp。SineWave (...“频率”, 69.1 e6 * 5/24,...“SampleRate”Fs,...“方法”三角函数的...“SamplesPerFrame”, FrameSize);

创建和配置一个NCO系统对象来混合和向下转换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抽取器System对象,该对象抽取混合器输出的因子为64。CIC滤波器可以在不使用任何乘数的情况下实现高抽取率或插值率。这一特性使得它们对于高速率运行的数字系统非常有用。

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

创建和配置一个FIR decimator System对象来补偿CIC滤波器引起的通带下降。这个过滤器也以2的倍数抽取。

gsmcoeffs;%阅读CFIR和PFIR coeffsM2 = 2;cfir = dsp。cfir FIRDecimator (M2,...“CoefficientsDataType”“自定义”...“CustomCoefficientsDataType”numerictype ([], 16)...“FullPrecisionOverride”假的,...“OutputDataType”“自定义”...“CustomOutputDataType”numerictype ([], -12));

创建并配置FIR decimator System对象,将采样率降低2倍。

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

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

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

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

gsmsig = fi(0(768 1),真的,14日,13);

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

mixsig = fi(0(768 1),真的,20日18);

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

timeScope1 = timescope (...“名字”“速率转换器输出:真实信号”...“SampleRate”Fs / 256 * 4/3,...“TimeSpanSource”“属性”...“时间间隔”, 1.2 e - 3,...“YLimits”(2) e8 2 e8));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,...“TimeSpanSource”“属性”...“时间间隔”, 1.2 e - 3,...“YLimits”(2) e8 2 e8));

创建并配置两个频谱分析仪系统对象来绘制NCO输出和补偿CIC抽取器输出的功率谱。

specScope1 = dsp。简介(...“名字”“DSPDDC: NCO输出”...“SampleRate”Fs,...“FrequencySpan”“启动和停止频率”...“StartFrequency”0,“StopFrequency”Fs / 2,...“RBWSource”“属性”“RBW”, 4.2 e3,...“SpectralAverages”, 1...“标题”NCO输出功率谱...“位置”, (pos (1) + 8 * pos (3) pos (2) + 0.7 * pos (4) pos (3:4)]);FsCICcomp = Fs / (M1 *平方米);specScope2 = dsp。简介(...“名字”DSPDDC:补偿CIC抽取输出...“SampleRate”FsCICcomp,...“FrequencySpan”“启动和停止频率”...“StartFrequency”0,“StopFrequency”FsCICcomp / 2,...“RBWSource”“属性”“RBW”, 4.2 e3,...“SpectralAverages”, 1...“标题”补偿CIC抽取器输出功率谱...“位置”, (pos (1) + 8 * pos (3) pos (2) -0.7 * pos (4) pos (3:4)]);

处理循环

在处理环路中,混频器前端数字向下转换GSM信号到基带。CIC抽取和补偿滤波器向下抽取信号的倍数为128,可编程FIR滤波器抽取另一个倍数为2,以达到256的总体抽取。后端重新采样执行额外的特定于应用程序的过滤。运行100次处理循环相当于处理重采样输出的大约1.1 ms。

为这四个作用域创建一个容器scopesContainer = HelperCreateScopesContainer (...{timeScope1, specScope1, timeScope2 specScope2},...“名字”“数字下变频器”...“布局”(2 - 2),...“ExpandToolstrip”、假);Ii = 1:100 gsmsig(:) = sin ();% GSM信号ncosig =甲();% NCO信号mixsig (:) = gsmsig。* ncosig;%数字混合% CIC滤波和补偿ycic = cfir (cicdec (mixsig));%可编程FIR和采样率转换yrcout = firrc (pfir (ycic));%频率和时域图timeScope1(真正的(yrcout));timeScope2(图像放大(yrcout));specScope1 (ncosig);specScope2 (ycic);结束释放(timeScope1);释放(timeScope2);释放(specScope1);释放(specScope2);

结论

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