Files
Zcu111ResmReceiver/utilities/plotspectrum.m
canisio 584db6233c - Added utilities for frequency planning
- Changed freq plane to: Fs 4096, int/dec 8X, Mixers 768
2026-03-27 12:50:10 -03:00

59 lines
1.2 KiB
Matlab

function h = plotspectrum(type, centers, bandwidth, color, unit, varargin)
for n = 1:numel(centers)
center = centers(n);
switch type
case 'sym'
x = [-1, -1, 0, 1, 1] * (bandwidth/2) + center;
y = [ 0, 0.5, 1, 0.5, 0];
case 'asym'
x = [-1, -1, 1, 1] * (bandwidth/2) + center;
y = [0, 0.5, 1, 0];
case 'asymflip'
x = [-1, -1, 1, 1] * (bandwidth/2) + center;
y = [0, 1, 0.5, 0];
otherwise
error('Invalid type.');
end
switch unit
case 'Hz'
factor = 1;
case 'kHz'
factor = 1e3;
case 'MHz'
factor = 1e6;
case 'GHz'
factor = 1e9;
otherwise
error('Invalid unit');
end
tmp = patch(x/factor, y, color, varargin{:});
if n == 1
h = tmp;
else
h = [h, tmp]; %#ok<AGROW>
end
end
switch unit
case 'Hz'
xlabel('Frequency (Hz)', 'FontWeight', 'bold')
case 'kHz'
xlabel('Frequency (kHz)', 'FontWeight', 'bold')
case 'MHz'
xlabel('Frequency (MHz)', 'FontWeight', 'bold')
case 'GHz'
xlabel('Frequency (GHz)', 'FontWeight', 'bold')
otherwise
error('Invalid unit');
end
a = gca;
a.XAxis.FontWeight = 'bold';
end