Diseño de filtro CIC
El filtro CIC es simple de implementar y consume menos recursos (solo se necesita un sumador). Se ha convertido en un filtro comúnmente usado en sistemas de frecuencia de muestreo variable, pero también debe usarse en escenarios apropiados. de lo contrario afectará la calidad de la señal y causará un mayor impacto.
Podemos conocer las diversas características de los filtros CIC a través del diseñador de filtros de matlab. Encuentre la ventana de diseño del filtro CIC a través de las Figuras 1 y 2.
Es fácil concluir a partir de la curva de amplitud-frecuencia que el filtro CIC tiene una plataforma de banda de paso, un ancho de banda de transición deficientes y grandes fluctuaciones en el rendimiento de supresión fuera de banda.
El rendimiento de la supresión fuera de banda se puede mejorar aumentando el número de etapas CIC (número de secciones), pero esto tendrá un impacto negativo en la planitud de la banda de paso. Este parámetro debe verse comprometido cuando. diseñando específicamente el CIC.
Por lo general, cuando se implementa CIC en lenguaje C, este parámetro se puede diseñar para que sea un número par, lo que hará que el número final sea un número entero, lo que facilitará la eliminación de valores no válidos al principio y al final de los datos. Además, cuando el diseño es 2, 4 y 8, la normalización se puede lograr directamente mediante el cambio.
Cuando utilizamos CIC, debemos asegurarnos de que fmax de la señal útil sea suficientemente menor que fs/2/Mcic, donde Mcic es el múltiplo de interpolación. Sólo de esta manera se puede garantizar una planicidad suficiente dentro del ancho de banda efectivo. Generalmente, fmax no puede exceder los 0,5 dB en relación con la atenuación de CC.
Por lo tanto, en los sistemas de velocidad variable, el CIC se utiliza generalmente como extremo frontal. El filtro digital final (cerca del dominio analógico), por ejemplo, en el sistema de muestreo ascendente, la señal primero pasa a través del filtro de conformación limitador de banda (FIR de paso bajo), el banco de filtros HB y finalmente pasa a través del CIC para la tasa DAC.
La siguiente imagen es una ilustración del muestreo ascendente 8x.
Cabe señalar que para garantizar la coherencia de la potencia promedio de los puntos de muestreo en el dominio del tiempo de la señal antes y después del CIC, no se realiza ninguna normalización en el filtro CIC de primera etapa. la ganancia puede simplemente compensar la inserción de sobremuestreo 0 Provoca pérdida de potencia del punto de muestreo. Cada nivel posterior debe normalizarse para evitar el desbordamiento.
clear; clc; cerrar todo;
cargar símbolos de datos desde RRC, asegúrese de que fmax lt; zeroDataFilterOut.mat')? Señal de sobremuestreo 8x
symbPower = funCountPower(zeroDataFilterOut); Potencia antes del filtro
Filtro CIC para interpolar 8 veces
Mcic = 8;
coefCic = ones(Mcic, 1);
N = 4 ? número de sección CIC
modDataZero8x = upsample(zeroDataFilterOut, Mcic); p>
p>
txPower = funCountPower(modDataZero8x); Energía después de la inserción cero
filtro
dataFilterTemp = conv(modDataZero8x, coefCic);? /p>
for i = 1: N-1
dataFilterTemp = conv(dataFilterTemp, coefCic)/Mcic
end
tailLen = N; *(Mcic-1 )/2;
dataOut = dataFilterTemp(tailLen 1: end-tailLen);
outPower = funCountPower(dataOut);?