Red de conocimiento informático - Programación de la red - Principios de comunicación basados ​​en Matlab Diseño del curso de simulación de sistemas de comunicación - Sistema de modulación analógica

Principios de comunicación basados ​​en Matlab Diseño del curso de simulación de sistemas de comunicación - Sistema de modulación analógica

Codificación AM:

% f0 frecuencia portadora (Hz)

% fm punto de frecuencia de modulación de frecuencia única (multi) (Hz)

% B: ancho de banda de banda base real % = = = = = = = = = = = = = = = = =

% Ancho de banda máximo de MaB (Hz)% = = = = = = = = = = = = = = = = = = =

% fs (frecuencia media) frecuencia de muestreo (Hz)

% fs1: primera frecuencia de muestreo

% fs2_esperada frecuencia de muestreo (segundos) (Hz)

% T; tiempo de simulación (segundos)

% coeficiente de modulación de amplitud beta

% sensibilidad KvVCO (rad/s/V)

% n0 densidad espectral de potencia de ruido (W/kHz)

Función AM_Simulación(f0, DF, fm, B, MaxB, fs, fs1, fs2_expect, T, beta, K1, K2, Kv, n0)

%========================================= == ===========================================

ts = 1/fs; % intervalo de muestreo

N = piso (T/Ts); % del total de puntos de muestreo en el dominio del tiempo (basado en fs1)

t = 0: Ts: (N-1)* Ts; % tiempo de muestreo

% -

% calcula la frecuencia portadora f01 después del submuestreo en la primera frecuencia de muestreo fs1.

f 01 = F0-piso(F0/fs 1)* fs 1

% si(f 01 & gt; fs1/2)

% f 01 = fs 1-f 01;

% end

% -

%Calcular la serie de filtrado de media banda

k = floor(log2(fs 1/fs2 _ expect)); % fs2_expect es la segunda frecuencia de muestreo esperada.

fs2 = fs1/(2^k); % fs2 es la segunda frecuencia de muestreo real.

%=========================================== ==================================================== ==============================================

% información de modulación

M = longitud (FM);

am = cero (1, N

Para m=1:M

p> p>

am = am+cos(2 * pi * FM(m)* t);

Fin;

DC _ offset = max(am)/ beta;

a = DC_offset+am;

% -

am = am/DC_offset;

a = a/ DC_offset; %%%%%%

% -

%========================= === ================================================ === ================================================ === ===========

% de modulación de amplitud

= 2 * pi * rand% fase inicial aleatoria de la portadora

s = a . * cos(2 * pi *(FDF)* t+θ0);% soy señal

%================== = ================================================== = ================================================== = ==================

% canal de ruido

Ruido = GenerarRuido(n0, fs, N, (FDF )

r = s + ruido

% -

% r_downRate = RateAdjust(r, fs, fs1, 'ITP FLT'); %%%Nota: Si el ruido blanco (o el ruido blanco de banda limitada) está submuestreado, la densidad espectral de potencia del ruido aumentará.

% -

%================================== === ================================================= === ================================================= === ====

%Filtrado de paso de banda del receptor

fc = MaxB

% r _ BPF = BPF _ filtro (r, (fDF ), fc, fs);

[r_BPF, hBPF] = BPF_filter(r, f0, fc, fs); % El receptor conoce f0 de antemano, pero no conoce DF de antemano.

% -

%θ_ BPF = Phi _ BPF(F0, fc, fs, (FDF));

θ_ BPF = Phi _ BPF (hBPF, fs, (FDF)); % Este parámetro no se utiliza para decodificar, pero debe conocerse al introducir la entrada theta al PLL.

%=========================================== ==================================================== ==============================================

% ajusta la velocidad de la señal de salida de BPF.

r _ BPF _ Decline rate = RateAdjust(r_BPF, fs, fs1, 'ITP FLT'); seleccione fs1 para garantizar que el ruido blanco de banda limitada no se muestre insuficientemente.

% -

ts 1 = 1/fs 1; % intervalo de muestreo

N1 = longitud(r_BPF_decline); total en el dominio del tiempo Porcentaje de puntos de muestreo ( basado en fs1)

t 1 = 0:ts 1:(n 1-1)* ts 1; % de tiempo de muestreo

%====== ==== =============================================== ==== =============================================== ==== =================================

%Usa el conocido f01 Obtén la I y la Q señales de la señal AM.

YC = tasa de disminución_r_BPF. *(2 * cos(2 * pi * f 01 * t 1));%%%%%%

ys = r_BPF_decline rate. *(-2 * sin(2 * pi * f 01 * t 1));%%%%%%

zI = filtro de media banda (yc, fs1, K); p>

zQ = filtro de media banda (ys, fs1, K); [xQ, QDelay] = filtro LPF(zQ, B, fs2);

% -

ts2 = 1/fs2 % intervalo de muestreo

N2 = longitud (Xi); % del total de puntos de muestreo en el dominio del tiempo (basado en fs2)

T2 = 0:Ts2:(N2-1)* Ts2 % de muestreo de tiempo

% -

θIQ = 2*pi*df*(15*(2^(k)-1)/fs1)+2 * pi * df * idelay/fs2 %Este parámetro no se utiliza para decodificación, pero es necesario conocerlo al introducir la entrada theta1 al PLL.

% -

%================================== === ================================================= === ================================================= === =========

%Utilice PLL para rastrear y compensar la diferencia de frecuencia y la fase inicial de la banda base.

% g = mean(ABS(Xi+j * xQ));

% Xi = Xi/gram % Para ajustar la amplitud de la señal del PLL de entrada, debe cámbielo a AGC.

% xQ = xQ/g;

% bloqueo de fase de banda base

[θ2, Io, Qo, PDo, LFo] = PLL_Baseband(xI, xQ, fs2, K1, K2, Kv, 1); % 1, operador

a_demod = Io

%============== === ================================================ === ================================================ === =========================

Porcentaje de eliminación de DC

% DC = media (a_demod(piso (0.2 * N2):N2));% temperatura

% a_demod_offset = a_demod-DC;

fcL = 60% Hz

a_demod_offsetted = AHPF_filter(a_demod , fs2, fcL

%================= ===================); =============================== ==================== =============================== ==================== ======

% TxRx

Figura (1);

Gráfico de rama (4, 2, 1); ; y etiqueta (' a (t)');

Gráfico de rama (4, 2, 3)); eje ([min(t)max(t)-Inf Inf]

Gráfico de rama (4, 2, 5);plot(t, r);ylabel(' r(t)') ; axis([min(t)max(t)-Inf Inf]);

Gráfico de rama (4, 2, 7); _ P _ F(t)'); eje ([min(t)max(t)-Inf Inf]

xlabel('t (s)')

n _ FFT = 2^(floor(log2(fs/b*100)));

Gráfico de rama (4, 2, 2); Psd_plot_log_N (a, fs, N _ FFT

Gráfico lateral (4, 2, 4); Psd_plot_log_N (s, fs, N _ FFT);

Gráfico de rama (4, 2, 6); _ FFT);

Gráfico de rama (4, 2, 8); Psd_plot_log_N (r_BPF, fs, N _ FFT);

% PLL

Figura ( 2);

Plot(t2, PDo); Espera; plot(t2, LFo, ' r '); eje ([min(T2)max(T2)-INF INF]); cuadrícula activada; leyenda ('PD\o', 'LF\o').

Arrastrar;

xlabel('t (s)')

Figura (3);

θ1 =θθ_ BPF-θIQ+2 * pi * DF * T2; Porcentaje basado en fs2

θ2 =θ2;

Gráfico lateral (311); '); arrastrar;

Leyenda (' \theta_1 ', ' \theta_2 '); Eje ([min(T2)max(T2)-Inf Inf]); Título Sincronización de portadora de banda base (2)');

θ_ e =θ1-θ2;

Gráfico de rama (312);

p>

y etiqueta(' \ theta _ e(t)'); leyenda (' \ theta _ e '); eje ([min(T2)max(T2)min(theta _ e)-1 max( theta _ e)+1]); cuadrícula abierta;

θ_ e = ángulo (exp(j *θ_ e));

Gráfico de rama (313); theta _ e);

xlabel('t (s)'), ylabel(' \theta _ e(t)'); leyenda (' \theta_e (-\pi,\pi ') ; Eje([min(T2)max(T2)min(theta _ e)-1 max(theta _ e)+1]); Cuadrícula abierta

% TxRx

Figura (4);

Gráfico de rama (611); plot(t, a); xlabel('), ylabel(' a(t)');

Gráfico de rama (612). ); plot(t, s); xlabel('), ylabel(' r(t)');

Gráfico de rama (614); , ylabel(' r _ B _ P _ F(t)');

Gráfico de rama (615); _ d(t '));

Gráfico de rama (616); plot(t2, a _ demod _ offseted); /p>

% TxRx

Imagen (5);

Gráfico de rama (211); xlabel('), ylabel(' a(); t)');

Gráfico de rama (212); plot(t2, a_demoded_offseted); xlabel('t'), ylabel('m(t'));

Figura (4);

%======================================= ====== ============================================== ====== ============================================== =====