📄 tfr_dualnorm.m
字号:
function cnr=tfr_dualnorm(self,L);%TFR_DUALNORM Measure of how close a window is to be a dual window. % Usage: dn=tfr_dualnorm(tfr,L);%% Input parameters:% tfr : Time/frequency representation handle.% L : Length of transform to consider.% Output parameters:% dn : dual norm.%% TFR_DUALNORM(tfr) calculates how the analysis and synthesis windows% are to being duals of each other for a transform length of%% TFR_DUALNORM can be used to get the maximum relative reconstruction% error. Consider the following code for some signal f.% % fr=tfr_s(tfr,tfr_a(tfr,f));% er=norm(f-fr)/norm(f);% eest=tfr_dualnorm(tfr);% % Then er < eest for all possible input signals f.%% SEE ALSO: TFR_CREATE, TFR_A, TFR_S, TFR_CLEARif nargin<1 error('Too few arguments.');end;if nargin>2 error('Too many arguments.');end;global TF_STORAGE;% Verify that TF_STORAGE has been initializedif prod(size(TF_STORAGE))==0 error('Please run TFR_CREATE to obtain a valid handle.');end;% Easy referencesa=TF_STORAGE.data{self}.a;M=TF_STORAGE.data{self}.M;dgtinfo=TF_STORAGE.data{self}.dgtinfo;% XXX This is not right.[awinpos,L]=assert_winready(self,L,1,1,0,'TFR_DUALNORM');[swinpos,L]=assert_winready(self,L,2,1,0,'TFR_DUALNORM'); awininfo=TF_STORAGE.data{self}.w{awinpos};swininfo=TF_STORAGE.data{self}.w{swinpos};L_dgt=L*dgtinfo.Lmul;a_dgt=dgtinfo.a;M_dgt=dgtinfo.M;N_dgt=L_dgt/a_dgt;% XXX What to do instead of this??% g=firextend(g,L);% gamma=firextend(gamma,L); % Calculate the right-hand side of the Wexler-Raz equations.rhs=dgt(TF_STORAGE.data{self}.w{swinpos}.g, ... TF_STORAGE.data{self}.w{awinpos}.g,M_dgt,a_dgt);% Subtract from the very first element.rhs(1,1)=rhs(1,1)-a_dgt/M_dgt; % Calculate 1-norm.cnr=norm(rhs(:),1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -