Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

rcosdesign

Diseño de filtro de modelado de pulso FIR de coseno elevado

Descripción

ejemplo

b = rcosdesign(beta,span,sps) Devuelve los coeficientes, que corresponden a un filtro FIR de coseno elevado de raíz cuadrada con el factor de atenuación de resaltado especificado por.bbeta El filtro se trunca en símbolos y cada período de símbolo contiene muestras.spansps El orden del filtro,,, debe ser incluso.sps*span La energía del filtro es 1.

ejemplo

b = rcosdesign(beta,span,sps,shape) Devuelve un filtro coseno elevado de raíz cuadrada cuando se establece en y un filtro FIR de coseno elevado normal cuando se establece en.shape'sqrt'shape'normal'

Ejemplos

contraer todo

Especifique un factor de atenuación de resaltado de 0,25. Truncar el filtro a 6 símbolos y representar cada símbolo con 4 muestras. Compruebe que es el valor predeterminado del parámetro.'sqrt'shape

h = rcosdesign(0.25,6,4); mx = max(abs(h-rcosdesign(0.25,6,4,'sqrt')))
mx = 0 
fvtool(h,'Analysis','impulse')

Compare un filtro de coseno elevado normal con un filtro de coseno de raíz cuadrada. Un filtro de conformación de pulso de coseno elevado normal (infinito) es equivalente a dos filtros coseno elevados de raíz cuadrada en cascada. Por lo tanto, la respuesta de impulso de un filtro de FIR normal debe parecerse a la de un filtro de raíz cuadrada congenerado consigo mismo.

Cree un filtro de coseno elevado normal con 0,25 de atenuación de resaltado. Especifique que este filtro abarque 4 símbolos con 3 muestras por símbolo.

rf = 0.25; span = 4; sps = 3;  h1 = rcosdesign(rf,span,sps,'normal'); fvtool(h1,'impulse')

El filtro normal tiene cruces de cero en múltiplos enteros de.sps Así satisface el criterio de Nyquist para la interferencia de cero intersímbolo. El filtro de raíz cuadrada, sin embargo, no:

h2 = rcosdesign(rf,span,sps,'sqrt'); fvtool(h2,'impulse')

Convolve el filtro de raíz cuadrada consigo mismo. Truncar la respuesta de impulso hacia fuera desde el máximo para que tenga la misma longitud que.h1 Normalizar la respuesta utilizando el máximo. A continuación, compare el filtro de raíz cuadrada congenerado con el filtro normal.

h3 = conv(h2,h2); p2 = ceil(length(h3)/2); m2 = ceil(p2-length(h1)/2); M2 = floor(p2+length(h1)/2); ct = h3(m2:M2);  stem([h1/max(abs(h1));ct/max(abs(ct))]','filled') xlabel('Samples') ylabel('Normalized amplitude') legend('h1','h2 * h2')

La respuesta conla no coincide con el filtro normal debido a su longitud finita. Aumento para obtener un acuerdo más cercano entre las respuestas y un mejor cumplimiento del criterio de Nyquist.span

Este ejemplo muestra cómo pasar una señal a través de un filtro de coseno de raíz cuadrada, elevado.

Especifique los parámetros del filtro.

rolloff = 0.25;     % Rolloff factor span = 6;           % Filter span in symbols sps = 4;            % Samples per symbol

Genere los coeficientes de filtro de coseno de raíz cuadrada y elevados.

b = rcosdesign(rolloff, span, sps);

Cree un vector de datos bipolares.

d = 2*randi([0 1], 100, 1) - 1;

Upsample y filtre los datos para el modelado de pulsos.

x = upfirdn(d, b, sps);

Añadir ruido.

r = x + randn(size(x))*0.01;

Filtre y downsample la señal recibida para el filtrado coincidente.

y = upfirdn(r, b, 1, sps);

Este ejemplo muestra cómo interpolar y diezmar las señales usando filtros de coseno de raíz cuadrada, diseñados con la función.rcosdesign Este ejemplo requiere el software Communications Toolbox™.

Defina los parámetros de filtro de coseno elevados de raíz cuadrada. Defina los parámetros de la constelación de señales.

rolloff = 0.25; % Filter rolloff span = 6;       % Filter span sps = 4;        % Samples per symbol M = 4;          % Size of the signal constellation k = log2(M);    % Number of bits per symbol

Genere los coeficientes del filtro coseno elevado de raíz cuadrada utilizando la función.rcosdesign

rrcFilter = rcosdesign(rolloff, span, sps);

Genere 10000 símbolos de datos utilizando la función.randi

data = randi([0 M-1], 10000, 1);

Aplique la modulación PSK a los símbolos de datos. Debido a que el tamaño de la constelación es 4, el tipo de modulación es QPSK.

modData = pskmod(data, M, pi/4);

Utilizando la función, Remuestrar con aumento y filtre los datos de entrada.upfirdn

txSig = upfirdn(modData, rrcFilter, sps);

Convierta el EB/N0 a SNR y después pase la señal a través de un canal AWGN.

EbNo = 7; snr = EbNo + 10*log10(k) - 10*log10(sps); rxSig = awgn(txSig, snr, 'measured');

Filtre y downsample la señal recibida. Quite una porción de la señal para tener en cuenta el retardo del filtro.

rxFilt = upfirdn(rxSig, rrcFilter, 1, sps); rxFilt = rxFilt(span+1:end-span);

Cree una gráfica de dispersión de los datos modulados utilizando los primeros 5000 símbolos.

hScatter = scatterplot(sqrt(sps)* ...     rxSig(1:sps*5000),...     sps,0,'g.'); hold on scatterplot(rxFilt(1:5000),1,0,'kx',hScatter) title('Received Signal, Before and After Filtering') legend('Before Filtering','After Filtering') axis([-3 3 -3 3]) % Set axis ranges hold off

Argumentos de entrada

contraer todo

El factor de rolloff, especificado como un escalar real no negativo no mayor que 1. El factor de desenrollación determina el exceso de ancho de banda del filtro. La rotación cero corresponde a un filtro de pared de ladrillo y a una unidad de rotación a un coseno elevado puro.

Tipos de datos: double | single

Número de símbolos, especificado como un escalar entero positivo.

Tipos de datos: double | single

Número de muestras por símbolo (factor de sobremuestreo), especificado como un escalar entero positivo.

Tipos de datos: double | single

Forma de la ventana de coseno elevada, especificada como cualquiera o.'normal''sqrt'

Argumentos de salida

contraer todo

Coeficientes de filtro de coseno elevados, devueltos como un vector de fila.

Tipos de datos: double | single

Sugerencias

  • Si usted tiene una licencia para el software, usted puede realizar el filtrado de coseno elevado del multifrecuencia con el comportamiento de la transmisión.Communications Toolbox™ Para ello, utilice los filtros y.System object™comm.RaisedCosineTransmitFiltercomm.RaisedCosineReceiveFilter

Referencias

[1] Tranter, William H., K. Sam Shanmugan, Theodore S. Rappaport, and Kurt L. Kosbar. Principles of Communication Systems Simulation with Wireless Applications. Upper Saddle River, NJ: Prentice Hall, 2004.

Capacidades ampliadas

Consulte también

Introducido en R2013b