I have 228000 samples of 1 second BPSK signal (with noise) which is shaped with raised-cosine pulse, rollof factor = 1. Signal data rate is 1187.5 symbols/s. I tried to obtain receive filter in matlab using rcosdesign function and then use filtfilt in order to convolve it with my signal.
I was sure that value: sps (which I assume means SamplesPerSymbol) will be 228000/1187.5 = 192 (samples per second divided by symbols per second), but output of filtfilt is 100% bad.
matlab code: https://pastebin.com/jvM1b63E
plot ('before filter' is multiplie by 90):
https://imgur.com/a/7pXYoCc
I don't know about that specific Matlab function, but I woulod assume 'sps' to stand for samples-per-second and thus 228000...
The MATLAB on-line documentation for the rcosdesign function states that sps means Samples Per Second:
sps
— Samples per symbol
positive integer scalar
Number of samples per symbol (oversampling factor), specified as a positive integer scalar.
Data Types: double
| single
I'm not sure what "100% bad" means, but remember that rcosdesign can generate a square root raised cosine or a normal raised cosine (the latter is obtained by convolving the square root filter with itself). I'm assuming that you are trying to decode a signal transmitted over a noisy channel. Do you have info on what kind of pulse shaping was used at the transmitter? In any case, it's worth exploring the shape parameter:
returns a square-root raised cosine filter when you set b
= rcosdesign(beta
,span
,sps
,shape
)shape
to 'sqrt'
and a normal raised cosine FIR filter when you set shape
to 'normal'
.