aboutsummaryrefslogtreecommitdiff
path: root/octave/ch_fading.m
diff options
context:
space:
mode:
authorMarin Ivanov <[email protected]>2025-07-25 10:17:14 +0300
committerMarin Ivanov <[email protected]>2026-01-18 20:09:26 +0200
commit0168586485e6310c598713c911b1dec5618d61a1 (patch)
tree6aabc2a12ef8fef70683f5389bea00f948015f77 /octave/ch_fading.m
Initial commitHEADmaster
* codec2 cut-down version 1.2.0 * Remove codebook and generation of sources * remove c2dec c2enc binaries * prepare for emscripten
Diffstat (limited to 'octave/ch_fading.m')
-rw-r--r--octave/ch_fading.m27
1 files changed, 27 insertions, 0 deletions
diff --git a/octave/ch_fading.m b/octave/ch_fading.m
new file mode 100644
index 0000000..e462fab
--- /dev/null
+++ b/octave/ch_fading.m
@@ -0,0 +1,27 @@
+% ch_fading.m
+% David Rowe
+% April 2018
+
+% function to write float fading samples for use by C programs
+
+function ch_fading(raw_file_name, Fs, dopplerSpreadHz, len_samples)
+ randn('seed',1);
+ spread = doppler_spread(dopplerSpreadHz, Fs, len_samples);
+ spread_2ms = doppler_spread(dopplerSpreadHz, Fs, len_samples);
+ hf_gain = 1.0/sqrt(var(spread)+var(spread_2ms));
+ printf("hf_gain: %f\n", hf_gain);
+
+ % interleave real imag samples
+
+ inter = zeros(1,len_samples*4);
+ inter(1:4) = hf_gain;
+ for i=1:len_samples
+ inter(i*4+1) = real(spread(i));
+ inter(i*4+2) = imag(spread(i));
+ inter(i*4+3) = real(spread_2ms(i));
+ inter(i*4+4) = imag(spread_2ms(i));
+ end
+ f = fopen(raw_file_name,"wb");
+ fwrite(f, inter, "float32");
+ fclose(f);
+endfunction