view m-toolbox/classes/@specwinViewer/plotWindow.m @ 39:11e3ed9d2115
database-connection-manager
Implement databases listing in database connection dialog
author |
Daniele Nicolodi <nicolodi@science.unitn.it> |
date |
Mon, 05 Dec 2011 16:20:06 +0100 (2011-12-05) |
parents |
f0afece42f48 |
children |
|
line source
function plotWindow(varargin)
if nargin == 2
mainfig = varargin{end-1};
plotType = varargin{end};
ax = getappdata(mainfig.handle, 'axes');
elseif nargin == 3
ax = varargin{1};
mainfig = varargin{2};
plotType = varargin{3};
end
info = findobj(mainfig.handle, 'Tag', 'InfoDisplay');
% get window type
winTxt = findobj(mainfig.handle, 'Tag', 'WindowSelect');
wins = get(winTxt, 'String');
win = wins{get(winTxt, 'Value')};
% Get window size
sizeTxt = findobj(mainfig.handle, 'Tag', 'WindowSize');
winlen = str2num(get(sizeTxt, 'String'));
if strcmpi(win, 'Kaiser')
% get psll
psllTxt = findobj(mainfig.handle, 'Tag', 'WindowPSLL');
psll = str2num(get(psllTxt, 'String'));
w = specwin(win, winlen, psll);
cstr = sprintf('specwin(''%s'', %d, %f)', win, winlen, psll);
else
w = specwin(win, winlen);
cstr = sprintf('specwin(''%s'', %d)', win, winlen);
end
consTxt = findobj(mainfig.handle, 'Tag', 'ConstructorDisplay');
set(consTxt, 'String', cstr);
titleStr = '';
legendStr = '';
switch plotType
case 'Time-domain'
hl = plot(ax, 1:length(w.win), w.win);
xlabel('sample');
ylabel('amplitude');
case 'Freq-domain'
% Freq response
f = linspace(-30,30,1000);
r = zeros(size(f));
N = length(w.win);
% do dft
for j=1:length(f)
k = [0:N-1].';
r(j) = (w.win * exp(-2*pi*1i*f(j)*k/N) )./w.ws;
end
% convert to dB
dbr = 20*log10(abs(r)); hl = plot(ax, f, dbr);
xlabel('bin');
ylabel('amplitude [dB]');
end
col = [0.8 0.1 0.1];
set(hl, 'Color', col);
titleStr = [titleStr, utils.plottools.label(w.type), ', '];
titleStr = titleStr(1:end-2);
title(sprintf('Window: %s', titleStr));
axis tight
grid on
% Info string
lstr = [sprintf('alpha = %g\n', w.alpha)...
sprintf('psll = %g\n', w.psll)...
sprintf('rov = %g\n', w.rov)...
sprintf('nenbw = %g\n', w.nenbw)...
sprintf('w3db = %g\n', w.w3db)...
sprintf('flatness = %g\n', w.flatness)];
legendStr = [legendStr cellstr(lstr)];
set(info, 'String', legendStr);
end