type
Post
status
Published
date
Sep 23, 2024
slug
ducsimulate
summary
tags
Matlab
category
数字通信
icon
password
上次编辑时间
Nov 13, 2024 12:40 PM
AI summary
该文档介绍了数字上变频器的仿真设计,主要使用Matlab进行实现。仿真目标是将48kHz采样率的音频信号插值到6.144MHz,并进行AM调制。文中详细描述了四个滤波器的设计过程,包括低通FIR插值滤波器、半带插值滤波器、CIC补偿滤波器和CIC插值滤波器,以及它们的参数设置和幅频响应图。最后提到使用Simulink进行采样率变化的控制。
我的毕设题目为多频点数字上变频器,因此先做了DUC的仿真,目标是将48k采样率的音频信号进28插值到6.144M的采样率,并将其做AM调制后发射出去。
Matlab仿真基本参数生成第一级 低通FIR插值滤波器第二级 低通半带插值滤波器第三级 CIC补偿滤波器第四级 CIC插值滤波器Simulink仿真DUC_ModuleNCO_systemLP_systemHB_systemCIC_COMP_systemCIC Interpolation归一化AM模块


Matlab仿真
基本参数生成
系统的整体速率为48k×128=6.144M,通过使能信号进行采样率的变换。信号输出为流式输出,帧大小为1 。
第一级 低通FIR插值滤波器
输入信号采样率为基带速率,输出信号采样率为基带速率×插值因子,通过fdesign.interpolator设计滤波器系数,滤波器的幅频响应如下:

第二级 低通半带插值滤波器
半带滤波器的通带为输入信号采样率减去两倍的截止频率,确保插值后产生的频谱延拓的频带都能被滤除,不会引入混叠,同时保证了足够的衰减。
半带滤波器的幅频响应及两级滤波器级联的响应如下:
第三级 CIC补偿滤波器
由于CIC插值滤波器通带内不平坦,因此要加入补偿滤波器。
补偿滤波器的通带和阻带频率的设置原因如下:
compParams.Fpass = 1/2 * compParams.FsIn + Fpass: 这里的通带频率Fpass的设置是基于输入采样率compParams.FsIn。CIC滤波器通常对频率响应的衰减从FsIn/2开始变得明显,所以补偿滤波器的通带设置为FsIn/2 + Fpass,这样可以确保补偿滤波器修正CIC滤波器在通带内的增益,特别是在高频部分。
compParams.Fstop = 1/2 * compParams.FsIn + 1/4 * compParams.FsIn: 阻带频率的设置为FsIn/2 + 1/4 * FsIn,其目的是进一步保证在插值之后,信号频谱的带外部分能够被足够衰减,防止混叠现象的发生。由于插值过程会把输入信号的频谱周期性延拓,滤波器的阻带需要覆盖到这些延拓部分,以保证无用信号被滤除。
补偿滤波器的幅频响应图如下:
第四级 CIC插值滤波器
前面经过三级的二插值滤波器以后,再经过CIC滤波器16倍插值即可完成128倍的插值。幅频响应如下:

Simulink仿真
利用计数器产生不同的使能信号来控制滤波器进行采样率的变化
DUC_Module
NCO_system
该模块用以生成基带信号
频谱图如下

时域波形如下

LP_system
对信号进行第一次二插值,处理后的频谱图为

时域波形为

可以看到频谱中的高频部分被滤除了一部分,时域上每两个样点之间插入了一个新的值。
HB_system
使用半带滤波器对信号再次进行滤波并二插值,输出的频谱为

时域波形为

可以看出在两个样点之间又插入了一个样点。
CIC_COMP_system
由于CIC插值滤波器在通带内不平坦,有损耗,因此需要加入一个CIC补偿滤波器。频谱图为

时域图为

经过采样保持模块后将信号还原为连续波形:

此时信号的采样率较高,使用Downsample模块将采样率调节到正确的频率,然后再送入 CIC 插值滤波器。
CIC Interpolation
输入端的采样率为384KHz

经过16插值后,输出端的采样率为6.144MHz。

归一化
CIC插值滤波器输出的数据类型sfix16_En2,将数据归一化后才能正确进行AM调制。
AM模块
整体波形如下
