I have a data sequence $G[n]$ that is upsampled at the transmitter of a communication system by a non-integer factor ($1.5$ to be precise). At the receiver, I am supposed to downsample the data and recover the sequence $G[n]$.
In MATLAB, I am implementing both the transmit and receive signals. When I upsample the signal $G[n]$ by integer factors at the transmitter and then downsample the received signal by the same integer factors, I am able to successfully recover the exact $G[n]$, and continue further processing.
However, when I upsample $G[n]$ by a non-integer factor $1.5$, and then downsample the received data by the same factor $1.5$, I do not get the exact sequence $G[n]$ that was transmitted. In MATLAB, for the transmitted sequence, I simply used commands
upsample with factor $3$ and
downsample with factor $2$. At the receiver I upsampled by factor $2$ and then downsampled by factor $3$.
Is there a way to recover the exact sequence $G[n]$ at the receiver even if it was upsampled by a non-integer factor at the transmitter?