Correct way to simulate Rayleigh fading for indoor environments
A discrete-time baseband model of a multi-propagation channel can be written as

$$y[m] = \sum_l h_l[m] x[m-l] + w[m]$$

where $l$ is the index of channel taps if the channel is modeled as a FIR $\{h_l, 0\leq l &lt; L-1\}$. $w[m]$ is AWGN sample.

The channel tap $h_l[m] = \sum_i \alpha_i(m/W) \times \mathrm{sinc}(l-W\times\tau_i(m/W))$ where $i$ is the index of physical propagation path; $\alpha_i$ and $\tau_i$ are the gain and the delay of path $i$, respectively; $W$ is the bandwidth of signal $x(t)$.

The philosophy of this modeling is that due to the decay of $\mathrm{sinc}()$ function, $h_l[m]$ has significant contribution of the path $i$ having delay $\tau_i \in [l/W-1/2W,l/W+1/2W]$. Next the reason of Rayleigh modeling is that these number of that kind of path $i$ for $h_l$ is quite high and by the central limit theorem, $h_l$ is complex Gaussian.

The Rayleigh fading assumption is reasonable for the indoor environment because of the high number of scattering object.

The fact that you have used element-wise multiplication between s_l and rayleigh_h implies that your channel is one tap, i.e. $L=1$. One reason is that bandwidth $W \ll \textrm{delay spread } \tau_m$. Check it.

To model the fact that channel varies in time, you need to consider the notion of coherence time. The channel model you are trying to use is called Rayleigh Block fading. For a quick and dirty approach, just calculate the coherence time $T_c$ (based on the carrier frequency and the velocity), then divide it by the symbol time $1/W$ for the number of symbol that channel is assumed constant. I mean something like

nrep = OSR * Tc * W;
rayleigh_h = 1/sqrt(2)*[randn(1, length(s_l) / nrep) + 1i * randn(1, length(s_l) / nrep)];
rayleigh_h = repelem(rayleigh_h, nrep);
s_l = s_l .* rayleigh_h;



For more sophisticated model, I suggest using the rayleighchan object.