wavelet compression function in Matlab?

Hello,
I am looking for a wavelet compression function in Matlab.
From the help on  "wdencmp" in Matlab ( i  copied part of the help on
wdencmp below), it seems the right function i am looking for.. However, from
the output it returned, output XC has the same size as input X.  I was
confused, if it is compression, isnot XC supposed to be smaller in size than
input X?  maybe I miss something here??

"[XC,CXC,LXC,PERF0,PERFL2] =
    WDENCMP('gbl',X,'wname',N,THR,SORH,KEEPAPP)
    returns a de-noised or compressed version XC of input
    signal X (1-D or 2-D) obtained by wavelet coefficients
    thresholding using global positive threshold THR."

Any info is greatly appreciated!
looking forward to your reply:)
yan



0
Yan
9/4/2003 5:15:09 PM
comp.compression 4601 articles. 14 followers. Post Follow

4 Replies
1048 Views

Similar Articles

[PageSpeed] 7/29/2015 5:49:19 PM
Yan Yu <yanyu_1997@yahoo.com> wrote:
> Hello,
> I am looking for a wavelet compression function in Matlab.
> From the help on  "wdencmp" in Matlab ( i  copied part of the help on
> wdencmp below), it seems the right function i am looking for.. However, from
> the output it returned, output XC has the same size as input X.  I was
> confused, if it is compression, isnot XC supposed to be smaller in size than
> input X?  maybe I miss something here??
> 
> "[XC,CXC,LXC,PERF0,PERFL2] =
>    WDENCMP('gbl',X,'wname',N,THR,SORH,KEEPAPP)
>    returns a de-noised or compressed version XC of input
>    signal X (1-D or 2-D) obtained by wavelet coefficients
>    thresholding using global positive threshold THR."

"Compression" has another meaning in signal processing.  It refers to a
particular non-linear process that reduces higher amplitude components
more than lower amplitude components.  For example, the transform
function of A-law compression is:

        1 + log A.|x|
g(x) = --------------- sgn(x)
          1 + log A

	- Kevin.

0
Kevin
9/5/2003 2:24:06 AM
Hi,

> I am looking for a wavelet compression function in Matlab.
> From the help on  "wdencmp" in Matlab ( i  copied part of the help on
> wdencmp below), it seems the right function i am looking for.. However, from
> the output it returned, output XC has the same size as input X.  I was
> confused, if it is compression, isnot XC supposed to be smaller in size than
> input X?  maybe I miss something here??

Even better, if you just count the number of bits required to represent
the wavelet transformed data exactly again, as to allow to reconstruct the
original one by one, you would even find that the wavelet transformer output
requires *more* bits than the original.

Now, how does that work? 

The reason why wavelets are a good candidate for compression is that this
transformation is suitable for removing redundance in the input data that
can then be conveniently removed by standard compression techniques (e.g.
arithmetic coding).

Greetings,
	Thomas
0
Thomas
9/5/2003 8:07:27 AM
Thanks a lot for the explanation!
so in Matlab, there is no wavelet compression function, by "compression" 
in the sense that it reduces the coding size?
thanks,
yan


Thomas Richter wrote:
> Hi,
> 
> 
>>I am looking for a wavelet compression function in Matlab.
>>From the help on  "wdencmp" in Matlab ( i  copied part of the help on
>>wdencmp below), it seems the right function i am looking for.. However, from
>>the output it returned, output XC has the same size as input X.  I was
>>confused, if it is compression, isnot XC supposed to be smaller in size than
>>input X?  maybe I miss something here??
> 
> 
> Even better, if you just count the number of bits required to represent
> the wavelet transformed data exactly again, as to allow to reconstruct the
> original one by one, you would even find that the wavelet transformer output
> requires *more* bits than the original.
> 
> Now, how does that work? 
> 
> The reason why wavelets are a good candidate for compression is that this
> transformation is suitable for removing redundance in the input data that
> can then be conveniently removed by standard compression techniques (e.g.
> arithmetic coding).
> 
> Greetings,
> 	Thomas


0
Yan
9/5/2003 7:47:48 PM
Hi,

> Thanks a lot for the explanation!
> so in Matlab, there is no wavelet compression function, by "compression" 
> in the sense that it reduces the coding size?

I don't know Matlab good enough to answer that question, sorry. But you
could check whether MatLab supports any kind of "entropy coding" function.
If not, then the answer is "no". If yes, then combine that with wavelet
transformation and you already have a simple coder.

Greetings,
	Thomas
0
Thomas
9/8/2003 8:35:21 AM
Reply:
Similar Artilces:

Re: Can't convert numeric to_char() in catenate function
I 'must' quote the quotes. I 'must' quote the quotes. I 'must' quote the quotes. I 'must' quote the quotes. I 'must' quote the quotes. I 'must' quote the quotes. I 'must' quote the quotes. DANG!! I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must''...

Standalone application in MATLAB
Hi, I am using MATLAB 7.7 (R2008b). I have developed a GUIDE application which is running fine when called from GUIDE. It has few files and few directories. I want to create one windows standalone application. By using 'deploytool' option I am able to add main functions and other files to the project. But how can I add the necessary directories. Please let me know step-by-step procedure to end up with a successful standalone tool. Samiran Dam <samiran.dam@gmail.com> wrote in message <35f73a62-f3bc-4a54-9404-c6d2e3c3fe62@glegroupsg2000goo.googlegroups.com>... >...

MATLAB CWT function
Hi, I am using the MATLAB wavelet toolbox function CWT with the complex Morlet wavelet. I would like to do a cwt with a Morlet wavelet size ranging from 512 ms (at highest scale) to 32 ms (at lowest scale). As my signals are sampled at 16 kHz the 512 ms would equal 8192 samples and the 32 ms equal 512 samples. I think I have to adjust the Fb parameter as it controls the bandwidth and hence also the size of the Morlet wavelet in the time domain. (I set the Fc parameter to 0.875) Does anybody know how to specify the size of the Morlet wavelet ? Thanks, Marco ...

INPOLYGON function
Hello, I appreciate if somebody can help me to calculate fraction of land over an antenna foot print, when the antenna from space looks at a particular location. I use raster field data (latitude, longitude and (0 or 1)) to map land and ocean surface with identification of 0 over ocean and 1 over land. My objective is to find out the intersection of an elliptical shaped foot print over the raster data to find out the fraction of land over the antenna foot print. I use ELLIPSE1 function to create elliptical shape and I use INPOLYGON function to see number of data points (latitude and longitud...

Internal functions of Labview ?!?!? ( Closing Function )
Hello Everyone ! I need a function in Labview which should close the test case right after it is finished...Is there such a function that exists ????!!!!?!?!?! if yes where ? thanks alot ...

Compression Qs from a Compression Newbie
When compressing something, what are all the factors used to evaluate how helpful / good the compression method is, in general, and in a specific use? I am interested in finding ways to compress combinations of data that include time / date information about the functioning of an operating system, video data collected under the same o.s., and parts of the o.s. software itself. Does anyone have any experience with anything like this and would anyone have any helpful pointers? I am hoping that patterns or redundancies in the data can be used to compress it. Any helfup input appreciated, Matt ...

Re: How to set a single function key to print 30 obs of
Your spec is somewhat hard to follow. However I got something similar working using EDCMD COPY; This will send the selection to the clipboard where you can fiddle with iti. I defined F12 as edcmd copy;note;notesubmit '%prt30'; %PRT30 is sort of like your macro unxcona without the Remote submit. The other EDCMD commands may help you with submitting. http://support.sas.com/kb/10/385.html Sorry if this is off base. On 2/24/09, xlr82sas@aol.com <xlr82sas@aol.com> wrote: > Currrently > > When I hit F4 function the first 30 records of the last dataset > created ...

complexity function
I can't seem to get the complexity function to run. I'm using Matlab 6.5 (have 7.0 as well but different licensing and don't want to tie up/rely on something we only have one floating license for). Anywho I call the function, I've tried both from inside the solver.m file, and from the command line. I get a unknown definition of board error. Any ideas? Should I just run it on runcontest as I think it is supposed to be the maximum complexity of any function called within the function? Thanks. ...

wavelet basis function in newrb,newgrnn,newpnn replace radbas transfer function
> Does anyone have any references regarding the use of wavelets in a function approximation.Coding in matlab 6.5 for wavelet basis function such as "mexican hat","gaussian in wavelet family is gausswavf" in > newrb replace the radbas transfer function > newgrnn replace the radbas transfer function > newpnn replace the radbas transfer function > Thanks in advance. ...

Matlab implementation of Boolean 3D Operations
Hi Group, Is anyone aware of a free implementation of some basic boolean operations for 3D-objects, like union, intersection and subtraction? Preferably in Matlab, or with a well-defined in/out format. Our data is simply a bunch of polygons (well, vertices and faces, to be exact) which is guaranteed to be connected (no holes, no overlapping), but possibly concave. Thanks in advance. Bo Lind Technical University of Denmark Bo Lind <bolind@spammeandyouretoast!.ostenfeld.dtu.dk> wrote: > Hi Group, > Is anyone aware of a free implementation of some basic boolean operations > f...

Limit of a function of 2 variables
HI, Here is a program who try to find the lim (X,Y)->(a,b) of a function of two variables. Just put your function on the stack (variables must be X,Y) , and the { a b } limit you search. You will see in return : lim:number is the limit found by the program lim: oo (infinite limit) lim:? no limit found lim: f(t) no limit, the function returned is the limit in function ot t, the angle of approach Must be in RPN and exact mode. � {'X' 'Y'} DUP ROT ADD = + � SUBST � STREAM DUP 'X=0' SUBST 'Y=0' SUBST IF EVAL DUP '?' SAME THEN...

Is there still a good, free file compression program?
Is there still a good, free file compression program? Stuffit seems to be no longer free Is there still a good, free file compression program? Stuffit (http://www.stuffit.com/mac-deluxe.html is charging 80$, and if you want a 30-day trial, you have to submit your credit card data to the seller. And Dropstuff is no longer on the versiontracker Web site. Robert In article <e94tn.604$z%6.449@edtnps83>, Robert Montgomery <info-block@northern-data-tech.net> wrote: > Is there still a good, free file compression program? > > Stuffit seems to be no lon...

Need template magic (or how I learned to love template-function-scope static vars)
I've been trying to come up with a way of mapping enums to strings that's usable for programmers that don't want to deal with templates. My enums are numbered 0,1,2,... so I'm not worried about duplicate keys. My previous approaches always looked something like this: enum foo { zero, one, two }; mapper<foo> fooMapper; where the fooMapper would either set up the map in the constructor by calling something like Add(zero, "zero") or the user would be required to set up a static member array that contained the mappings. The code was fairly simple but I was wonde...

FilledPlot with Implicit Functions?
Hi, how can fill the range between the to circles? FilledPlot will not work with implicit functions. thx, Oliver Needs["Graphics`ImplicitPlot`"]; f1 := x^2 + y^2 == 2; f2 := x^2 + y^2 == 1; ImplicitPlot[{f1, f2}, {x, -3, 3}, AxesLabel -> {"x", "y"}, PlotStyle -> {{}, Dashing[{0.02}]}]; Needs["Graphics`"]; InequalityPlot[1<x^2+y^2<2, {x,-3,3},{y,-3,3}, Fills->{SkyBlueDeep}]; DisplayTogether[ FilledPlot[ {Sqrt[2-x^2],-Sqrt[2-x^2]}, {x,-Sqrt[2],Sqrt[2]}, Fills->SkyB...

Matlab Simulink spectrum of a signal
Hi, i want to see the spectrum of the output in a pll. In order to do so, i have put 5 blocks in series: the first is the Zero-Order-Hold (its sampling time is more than twice the main frequency of the output), the second is a Buffer, the third is the fft block(having fft length equal to that of the buffer), the fourth is the abs block and the last is the Spectrum Scope.... I try by different sizes of buffering to do the job but I don't see anything in the spectrum scope.....Can anyone please suggest which parameters should i change in these blocks or which right blocks should i use?...

Re: Scope of Macro Functions #2
No idea why you'd want to do it that way, but isn't that what SYMGET does? -Joe On Fri, Feb 19, 2010 at 8:07 PM, Kirby, Ted <ted.kirby@lewin.com> wrote: > Just out of curiosity, does anyone know why SYMGET works (i.e., increments > the "newcomplines" variables), but %EVAL does not in the following examples: > > FIRST PROGRAM > data test1; > %let complines=1; > newcomplines1=input(symget('complines'),8.)+1; > call symput ('complines',put(newcomplines1,8.)); > newcomplines2=input(symget('complines'),8.)+1; > call sy...

compressed folder
They can be compressed directly folder from code Visual Basic? Andrea. "wintelweb" <wintelweb@yahoo.it> skrev i en meddelelse news:N99ci.37880$U01.408638@twister1.libero.it... > They can be compressed directly folder from code Visual Basic? > Andrea. It's not a question, even though you have a questionmark and the end ! But let me guess.......do you want to compres a folder, with lets say winrar, directly from Visual Basic ? Yes that is possible ...

calling Matlab code in C#
Hi, In my project, I need to call a Matlab function in some C# code. I compiled the Matlab code into a dll and have included that into my C# project. However, I have some problems in figuring out what C# data types correspond to the data types I used in my Matlab code. Specifically, I have an array of struct in Matlab code, i.e. x(j) = c, and c is a struct, having c.a and c.b. I also have a multi-layer struct, something like lmcoords.goalyellow.left.x = -0.67; lmcoords.goalyellow.left.y = -3; lmcoords.goalyellow.right.x = 0.67; lmcoords.goalyellow.right.y = -3; Basically I want to find...

Help on 5 ch phase interferometry usig matlab
can anyone plz help on simulation of principle of 5 ch phase interferometry used in direction finding ...

Functional LETREC?
Currently LETREC is defined in terms of LAMBDA and SET!, but this has two unfortunate consequences: first, you can expose the SET! using call-with-current-continuation, second, it makes it harder to have a purely functional subset of Scheme. One *could* implement LETREC as an n-ary Y operator. It wouldn't necessarily be efficient, but it would be functional. Unfortunately, the standard says that you must LAMBDA and SET!. I suppose that giving the standard the *option* of using Y for LETREC would be frowned upon, *requiring* it to use Y seems a burden (hard to make it efficient), but ...

legend function is not working
Hi all, This is a very simple question. When I try to include a legend in my plots I get the following message (following the legend example in the help): x = -pi:pi/20:pi; >> plot(x,cos(x),'-ro',x,sin(x),'-.b') >> h = legend('cos_x','sin_x',2); ??? Property name already in use. Error in ==> legend>make_legend at 376 lh=scribe.legend(ha,orient,location,position,children,listen,strings,p ropargs{:}); Error in ==> legend at 283 [h,msg] = make_legend(ha,varargin(arg:end)); and then my plot is replaced by the legend which occupies the...

Re: Forcing functions #2
Barry, Your students could manipulate the output after using Integrate to obtain a Log form. In this case TrigToExp will generate the Log form. Integrate[ x * Sqrt[x^2 + 2x + 4], x] % // TrigToExp % // Simplify (1/6)*(Sqrt[4 + 2*x + x^2]*(5 + x + 2*x^2) - 9*ArcSinh[(1 + x)/Sqrt[3]]) (1/6)*(Sqrt[4 + 2*x + x^2]*(5 + x + 2*x^2) - 9*Log[(1 + x)/Sqrt[3] + Sqrt[1 + (1/3)*(1 + x)^2]]) (1/6)*(Sqrt[4 + 2*x + x^2]*(5 + x + 2*x^2) - 9*Log[(1 + x + Sqrt[4 + 2*x + x^2])/Sqrt[3]]) Since there are often many different forms for an indefinite integral, and a CAS will p...

matlab code doesnt work
Hi, I am trying to implement this code (which was on a lecture slide that I found on the internet) but I could not figure out the error code. Any help is appreciated: price = [74.9 108.34 82.52 47.2 10 8; 78.85 108.9 82.7 47.34 11 6; 79.86 118 83.3 49.44 12 9; 88.53 120.05 81.75 48.23 11 9; 88.84 134.31 81.13 49.25 12 8 ]; [n,col] = size(price); for i=2:n ret(i,:) = (price(i,:)-price(i-1,:))./price(i-1,:); end The error I get is: ??? Error using ==> run Subscripted assignment dimension mismatch. Any idea how to modify my subscript to make this work? On Sat, 15 Dec 2007 ...

Hex function in on 6-bit addresses
IDS 10.00.FC0 HP-UX b.11 Greetings, family. I am trying to write some bizarre SQL (would I write any other kind? ;-) on sysmaster. One of the columns is an address that would appear in the output of "onstat -b", if I have understood it correctly. In onstat -b the output appears correct, whereas in SQL it comes up as a negative number. This makes me suspect that onstat, written in C, is interpreting the addresses as unsigned while the SQL engine sees it as signed and it comes up as negative. The hex addresses that show up in onstat -b all start with c00000 before the...

continuous wavelet transform with complex morlet wavelet as mother wavelet....
how to implement continuous wavelet transform with complex morlet wavelet as mother wavelet. i know fb and fc values also, but i dont know exact syntax(in matlab) so i am not able to implement.... ...