This repository has been archived on 2024-01-14. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
vivado-202401/projects/dl814_dj/dl814_dj_48m/scripts/lpf_125k.m
T
2023-04-13 13:33:41 +08:00

31 lines
852 B
Matlab

clc; clear; close all;
% parameters
fs1 = 48e6; % sample rate 1
fs2 = 122.88e6; % sample rate 2
ratio_up = fs2/gcd(fs1,fs2); % upsample ratio
ratio_dn = fs1/gcd(fs1,fs2); % downsample ratio
interp = 8; % interpolation factor
sumbol_num = 16;
% standard pn sequence
pn_seq = comm.PNSequence('Polynomial','x^7+x^6+1', ...
'InitialConditions',[zeros(1,6),1],'SamplesPerFrame',2^7-1);
PRBS7 = pn_seq();
PRBS7_polar = 1-2*[PRBS7;0];
% square shaping
data_fs1 = kron(repmat(PRBS7_polar,sumbol_num,1),ones(interp,1));
% upsample
data_fs1_up = upsample(data_fs1,ratio_up);
% anti-aliasing filter
fir = fir1(1024,6e6/48e6/max(ratio_up,ratio_dn)*2*pi,'low');
% filtering & downsample
data_fs2 = downsample(conv(data_fs1_up,fir,'same'),ratio_dn);
% quantize & export fir coefficients
coe_gen(round(fir/max(abs(fir))*(2^15-1)),'lpf_125k.coe','filter');