start with 400G analysis work
This commit is contained in:
@@ -22,7 +22,7 @@ run_a2_tracked_levels = 0;
|
||||
run_a2_residual = 0;
|
||||
run_a1 = 0;
|
||||
run_tracking_adaptive = 1;
|
||||
plot_output_signals = 1;
|
||||
plot_output_signals = options.debug_plots;
|
||||
|
||||
%% Shared fixed EQ settings
|
||||
eq_sps = 2;
|
||||
@@ -42,11 +42,12 @@ end
|
||||
Scpe_sig = preprocessSignal(Scpe_sig_raw, Symbols, options.fsym, ...
|
||||
"mode", "auto", ...
|
||||
"debug_plots", options.debug_plots);
|
||||
[Scpe_sig, Symbols, Tx_bits] = alignDspInputs(Scpe_sig, Symbols, Tx_bits, eq_sps);
|
||||
output = struct();
|
||||
|
||||
%%
|
||||
if plot_output_signals
|
||||
showLevelScatter(Scpe_sig, Symbols, ...
|
||||
showLevelScatter(Scpe_sig.normalize("mode","rms"), Symbols, ...
|
||||
"fsym", options.fsym, ...
|
||||
"fignum", 400, ...
|
||||
"normalize", true);
|
||||
@@ -283,9 +284,9 @@ if run_tracking_adaptive
|
||||
"dc_tracking_persistence_gain", 0, ...
|
||||
"dc_tracking_buffer_len", block_update, ...
|
||||
"optmize_mus", false, ...
|
||||
"optimize_dc_tracking_params", false, ...
|
||||
"optimize_dc_tracking_params", true, ...
|
||||
"dc_tracking_optimization_len", 2^15, ...
|
||||
"dc_tracking_optimization_max_evals", 30, ...
|
||||
"dc_tracking_optimization_max_evals", 20, ...
|
||||
"plot_mu_optimization", options.debug_plots, ...
|
||||
"save_debug", eq_save_debug);
|
||||
|
||||
@@ -296,16 +297,18 @@ if run_tracking_adaptive
|
||||
"dc_tracking", "adaptive", block_update);
|
||||
output.(char(storageName)) = ffe_results;
|
||||
|
||||
fignum = 106;
|
||||
if options.debug_plots
|
||||
fignum = 106;
|
||||
|
||||
eq_noise = equalized_signal - Symbols;
|
||||
dn = sprintf("FFE DCT; SIR: %d dB",options.dataTable.sir);
|
||||
showEQNoisePSD(eq_noise, "fignum", fignum, "displayname", dn,"colormode","diverging");
|
||||
ylim([-70 -30]);
|
||||
%
|
||||
% dn = sprintf("FFE only; SIR: %d dB",options.dataTable.sir);
|
||||
% showEQNoisePSD(eq_noise_ffe, "fignum", fignum+1, "displayname", dn,"colormode","diverging");
|
||||
% ylim([-70 -30]);
|
||||
eq_noise = equalized_signal - Symbols;
|
||||
dn = sprintf("FFE DCT; SIR: %d dB",options.dataTable.sir);
|
||||
showEQNoisePSD(eq_noise, "fignum", fignum, "displayname", dn,"colormode","diverging");
|
||||
ylim([-70 -30]);
|
||||
%
|
||||
dn = sprintf("FFE only; SIR: %d dB",options.dataTable.sir);
|
||||
showEQNoisePSD(eq_noise_ffe, "fignum", fignum+1, "displayname", dn,"colormode","diverging");
|
||||
ylim([-70 -30]);
|
||||
end
|
||||
|
||||
if plot_output_signals
|
||||
|
||||
@@ -387,6 +390,22 @@ function description = resultDescription(prefix,options)
|
||||
description = sprintf('%s; SIR %g dB',prefix,sir);
|
||||
end
|
||||
|
||||
function [Scpe_sig, Symbols, Tx_bits] = alignDspInputs(Scpe_sig, Symbols, Tx_bits, sps)
|
||||
nSymbols = min(length(Symbols), floor(length(Scpe_sig) / sps));
|
||||
if nSymbols <= 0
|
||||
error("mpi_recipe_dev:EmptyAlignedSignal", ...
|
||||
"No overlapping samples remain after preprocessing and synchronization.");
|
||||
end
|
||||
|
||||
Scpe_sig.signal = Scpe_sig.signal(1:sps*nSymbols);
|
||||
Scpe_sig.signal = real(Scpe_sig.signal);
|
||||
Symbols.signal = Symbols.signal(1:nSymbols,:);
|
||||
|
||||
if isprop(Tx_bits, "signal")
|
||||
Tx_bits.signal = Tx_bits.signal(1:nSymbols,:);
|
||||
end
|
||||
end
|
||||
|
||||
function plotEqSignals(equalized_signal,Symbols,options,fignum,output_scale)
|
||||
|
||||
showLevelScatter(equalized_signal .* output_scale, Symbols, ...
|
||||
|
||||
Reference in New Issue
Block a user