-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathdesign_filter_pluto.m
68 lines (66 loc) · 3.37 KB
/
design_filter_pluto.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
% Copyright 2014-2015(c) Analog Devices, Inc.
%
% All rights reserved.
%
% Redistribution and use in source and binary forms, with or without modification,
% are permitted provided that the following conditions are met:
% - Redistributions of source code must retain the above copyright
% notice, this list of conditions and the following disclaimer.
% - Redistributions in binary form must reproduce the above copyright
% notice, this list of conditions and the following disclaimer in
% the documentation and/or other materials provided with the
% distribution.
% - Neither the name of Analog Devices, Inc. nor the names of its
% contributors may be used to endorse or promote products derived
% from this software without specific prior written permission.
% - The use of this software may or may not infringe the patent rights
% of one or more patent holders. This license does not release you
% from the requirement that you obtain separate licenses from these
% patent holders to use this software.
% - Use of the software either in source or binary form or filter designs
% resulting from the use of this software, must be connected to, run
% on or loaded to an Analog Devices Inc. component.
%
% THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
% INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A
% PARTICULAR PURPOSE ARE DISCLAIMED.
%
% IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
% EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY
% RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
% BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
% STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
% THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
%
% Inputs (structure containing the following fields)
% ============================================
% Rdata = input/output sample data rate (in Hz)
% FIR = FIR interpolation/decimation factor
% PLL_mult = PLL multiplication
% Fpass = passband frequency (in Hz)
% Fstop = stopband frequency (in Hz)
% Apass = max ripple allowed in passband (in dB)
% Astop = min attenuation in stopband (in dB)
% FIRdBmin = min rejection that FIR is required to have (in dB)
% phEQ = phase equalization on (not -1)/off (-1)
% int_FIR = use AD9361 FIR on (1)/off (0)
% wnom = analog cutoff frequency (in Hz)
%
% Outputs (structure containing the additional following fields)
% ===============================================
% firtaps = fixed point FIR coefficients
% filter = system object for visualization (does not include analog filters)
% delay = actual delay used in phase equalization
function output = design_filter_pluto(input)
% check MATLAB version compatibility
if ~check_compat()
warn('AD9361 Filter Wizard requires MATLAB 2015b or later, older versions are unsupported.')
end
if input.Rdata <= 520.83e3
input.Rdata = input.Rdata*8;
input.FPGAfilter = 1;
else
input.Rdata = input.Rdata;
input.FPGAfilter = 0;
end
output = clean_filter_fields(internal_design_filter(input));