在MATLAB GSM数字下变频器
这个例子展示了如何模拟一个定点数字变换器的稳态行为对GSM(全球移动通信系统)基带转换。本例使用信号处理系统对象来模拟的操作TI Graychip 4016四数字转换器和需要一个定点设计师™许可证。
介绍
数字下变频器(DDC)是数字广播的一个重要组成部分。它执行频率翻译转换高输入采样率降至一个较低的采样率进行有效处理。在这个例子中,DDC接受的信号带通采样率每秒钟大约70 megasamples(议员)和执行以下操作:
数字混合或向下转换的输入信号使用数控振荡器(NCO)和混合器。
窄带低通滤波和大量毁灭使用过滤器链的级联Integrator-Comb (CIC)和FIR滤波器。
增益调整和最终重采样的数据流。
监护系统产生一个基带信号的采样率每秒钟270 kilosamples(过度增殖)准备解调。典型的监护系统的框图如下所示。
如果~ isfixptinstalled错误(消息(“dsp: dspDigitalDownConverter: noFixptTbx”));结束
初始化
创建和配置一个正弦波源系统GSM源对象™模型。设置对象的频率69.1 e6 * 5/24议员,因为数字混合后,对象将基带频率约48过度增殖。因为你建模的系统重新取样输入4倍/(3 * 256),您需要设置对象的当前帧大小是最常见的这些因素乘数。
Fs = 69.333 e6;FrameSize = 768;正弦= dsp.SineWave (…“频率”,69.1 e6 * 5/24,…“SampleRate”Fs,…“方法”,三角函数的,…“SamplesPerFrame”,FrameSize);
创建和配置一个区域系统对象混合,将GSM信号。TI Graychip要求调整频率(PhaseIncrement属性)与32位32位数据类型部分的长度。需要一个16位的相位差与16位数据类型长度。减少振幅量化噪声和杂散频率扩散到整个可用带宽,高频脉动信号添加到累加器相位值。通常,优柔寡断的比特数(14)之间的区别是蓄电池字长(32)和表地址字长(18)。
nco = dsp.NCO (…“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日);
创建和配置一个中投杀害多人者系统对象,会毁坏混频器输出了64倍。CIC滤波器可以实现大量毁灭或插值率高不使用任何乘数。这个特性使其在高数字系统的操作非常有用。
M1 = 64;cicdec = dsp.CICDecimator (…“DecimationFactor”M1,…“NumSections”5,…“FixedPointDataType”,“最低部分单词长度”,…“OutputWordLength”,20);
创建和配置一个冷杉杀害多人者系统对象来弥补造成的通频带下垂中投过滤器。这个过滤器也会毁坏的2倍。
gsmcoeffs;%阅读CFIR和PFIR多项式系数M2 = 2;cfir = dsp。cfir FIRDecimator (M2,…“CoefficientsDataType”,“自定义”,…“CustomCoefficientsDataType”numerictype ([], 16)…“FullPrecisionOverride”假的,…“OutputDataType”,“自定义”,…“CustomOutputDataType”numerictype ([], -12));
创建和配置一个冷杉杀害多人者系统对象降低采样率的另一个因素2。
M3 = 2;pfir = dsp。pfir FIRDecimator (M3,…“CoefficientsDataType”,“自定义”,…“CustomCoefficientsDataType”numerictype ([], 16)…“FullPrecisionOverride”假的,…“OutputDataType”,“自定义”,…“CustomOutputDataType”numerictype ([], -12));
创建和配置一个冷杉率转换器系统对象重新取样最终输出4/3倍。
firrc = dsp。FIRRateConverter (4 3 fir1 0.25(31日),…“CoefficientsDataType”,“自定义”,…“CustomCoefficientsDataType”numerictype ([], 12),…“FullPrecisionOverride”假的,…“OutputDataType”,“自定义”,…“CustomOutputDataType”numerictype ([], 24, -12));
创建一个fi numerictype作为指定的对象数据类型转换为正弦输出。
gsmsig = fi(0(768 1),真的,14日,13);
创建一个fi numerictype指定的对象来存储定点混频器的输出。
mixsig = fi(0(768 1),真的,20日18);
创建和配置两个时间范围系统对象的实部和虚部情节冷杉率转换器滤波器的输出。
timeScope1 = timescope (…“名字”,率转换器输出:实信号的,…“SampleRate”Fs / 256 * 4/3,…“时间间隔”,1.2 e - 3,…“YLimits”(2)e8 2 e8),…“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”(2)e8 2 e8),…“TimeSpanOverrunAction”,“滚动”);
创建和配置两个频谱分析仪系统对象绘制NCO输出的功率谱和补偿中投杀害多人者的输出。
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 *平方米);specScope2 =简介(…“方法”,“韦尔奇”,…“名字”,“DSPDDC:补偿中投杀害多人者输出”,…“SampleRate”FsCICcomp,…“FrequencySpan”,“start-and-stop-frequencies”,…“StartFrequency”0,“StopFrequency”FsCICcomp / 2,…“RBWSource”,“属性”,“RBW”,4.2 e3,…“标题”,中投杀害多人者补偿输出的功率谱,…“位置”,(pos (1) + 8 * pos (3) pos (2) -0.7 * pos (4) pos (3:4)]);
处理循环
在处理循环,混合器前端数字转换GSM信号基带。中投大量毁灭和补偿过滤器downsample信号128倍和可编程滤波器会毁坏的另一个因素2实现全面减少256。重采样后端执行额外的特定于应用程序的过滤。运行100次迭代的处理循环处理相当于1.1毫秒的重新取样输出。
为2 = 1:10 0 gsmsig (:) = sin ();% GSM信号ncosig =甲();% NCO信号mixsig (:) = gsmsig。* ncosig;%数字混合%中投过滤和补偿ycic = cfir (cicdec (mixsig));%可编程的冷杉和采样率转换yrcout = firrc (pfir (ycic));%频率和时域的情节timeScope1(真正的(yrcout));timeScope2(图像放大(yrcout));specScope1 (ncosig);specScope2 (ycic);结束释放(timeScope1);
释放(timeScope2);
释放(specScope1);
释放(specScope2);
结论
在本例中,您使用DSP系统工具箱™系统对象来模拟一个定点GSM数字变换器的稳态行为。时间范围和频谱分析仪系统对象允许您分析监护系统的不同阶段。