diff --git a/BCCH_demod.m b/BCCH_demod.m index 977cce6..3f1cd68 100644 --- a/BCCH_demod.m +++ b/BCCH_demod.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% GSM BCCH demodulator +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function BCCH_demod(s, pos_info, training_sequence, oversampling_ratio) carrier_ppm = -1; normal_training_sequence_idx = -1; diff --git a/CW_check.m b/CW_check.m index e132507..e8a9e5f 100644 --- a/CW_check.m +++ b/CW_check.m @@ -1,4 +1,3 @@ -% function CW_check.m % Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) % check if there are discontinuous samples in a segment of CW signal diff --git a/FCCH_coarse_position.m b/FCCH_coarse_position.m index 9bee4b5..f041200 100644 --- a/FCCH_coarse_position.m +++ b/FCCH_coarse_position.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% Find out coarse sample index of beginning of GSM FCCH +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function position = FCCH_coarse_position(s, decimation_ratio) disp(' '); position = -1; diff --git a/FCCH_demod.m b/FCCH_demod.m index 826e2bd..0722ec9 100644 --- a/FCCH_demod.m +++ b/FCCH_demod.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% GSM FCCH detector/verification +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function FCCH_demod(s, pos_info, oversampling_ratio, carrier_freq) disp(' '); diff --git a/FCCH_fine_correction.m b/FCCH_fine_correction.m index e8caa59..ff23e51 100644 --- a/FCCH_fine_correction.m +++ b/FCCH_fine_correction.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% GSM FCCH fine synchronization +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function [FCCH_pos, r, sampling_ppm, carrier_ppm] = FCCH_fine_correction(s, base_position, oversampling_ratio, carrier_freq) disp(' '); diff --git a/SCH_corr_rate_correction.m b/SCH_corr_rate_correction.m index 5da03d9..0305c39 100644 --- a/SCH_corr_rate_correction.m +++ b/SCH_corr_rate_correction.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% Estimate sampling rate error and carrier frequency error and compansate them according to GSM SCH detection. +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function [pos_info, r, sampling_ppm] = SCH_corr_rate_correction(s, FCCH_pos, sch_training_sequence, oversampling_ratio) disp(' '); diff --git a/SCH_demod.m b/SCH_demod.m index 6debf53..54234d5 100644 --- a/SCH_demod.m +++ b/SCH_demod.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% GSM SCH demodulator +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function SCH_demod(s, pos_info, training_sequence, oversampling_ratio) disp(' '); diff --git a/carrier_correct_post_SCH.m b/carrier_correct_post_SCH.m index 6fe7eac..043c26e 100644 --- a/carrier_correct_post_SCH.m +++ b/carrier_correct_post_SCH.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% Estimate carrier frequency error and compansate it. +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function [r, carrier_ppm] = carrier_correct_post_SCH(s, pos_info, oversampling_ratio, carrier_freq) disp(' '); diff --git a/chn_filter_4x.m b/chn_filter_4x.m index 2fde9e7..2d19049 100644 --- a/chn_filter_4x.m +++ b/chn_filter_4x.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% GSM single rate channel filter which works on 4X oversampling rate +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function r = chn_filter_4x(s) persistent coef; diff --git a/chn_filter_8x_4x.m b/chn_filter_8x_4x.m index 82e83b4..7258565 100644 --- a/chn_filter_8x_4x.m +++ b/chn_filter_8x_4x.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% GSM decimation channel filter which works on 8X oversampling input and generates 4X oversampling output +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function r = chn_filter_8x_4x(s) persistent coef; diff --git a/gsm_SCH_training_sequence_gen.m b/gsm_SCH_training_sequence_gen.m index 3626cd6..02d0cc6 100644 --- a/gsm_SCH_training_sequence_gen.m +++ b/gsm_SCH_training_sequence_gen.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% Generate GSM SCH channel training sequences according to GSM spec +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function s = gsm_SCH_training_sequence_gen(oversampling_ratio) filename = ['gsm_SCH_training_sequence_' num2str(oversampling_ratio) 'x.mat']; diff --git a/gsm_normal_training_sequence_gen.m b/gsm_normal_training_sequence_gen.m index 35c3558..c0b6bb8 100644 --- a/gsm_normal_training_sequence_gen.m +++ b/gsm_normal_training_sequence_gen.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% Generate 8 normal training sequences according to GSM spec +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function s = gsm_normal_training_sequence_gen(oversampling_ratio) filename = ['gsm_normal_training_sequence_' num2str(oversampling_ratio) 'x.mat']; diff --git a/move_fft_snr_runtime_avg.m b/move_fft_snr_runtime_avg.m index b7f5731..511966e 100644 --- a/move_fft_snr_runtime_avg.m +++ b/move_fft_snr_runtime_avg.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% Find out FCCH location by moving FFT, peak averaging, Peak-to-Average-Ratio monitoring. +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function [hit_flag, hit_idx, hit_avg_snr, hit_snr] = move_fft_snr_runtime_avg(s, mv_len, fft_len, th) hit_flag = false; hit_idx = -1; diff --git a/raw2iq.m b/raw2iq.m index cf15f06..393e59e 100755 --- a/raw2iq.m +++ b/raw2iq.m @@ -1,4 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% convert original uint8 data captured by rtl_sdr to double complex data. % all variable are assumed to be column vector + function b = raw2iq(a) c = a(1:2:end,:) + 1i.*a(2:2:end,:); % c = a(2:2:end,:) + 1i.*a(1:2:end,:); % swap diff --git a/set_freq_tcp.m b/set_freq_tcp.m index cb6c18f..7237ecd 100755 --- a/set_freq_tcp.m +++ b/set_freq_tcp.m @@ -1,5 +1,6 @@ % Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) % parameter setting via tcp to rtl_tcp +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration function tcp_obj = set_freq_tcp(tcp_obj, freq) fwrite(tcp_obj, 1, 'uint8'); diff --git a/set_gain_tcp.m b/set_gain_tcp.m index 5743e76..679cb27 100755 --- a/set_gain_tcp.m +++ b/set_gain_tcp.m @@ -1,5 +1,7 @@ % Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) % parameter setting via tcp to rtl_tcp +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function tcp_obj = set_gain_tcp(tcp_obj, gain) diff --git a/set_rate_tcp.m b/set_rate_tcp.m index 2ea9656..2a51928 100755 --- a/set_rate_tcp.m +++ b/set_rate_tcp.m @@ -1,5 +1,6 @@ % Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) % parameter setting via tcp to rtl_tcp +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration function tcp_obj = set_rate_tcp(tcp_obj, rate) fwrite(tcp_obj, 2, 'uint8'); diff --git a/specific_fft_snr_fix_avg.m b/specific_fft_snr_fix_avg.m index ac5f1bf..e3bad50 100644 --- a/specific_fft_snr_fix_avg.m +++ b/specific_fft_snr_fix_avg.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% Find out FCCH location by moving FFT, peak averaging, Peak-to-Average-Ratio monitoring around a specific location. +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function [hit_flag, hit_idx, hit_snr] = specific_fft_snr_fix_avg(s, target_set, fft_len, th, avg_snr) hit_flag = false; hit_idx = -1; diff --git a/test_diff_GMSK_mod_demod.m b/test_diff_GMSK_mod_demod.m index 4edd7f9..5b1cf8a 100644 --- a/test_diff_GMSK_mod_demod.m +++ b/test_diff_GMSK_mod_demod.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% A test script to study GMSK demodulation +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + % function test_diff_GMSK_mod_demod clear all; close all; diff --git a/total_ppm_calculation.m b/total_ppm_calculation.m index eeee4b9..3bf62b8 100644 --- a/total_ppm_calculation.m +++ b/total_ppm_calculation.m @@ -1,3 +1,7 @@ +% Jiao Xianjun (putaoshu@msn.com; putaoshu@gmail.com) +% Calculated total PPM according to several cascaded PPM +% A script of project: https://github.com/JiaoXianjun/multi-rtl-sdr-calibration + function ppm_out = total_ppm_calculation(ppm_in) if ppm_in == inf