From 367eeb5847e90c03938f2a952bccce24f8e7e1eb Mon Sep 17 00:00:00 2001 From: zeefaad Date: Sun, 26 Oct 2025 12:38:12 +0100 Subject: [PATCH] RRC impulsion response --- QAM/out | Bin 29520 -> 38032 bytes QAM/qam.c | 42 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/QAM/out b/QAM/out index 632d3a0f9ddbfc591a50e1f198463a998554cdb4..0a31e53543ca06ee41146f4b61f4604a2d609f1c 100755 GIT binary patch delta 12829 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 / qam->Fs; + double t; + int k; + + for (int i = 0; i < N_taps; i++) { + t = ((double)i - (N_taps - 1.0) / 2.0) / qam->Fs; + k = i; + + double t_norm = t / Ts_symbol; + + if (fabs(t) < 1e-9) { // t = 0 + rrc_taps[k] = (1.0 / Ts_symbol) * (1.0 + alpha * (4.0 / M_PI) * (1.0 / 4.0)); + } else if (fabs(fabs(t_norm) - 1.0 / (4.0 * alpha)) < 1e-9) { + rrc_taps[k] = (1.0 / Ts_symbol) * (alpha / M_PI) * ( (M_PI / 4.0) * (1.0 / alpha) + 1.0) * sin(M_PI / (4.0 * alpha)) + (1.0 / Ts_symbol) * (alpha / M_PI) * ( (M_PI / 4.0) * (1.0 / alpha) - 1.0) * cos(M_PI / (4.0 * alpha)); + } else { + double num = sin(M_PI * t_norm * (1.0 - alpha)) + (4.0 * alpha * t_norm) * cos(M_PI * t_norm * (1.0 + alpha)); + double den = (M_PI * t_norm * (1.0 - (4.0 * alpha * t_norm) * (4.0 * alpha * t_norm))); + rrc_taps[k] = (1.0 / Ts_symbol) * num / den; + } + } +} + +// Séquence d'impulsions de Dirac en base band +void generate_baseband_pulses(qam_system* qam, double complex* symbols, int L_symbols, double complex* s_pulses) { + int total_samples = L_symbols * qam->N; + memset(s_pulses, 0, total_samples * sizeof(double complex)); + + for (int k = 0; k < L_symbols; k++) { + int idx = k * qam->N; + s_pulses[idx] = symbols[k]; + } +} + int main () { // Initialisation du system qam qam_system qam; @@ -538,7 +573,7 @@ int main () { demodulate_carrier(&qam, s_corrected + L * qam.N, s_bande_base, nb_symbols * qam.N); double complex* r_mm_out = malloc(sizeof(double complex) * nb_symbols); - double Kp_mm = 0.5; + double Kp_mm = 0.6; double Ki_mm = 0.01; FILE *fp_mm_error = fopen("mm_timing_error.dat", "w"); muller_muller_sync(&qam, s_bande_base, nb_symbols, Kp_mm, Ki_mm, r_mm_out, fp_mm_error); @@ -571,6 +606,5 @@ int main () { free(s_with_preamble); free(texte_recup); free_constellation(&qam); - return 0; }