How do I apply a Gaussian pulse shaping filter on a random bit stream using Communications Toolbox?
조회 수: 12 (최근 30일)
표시 이전 댓글
MathWorks Support Team
. 2009년 6월 27일
답변: Tasos Giannoulis
. 2017년 1월 25일
I want to do a Gaussian pulse shaping of a binary signal.
채택된 답변
MathWorks Support Team
2009년 6월 27일
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);
댓글 수: 0
추가 답변 (1개)
Tasos Giannoulis
2017년 1월 25일
Alternatively, you can construct an FIR Gaussian filter using dsp.FIRFilter (from DSP System Toolbox) and gaussdesign (from Signal Processing Toolbox):
bt = 0.3;
span = 4;
sps = 4;
num = gaussdesign(bt, span, sps);
gaussianFilter = dsp.FIRFilter('Numerator', num);
filtered = gaussianFilter(yourSignal);
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Statistics and Linear Algebra에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!