How do I apply a Gaussian pulse shaping filter on a random bit stream using Communications Toolbox?
13 次查看(过去 30 天)
显示 更早的评论
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 中查找有关 Digital Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!