So I would like to try to modulate data using the direction of frequency sweep (a data bit of 1 would be an up sweep, and 0 a down sweep). Encoding my transmit signal is fairly easy, but i'm not sure how I would actually go about decoding the received signal. To help make things clear, please see the figure below where I have and 8 bit data stream, and the spectrogram of the transmitted and received signal. For this example my sampling frequency is $4000\textrm{ Hz}$, and my frequency sweeps are going from $0$ to $2000\textrm{ Hz}$
I've also added in a channel aspect the the figure above. My channel will be unkown, and will change from time to time (but will be constant during any single transmission). The figure below shows the channel response, which is just 2 stop bands.
In the first figure, I and can clearly see the patern of an up sweep and down sweep, but I'm not sure how I would go about actually decoding in an algorithm. I've done work with differential encoding (DPSK) and know how a method to sync and decode that kind of data, but i'm not quite sure where I would start here. The only think I could think of is to take over lapping FFT's and see which bins have the highest magnitude and try to track the direction from there.
Thanks for any input! Please let me know if I can clarify anything!
EDIT:
I tried using two matched filters as MBaz suggested such that my matched filter for my up sweep is $h$ = up sweep signal, in MATLAB it's chirp(time,startFreq,1,stopFreq)
. I'm then creating my matched filter output as seen below, where $y[n]$ is my output, and $x[n]$ is my received signal
$$y[n] = \sum_{i=0}^{\textrm{length}[h]} h[i]\star x[n+i]$$
I get the output as seen below, with thin spikes corresponding to the appropriate up and down sweeps. (note, it's hard to see, but there is a spike at the very beginning of the up sweep plot)
I'm hoping to get something similar to the bottom plot on the figure below, where the plot peaks at the end of the symbol, which could be used for syncing of the signal I believe.