|
2 | 2 | % Find out LTE PSS in the signal stream and correct sampling&carrier error.
|
3 | 3 | % A script of project: https://github.com/JiaoXianjun/rtl-sdr-LTE
|
4 | 4 |
|
5 |
| -function [ppm, f_set, xc, fo_idx_set, pss_idx_set, fo_pss_idx_set, fo_with_all_pss_idx, extra_info] = sampling_ppm_f_search_set_by_pss(s, fo_search_set, pss_fo_set, sampling_carrier_twist, max_reserve, num_pss_period_try, combined_pss_peak_range, par_th, num_peak_th) |
| 5 | +function [ppm, f_set, xc, fo_idx_set, pss_idx_set, fo_pss_idx_set, fo_with_all_pss_idx, extra_info] = sampling_ppm_f_search_set_by_pss(s, fo_search_set, td_pss, pss_fo_set, sampling_carrier_twist, max_reserve, num_pss_period_try, combined_pss_peak_range, par_th, num_peak_th) |
6 | 6 | % sampling period PPM! not sampling frequency PPM!
|
7 | 7 |
|
8 | 8 | % fo_search_set = -100e3 : 5e3 : 100e3; % -100kHz ~ 100 kHz with 5kHz step size
|
9 | 9 | % pss_fo_set = pss_fo_set_gen(td_pss, fo_search_set);
|
10 | 10 |
|
11 |
| -combined_pss_peak_range_half = floor(combined_pss_peak_range/2); |
| 11 | +% combined_pss_peak_range_half = floor(combined_pss_peak_range/2); |
12 | 12 | extra_info = [];
|
13 | 13 |
|
14 | 14 | len_pss = size(pss_fo_set, 1);
|
|
17 | 17 | len = length(s);
|
18 | 18 | len_short = len - (len_pss-1);
|
19 | 19 |
|
20 |
| -corr_store = zeros(len_short, num_fo_pss); |
| 20 | +% corr_store = zeros(len_short, num_fo_pss); |
| 21 | +% |
| 22 | +% tic; |
| 23 | +% for i=1:num_fo_pss |
| 24 | +% tmp_corr = abs( filter(pss_fo_set(end:-1:1, i), 1, s) ).^2; |
| 25 | +% tmp_corr = tmp_corr(len_pss:end); |
| 26 | +% corr_store(:,i) = tmp_corr; |
| 27 | +% end |
| 28 | +% cost_time1 = toc; |
| 29 | +% disp(['PSS xcorr cost ' num2str(cost_time1)]); |
21 | 30 |
|
22 |
| -for i=1:num_fo_pss |
23 |
| - tmp_corr = abs( filter(pss_fo_set(end:-1:1, i), 1, s) ).^2; |
24 |
| - tmp_corr = tmp_corr(len_pss:end); |
25 |
| - corr_store(:,i) = tmp_corr; |
26 |
| -end |
| 31 | +tic; |
| 32 | +[corr_store, fo_search_set] = fft_corr(s, td_pss, fo_search_set); |
| 33 | +cost_time2 = toc; |
| 34 | +disp(['PSS xcorr cost ' num2str(cost_time2)]); |
27 | 35 |
|
28 | 36 | if sampling_carrier_twist==1
|
29 | 37 | ppm = inf;
|
|
0 commit comments