0001 function ltpda_specwin_viewer_build_window(varargin)
0002
0003
0004 plotType = varargin{end};
0005
0006 mainfig = findobj('Tag', 'LTPDAspecwin_viewer');
0007 ax = getappdata(mainfig, 'axes');
0008 info = findobj('Tag', 'LTPDA_specwin_viewer_wininfo');
0009
0010
0011 winTxt = findobj('Tag', 'LTPDA_specwin_viewer_WinType');
0012 wins = get(winTxt, 'String');
0013 win = wins{get(winTxt, 'Value')};
0014
0015
0016 sizeTxt = findobj('Tag', 'LTPDA_specwin_viewer_WinSize');
0017 winlen = str2num(get(sizeTxt, 'String'));
0018
0019 if strcmpi(win, 'Kaiser')
0020
0021 psllTxt = findobj('Tag', 'LTPDA_specwin_viewer_PSLL');
0022 psll = str2num(get(psllTxt, 'String'));
0023 w = specwin(win, winlen, psll);
0024 cstr = sprintf('specwin(''%s'', %d, %f)', win, winlen, psll);
0025 else
0026 w = specwin(win, winlen);
0027 cstr = sprintf('specwin(''%s'', %d)', win, winlen);
0028 end
0029
0030 consTxt = findobj(mainfig, 'Tag', 'LTPDA_specwin_viewer_cstr');
0031 set(consTxt, 'String', cstr);
0032
0033
0034 titleStr = '';
0035 legendStr = '';
0036
0037 switch plotType
0038 case 'Time-domain'
0039 hl = plot(ax, 1:length(w.win), w.win);
0040 xlabel('sample');
0041 ylabel('amplitude');
0042 case 'Freq-domain'
0043
0044 f = linspace(-30,30,1000);
0045 r = zeros(size(f));
0046 N = length(w.win);
0047
0048
0049 for j=1:length(f)
0050 k = [0:N-1].';
0051 r(j) = (w.win * exp(-2*pi*1i*f(j)*k/N) )./w.ws;
0052 end
0053
0054
0055 dbr = 20*log10(abs(r)); hl = plot(ax, f, dbr);
0056 xlabel('bin');
0057 ylabel('amplitude [dB]');
0058 end
0059
0060 col = [0.8 0.1 0.1];
0061 set(hl, 'Color', col);
0062 titleStr = [titleStr, utils.plottools.label(w.type), ', '];
0063 titleStr = titleStr(1:end-2);
0064 title(sprintf('Window: %s', titleStr));
0065 axis tight
0066 grid on
0067
0068
0069
0070 lstr = [sprintf('alpha = %g\n', w.alpha)...
0071 sprintf('psll = %g\n', w.psll)...
0072 sprintf('rov = %g\n', w.rov)...
0073 sprintf('nenbw = %g\n', w.nenbw)...
0074 sprintf('w3db = %g\n', w.w3db)...
0075 sprintf('flatness = %g\n', w.flatness)];
0076 legendStr = [legendStr cellstr(lstr)];
0077 set(info, 'String', legendStr);
0078
0079
0080
0081
0082
0083
0084