www.gusucode.com > 自己编写的一个基于matlab的图像压缩程序,有GUI界面,不能程度的压缩效果以及信噪比 > 自己编写的一个基于matlab的图像压缩程序,有GUI界面,不能程度的压缩效果以及信噪比/BP神经网络的图像压缩/wavelets压缩/filterstr.m
function s = filterstr(a,K) % Convert a filter to a string [n,d] = rat(K/sqrt(2)); if d < 50 a{1} = a{1}/sqrt(2); % Scale filter by sqrt(2) s = '( '; else s = ''; end Scale = [pow2(1:15),10,20,160,280,inf]; for i = 1:length(Scale) if norm(round(a{1}*Scale(i))/Scale(i) - a{1},inf) < 1e-9 a{1} = a{1}*Scale(i); % Scale filter by a power of 2 or 160 s = '( '; break; end end z = a{2}; LineOff = 0; for k = 1:length(a{1}) v = a{1}(k); if v ~= 0 % Only display nonzero coefficients if k > 1 s2 = [' ',char(44-sign(v)),' ']; v = abs(v); else s2 = ''; end s2 = sprintf('%s%g',s2,v); if z == 1 s2 = sprintf('%s z',s2); elseif z ~= 0 s2 = sprintf('%s z^%d',s2,z); end if length(s) + length(s2) > 72 + LineOff % Wrap long lines s2 = [char(10),' ',s2]; LineOff = length(s); end s = [s,s2]; end z = z - 1; end if s(1) == '(' s = [s,' )']; if d < 50, s = [s,' sqrt(2)']; end if i < length(Scale) s = sprintf('%s/%d',s,Scale(i)); end end return;