demod
Demodulación para la simulación de comunicaciones
Descripción
Ejemplos
Genere una sinusoide de 150 Hz muestreada a 8 kHz durante 1 segundo. Introduzca la señal modulada en ruido blanco gaussiano de varianza 0,1².
fs = 8e3; t = 0:1/fs:1-1/fs; s = cos(2*pi*150*t) + randn(size(t))/10;
Module en frecuencia la señal a una frecuencia portadora de 3 kHz utilizando una constante de modulación de 0,1.
fc = 3e3;
rx = modulate(s,fc,fs,"fm",0.1);Demodule en frecuencia la señal utilizando la misma frecuencia de la portadora y la misma constante de modulación. Calcule y represente las estimaciones del espectro de potencia de las señales transmitidas, recibidas y demoduladas.
y = demod(rx,fc,fs,"fm",0.1); pspectrum([s;rx;y]',fs,Leakage=0.85) legend(["Transmitted" "Received" "Demodulated"] ... + " signal",Location="best")

Argumentos de entrada
Señal de mensaje modulada, especificada como vector o matriz real. A excepción de los métodos pwm y ppm, y tiene el mismo tamaño que x.
Frecuencia portadora utilizada para modular la señal del mensaje, especificada como un escalar real positivo.
Tasa de muestreo, especificada como un escalar real positivo.
Método de modulación utilizado, especificado como uno de los siguientes:
amoamdsb-sc: demodulación de amplitud, doble banda lateral, portadora suprimida. Multiplicaypor una sinusoide de frecuenciafcy aplica un filtro Butterworth de paso bajo de quinto orden utilizandofiltfilt.x = y.*cos(2*pi*fc*t); [b,a] = butter(5,fc*2/fs); x = filtfilt(b,a,x);
amdsb-tc: demodulación de amplitud, doble banda lateral, portadora transmitida. Multiplicaypor una sinusoide de frecuenciafcy aplica un filtro Butterworth de paso bajo de quinto orden utilizandofiltfilt.x = y.*cos(2*pi*fc*t); [b,a] = butter(5,fc*2/fs); x = filtfilt(b,a,x);
Si especifica
opt,demodresta el escalaroptdex. El valor predeterminado deoptes 0.amssb: demodulación de amplitud, banda lateral única. Multiplicaypor una sinusoide de frecuenciafcy aplica un filtro Butterworth de paso bajo de quinto orden utilizandofiltfilt.x = y.*cos(2*pi*fc*t); [b,a] = butter(5,fc*2/fs); x = filtfilt(b,a,x);
fm: demodulación de la frecuencia. Demodula la forma de onda FM modulando la transformada de Hilbert deypor una exponencial compleja de frecuencia-fcHz y obtiene la frecuencia instantánea del resultado.y=cos(2*pi*fc*t + opt*cumsum(x))
cumsumes una aproximación rectangular de la integral dex.modulateutilizaoptcomo constante de la modulación de frecuencia. Si no se especifica el parámetroopt,modulateutiliza un valor predeterminado deopt = (fc/fs)*2*pi/(max(max(x)))para que la excursión de frecuencia máxima defcsea defcHz.pm: demodulación de fase. Demodula la forma de onda PM modulando la transformada de Hilbert deypor una exponencial compleja de frecuencia-fcHz y obtiene la fase instantánea del resultado.y=cos(2*pi*fc*t + opt*x)
modulateutilizaoptcomo la constante de modulación de fase. Si no se especifica el parámetroopt,modulateutiliza un valor predeterminado deopt = pi/(max(max(x)))para que la excursión de fase máxima sea de π radianes.pwm: demodulación por ancho de pulso. Busca los anchos de pulso de una señal modulada por ancho de pulsoy.demoddevuelve enxun vector cuyos elementos especifican el ancho de cada pulso en fracciones de un periodo. Los pulsos enydeben comenzar al principio de cada periodo de la portadora, es decir, deben estar justificados a la izquierda.modulate(x,fc,fs,'pwm','centered')produce pulsos centrados en el inicio de cada periodo. La longitud deyeslength(x)*fs/fc.ppm: demodulación de la posición de los pulsos. Busca las posiciones de los pulsos de una señal modulada por posición de pulsosy. Para una correcta demodulación, los pulsos no pueden solaparse.xes la longitudlength(t)*fc/fs.qam: demodulación de amplitud en cuadratura.[x1,x2] = demod(y,fc,fs,'qam')multiplicaypor un coseno y un seno de frecuenciafcy aplica un filtro Butterworth de paso bajo de quinto orden utilizandofiltfilt.x1 = y.*cos(2*pi*fc*t); x2 = y.*sin(2*pi*fc*t); [b,a] = butter(5,fc*2/fs); x1 = filtfilt(b,a,x1); x2 = filtfilt(b,a,x2);
El argumento de entrada
optdebe tener el mismo tamaño quey.
Entrada opcional, especificada para algunos métodos. Consulte method para obtener más información acerca de cómo utilizar opt.
Argumentos de salida
Señal de mensaje demodulada, devuelta como vector o matriz real.
Capacidades ampliadas
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Historial de versiones
Introducido antes de R2006aLa función demod admite la generación de código C/C++. Debe tener MATLAB®Coder™ para usar esta función.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)