How to implement Bessel filter transfer function for bandlimited electronic driver after pulse shaping? (number of poles 4 and B-3db equal to 7 GHz)

3 views (last 30 days)
clc;
clear all;
close all;
M=2;
N_bits=1e5;
SPS=8;
f0 = 193.4e12;
k = log2(M); % Number of bits per symbol
Nsymbol=N_bits/k; %Number of Symbols
data=randi([0 M-1], N_bits,1);%%
moddata=pammod(data,M)+1;%%2PAM MODULATION
%Upsampling
signal=zeros(1,SPS*Nsymbol,1);% makes a vector of zeros with the size of sps*Nsymbol
signal(1:SPS:end)=moddata;
%%Pulse shaping
A=1;
B=ones(1,SPS);% makes a vector of ones with size of sps [1,1,1,1,1,1,1,1]
Z=filter(B,A,signal);
%Elecrotnic Driver modeled as Bessel filter transfer function
Poles=4;
Bandwith=7*1e9;
% for Counter=1:length(Bandwith)
WC=2*pi*Bandwith;%(Counter); %%Angular frequency
[b1,a1]=besself(Poles,WC);
%s=1j*2*pi*f;
%H=polyval(b,s)./polyval(a,s);
%TF=H/max(H);
% plot(f,abs(TF).^2)
%grid on
[bz, az] = impinvar(b1,a1,Bandwith);
y=filter(bz,az,Z);
%y=real(ifft(fftshift(TF).*(fft(Z))));
% end;

Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!