MATLAB: How to apply a Gaussian pulse shaping filter on a random bit stream using Communications Toolbox

Communications Toolboxgmskkeyingminimumshift

I want to do a Gaussian pulse shaping of a binary signal.

Best Answer

The ability to apply a Gaussian pulse shaping filter on a signal is not available in Communications Toolbox.
As a workaround, you may use the GAUSSFIR function in the Signal Processing Toolbox. The following example demonstrates how this can be done.
%%Signal Source
% Build a set of test data.
x = randint(5,1);
x = x*2 -1;
rxsig = upsample(x,33); % Upsampled signal
rxsig = [zeros(16,1); rxsig];
stem(rxsig); hold on
%%Setup
% Define parameters.
bt = 0.3;
o=8;
n = 2;
%%Filter Definition
% Define filter-related parameters.
h = gaussfir(bt,n,o) ;
%%Filter the Signal
% y = filter(h,1,rxsig)/(h*h'); %Scaling by energy
y = filter(h,1,rxsig)/(max(h)); %Scaling by magnitude
plot(y(17:end, :), 'r');hold off;
legend('Upsampled Binary Signal','After Pulse Shaping')
%%Plot the impulse response of the Gaussian Filter
figure;impz(h);