tag:blogger.com,1999:blog-32050640643403347252024-03-05T06:28:51.335-07:00Hao's TechBlogResearch, Technology, LifeAnonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.comBlogger25125tag:blogger.com,1999:blog-3205064064340334725.post-75503070314216493992012-09-27T21:30:00.004-06:002012-09-27T21:30:54.646-06:00Sampling Rate is Not Only about Pixels: How to compare the sampling rate between your camera and "single-pixel" camera<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
At the beginning, I'd like to make clear two terms: "Nyquist frequency" and "Nyquist rate".<br />
Some of you may take them as the same thing, and even some textbooks did so. However, although they are quite similar, they are actually different.<br />
Reference: http://en.wikipedia.org/wiki/Nyquist_frequency<br />
<b>Nyquist Frequency</b>: A property of system. For a given system, sampling rate $f_s$ is fixed. The Nyquist frequency of the system is the allowed highest frequency of a signal that could be sampled without aliasing, which is $f_s / 2$.<br />
<b>Nyquist Rate</b>: A property of signal. For a given band-limited or band-pass signal, bandwidth B is fixed. The Nyquist rate of the signal is the necessary lowest sampling frequency of a system that could sample the signal without aliasing, which is $2B$.<br />
<br />
Then for an (imaging system, image signals), you can interpret the sampling rate is the number of pixels, the highest frequency of the image is the resolution of the image.<br />
Then the Nyquist says here, for a imaging system, the number of pixels (sampling rate) is fixed, the highest allowed resolution of the pixel is determined by/proportional to the number of pixels. For different kinds of measure of resolution, the proportion factor differs.<br />
Meanwhile, for an image signal, whose resolution (band-width) is fixed, the required pixels is then determined by/proportional to the resolution.<br />
<br />
So the number of pixels is actually the number of samples a system takes for a given image.<br />
Then does it mean "single-pixel" means the number of samples is 1? The answer is definitely no.<br />
So how to interpret the "single"-pixel?<br />
<br />
It's a little tricky, but still can be understood. The only thing you need to do is adding a time-axis.<br />
The traditional imaging system in your cameras actually taking samples at one time, each sample is a pixel. So the total number of samples is (number of pixels in a unit of time) x (unit of time). Since the (unit of time) is 1 here, we usually ignore it.<br />
For the "signal-pixel" camera, the number of samples is (number of pixels in a unit of time) x (unit of time). Here (the number of pixels in a unit of time) is 1, whereas the (unit of time) is not 1, which determines the number of samples.<br />
Image sensors are silicon chips that capture and read light. So in traditional imaging system, we need thousands of image sensors, whereas in single pixel camera, we only use one image sensor to capture and read light.<br />
That's the trade-off, number of pixels (image sensors) and unit of time (exposure time).<br />
<br />
Therefore, improved interpretation of Nyquist sampling here is to consider the sampling rate being (number of pixels in a unit of time) x (unit of time), i.e., the product of space sampling and time sampling.<br />
</div>
Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com1tag:blogger.com,1999:blog-3205064064340334725.post-25771648200718156132012-09-27T20:53:00.000-06:002012-09-27T20:53:29.514-06:00How to understand "Nyquist sample v.s. CS"?<div dir="ltr" style="text-align: left;" trbidi="on">
In this blog, I will discuss from a communication system point of view about the Nyquist sample and CS theory. A communication system usually samples and processes a 1D signal. So here we are talk about 1D signal cases.<br />
<br />
<br />
<h3 style="text-align: left;">
What does Nyquist say for 1D signal?</h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijOfFUJ6Dilowe_9MaZflCW-TQN2fBEfzlAAZJUkyM4l9uj60tBG9KvKMSPZOMPHidyryFJWiKzGVr_T9RaV0zAVBGGXDQM16SUjXqU72mz0n-N14mpwWUprrYtbBOfyaLnEzEqSnpIof4/s1600/NyquistSampling.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="96" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijOfFUJ6Dilowe_9MaZflCW-TQN2fBEfzlAAZJUkyM4l9uj60tBG9KvKMSPZOMPHidyryFJWiKzGVr_T9RaV0zAVBGGXDQM16SUjXqU72mz0n-N14mpwWUprrYtbBOfyaLnEzEqSnpIof4/s400/NyquistSampling.jpg" width="400" /></a></div>
<br />
As shown in the figure, for a analog signal, we need to first sample it to digital signal, and then process it, and de-sample/reconstruct it into analogy signal again.<br />
Therefore, the "process" part is called digital signal processing (DSP).<br />
The Nyquist sampling happens in the "sampling" part, before DSP.<br />
Then what does Nyquist say?<br />
That is, given a signal with the highest frequency component being $f_m$. The sufficient condition for return from the digital signal $x[n]$ to $x(t)$ is that the sampling frequency $f_s$ is at least $2f_m$.<br />
It should be noticed that this is only a sufficient, not necessary condition.<br />
In certain cases, the condition is necessary, e.g., the signal is band-limited. If the whole limited band is occupied by the signal, or we don't know which portion of band the signal occupied, in other words, the only information we've got is the highest frequency of the signal,<br />
(we call this kind of signal strict-sense band-limited signal), then the only way is to use Nyquist rate to sample the signal.<br />
However, you may argue that, in practice, the signal may not band-limited, then what should we do?<br />
The answer is making the signal band-limited before we sample it. This can be done using a LPF. And it is another story that how the band-limited signal approximates the real signal. Here we only focused on the already band-limited signal.<br />
On the other hand, you may also ask that, if we have a band-pass signal, (of course, the band-pass signal is a band-limited signal, however, not strict sense band-limited signal), then can we have lower sampling frequency.<br />
The answer is yes. To see the method, just think we move the band-pass signal to the base-band, and then it become a strict-sense band-limited signal. Then it is obvious how Nyquist rate works. Actually, we are given more information, i.e., the signal is band-passed from $f_L$ to $f_H$, thus we are able to sample the signal using frequency below $2f_H$.<br />
In this case, we can call such sampling process under-sampling. However, it can be viewed as Nyquist sampling via some conversion.<br />
<br />
<ul style="text-align: left;">
<li>It should also be noticed that here the sampling is uniform sampling. If you are interested in this topic, you can review some references in non-uniform sampling.</li>
<li>Also, when it comes to 2D signal, it is a little tricky to see the Nyquist sampling. It's beyond this blog.</li>
</ul>
<br />
<br />
<h3 style="text-align: left;">
What does CS say?</h3>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTwQFPm4_Lgc4qQrB4Q_UCcWsMCxJB8lAtkL0C8UxHIPaQJ_Z75zE4mlp27vjx3QyMK39Aiy7ybK4PmFlsaBmt9R2-llCqSwyF4gVyFD-zIgRntfMBNwIl43Rhh57tsBDMA3BaXxuMUT8y/s1600/CommSys.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTwQFPm4_Lgc4qQrB4Q_UCcWsMCxJB8lAtkL0C8UxHIPaQJ_Z75zE4mlp27vjx3QyMK39Aiy7ybK4PmFlsaBmt9R2-llCqSwyF4gVyFD-zIgRntfMBNwIl43Rhh57tsBDMA3BaXxuMUT8y/s400/CommSys.jpg" width="400" /></a></div>
<br />
Before we go into CS, I'd like to a more complete communication system.<br />
As you see in the figure, all "information" after the dash line are in format of bits stream. And if we ignore all imperfection of the system in between, e.g. we have perfect channel, perfect modulation scheme. Then the process after dash line is distortion free.<br />
Then we move before the dash line, as we shown in last section, the sampling and de-sampling process can be distortion free.<br />
Then how about the quantization? It brings distortion, and the precision of the quantizer determines the intensity of the distortion.<br />
However, you can set all these asides to understand CS.<br />
<br />
As shown in the figure, A/D converter actually is responsible for sampling and quantizationg, D/A converter does reverse things.<br />
And source encoder is responsible for compression.<br />
Then consider, if we can sub-sample the signal, then we may not need to compress the signal. Then the only question is how to reconstruct the signal. CS theory just asserts the signal can be recovered faithfully, if the signal is sparse in certain domain, which is highly incoherent with time domain. For instance, the frequency domain is incoherent with time domain.<br />
The CS system can be imaging as following,<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnJXCq4kTYlOhS96TJ1lP1QqOiG54QggKmYIlvEuLWo_OlK1sADztSHiMcRb1iCPnnwZ9TDmKR0FGNXMJ7rKBnV9rAFmyODpNiQjEjaodgbf3SA57nPGHTwuupTWzyCHZ094t89fy96Sqy/s1600/CSSys.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnJXCq4kTYlOhS96TJ1lP1QqOiG54QggKmYIlvEuLWo_OlK1sADztSHiMcRb1iCPnnwZ9TDmKR0FGNXMJ7rKBnV9rAFmyODpNiQjEjaodgbf3SA57nPGHTwuupTWzyCHZ094t89fy96Sqy/s400/CSSys.jpg" width="400" /></a></div>
<br />
$x[n]$ is corresponding to $r[n]$, however, in the real system, we actually do not have $x[n]$. Instead, we have already compressed $p[n]$, which corresponds to $s[n]$.<br />
From $r[n]$ to $r(t)$ is not a problem. Then how to get $r[n]$ from $s[n]$? That's where CS works.<br />
And as you can see, the A/D (D/A) converter becomes A/I (I/A) converter.<br />
The sampling requirement reduced, while the reconstruction is more powerful. This is another kind of asymmetry compared to traditional "source encoding".<br />
<br />
How can CS be more powerful?<br />
Say, what if the signal is sparse in time domain, or in a domain coherent with time domain? Then, according to the CS theory, we should not under-sample in time domain as shown before. We need to under-sample in a domain incoherent with the sparsity domain.<br />
Then how to design it? The most beautiful part of CS is RIP. The RIP says if you design the "compression" part as under-sampling signal in a domain, while the under-sampled part of the domain satisfies RIP, then the signal can be reconstructed faithfully.<br />
To my understanding, (and certainly you can have your own interpretation), a matrix satisfies RIP essentially is a subset of domain, i.e., only a few of basis of the domain, while the domain is incoherent with almost every other domain. That's the "university" of CS theory.<br />
An example is Gaussian matrix, which is almost incoherent with either time domain or frequency domain.<br />
It is a little tricky, but if you take into account the role of "overwhelming probability", it would be easier to understand the inner connection.<br />
I didn't go into the mathematical part of these relationships. But if you look at them as a black box, such interpretation does help.<br />
<br />
Then the problem is how to first transform the signal into $\Phi$ domain, to make the following under-sampling possible.<br />
This is the story of A/I converter. I won't go into this topic. But intuitively speaking, it takes the help of convolution/integrator.<br />
<br />
And again, for 2D signals, like imaging system, even high-dimensional signals, the Nyquist sample and CS can be interpreted in another way. And a most vivid example is the "single-pixel camera".<br />
I will discuss the 2D signal sampling, especially the imaging systems, in future.<br />
<br />
</div>
Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com1tag:blogger.com,1999:blog-3205064064340334725.post-91551241553910168222012-09-26T18:04:00.001-06:002012-09-26T19:53:18.051-06:00Sparse Representation, Compressed Sensing, Single Measurement Vector, Multiple Measurement Vector: connections and differences<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: left;">
<div style="text-align: left;">
</div>
</h3>
<h3 style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: large;">Purpose of this blog entry</span></span></h3>
<span style="font-weight: normal;"><span style="font-family: inherit; font-size: small;">Sparse representation (SR), compressed sensing (CS), single measurement vector (SMV), multiple measurement vector (MMV), I was ever confused about these terms. They seems to be the same, however, the way they using to describe problems differs.In this blog, I aim to make clear the inner relationship among them, and the development of these theories.</span></span><br />
<br />
<h3 style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: large;">The Big Picture</span></span></h3>
<span style="font-weight: normal;"><span style="font-family: inherit; font-size: small;">To my understanding, the following figure describes the relationship of them.</span></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwTbOQPT49iaSNJThQtuIxcnWD28-6kHwH-ZPD9VRnqf4JPhZX8Ia9fE_CjpJcBZr8CrvM9zaiEeGg6yliVQNPSbyLsSQ57c2tGhzGSALCwkQpilKwZ6b8RqMxPdpQFUnwynFoK-fdCvU7/s1600/SR-CS-SMV-MMV.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwTbOQPT49iaSNJThQtuIxcnWD28-6kHwH-ZPD9VRnqf4JPhZX8Ia9fE_CjpJcBZr8CrvM9zaiEeGg6yliVQNPSbyLsSQ57c2tGhzGSALCwkQpilKwZ6b8RqMxPdpQFUnwynFoK-fdCvU7/s320/SR-CS-SMV-MMV.png" width="320" /></a> <span style="font-weight: normal;"><span style="font-family: inherit; font-size: small;"><br />
To see the inherent relationship, I'd rather like to break the CS into two kinds, 1st generation CS (CS1G) and 2nd generation CS (CS2G). The difference will be discussed later. Nevertheless, such notation is not used in current society. So please not be confused when reading papers.<br />
In the paper, CS is referred to CS2G. And SMV is referred to CS1G.<br />
The notion SMV is first mentioned in [10]. (And in [11], one measurement vectors is used to describe the SMV problem).<br />
We will return to the big picture in the end of this blog.<br />
</span></span><br />
<h3 style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: large;">SMV: SR and CS1G</span></span></h3>
<span style="font-family: inherit; font-size: small;">
<span style="font-weight: normal;">The SMV model basically presents such problem: $y = \Phi x$</span></span><br />
<ul style="text-align: left;"><span style="font-family: inherit; font-size: small;">
<li><span style="font-family: inherit;"> <b>sparse representation</b>: $y$ is viewed as a signal in reality, $\Phi$ is called an over-complete dictionary, $x$ is the sparse representation</span></li>
<ul style="font-weight: normal;">
<li><span style="font-family: inherit;"> we want to find a sparse representation of the signal using a dictionary, and we want the signal to be as sparse as possible</span></li>
<li><span style="font-family: inherit;"> $\Phi \in R^{M \times N}$: if M < N, the dictionary is over-complete, if M = N, the dictionary is complete, if M > N, the dictionary is under-complete. The "complete" is viewed from the signal $y$. Simply speaking, if the length of the representation is larger than that of the signal, then the signal is "over-represented", and thus the dictionary is "over-complete".</span></li>
<li><span style="font-family: inherit;"> 2D DCT, DFT, etc., are sparse representation of the signal using a complete dictionary</span></li>
<li><span style="font-family: inherit;"> In this blog, we consider sparse representation of the signal using an over-complete dictionary</span></li>
</ul>
<li><span style="font-family: inherit;"><b>1st generation compressed sensing</b>: $x$ is a sparse signal in itself, i.e., there are only a few non-zero entries in $x$, $\Phi$ is called measurement matrix, $y$ is called measurements</span></li>
<ul>
<li style="font-weight: normal;"><span style="font-family: inherit;">we want to sample a sparse signal using less measurements than its length, in other words, compressing the signal.</span></li>
<li style="font-weight: normal;"><span style="font-family: inherit;">here we only want $\Phi$ to be over-complete in terms of $y$</span></li>
<li style="font-weight: normal;"><span style="font-family: inherit;">note that "$x$ is a sparse signal in itself " is the identity of CS1G. For CS2G, as we will discussed in next section, $x$ is a sparse signal in domain $\Psi$, which is a generation of CS1G</span></li>
</ul>
</span></ul>
<span style="font-family: inherit; font-size: small;">
</span><span style="font-family: inherit; font-size: small;">
<span style="font-weight: normal;">Therefore, SMV is actually a model of SR and CS1G, with each describes different applications.</span><br />
<span style="font-weight: normal;">And we can also view SR as the reconstruction step of CS1G. In other words, in a sampling-reconstruction system, CS1G is the sampling process, and SR is the reconstruction process, by taking the sample as the signal.</span><br />
<span style="font-weight: normal;">If you have this in mind, you then probably can have a better understanding of following references discussed in this section.</span><br />
<span style="font-weight: normal;"><br />
</span> <span style="font-weight: normal;">The problem discussed in [1] is that a signal can be reconstructed if certain requirements were met in both cases:</span><br /><ol style="font-weight: normal; text-align: left;">
<li><span style="font-family: inherit;">a signal is sparse in frequency domain, and under-sampled, in other words, missing samples, in time domain, </span></li>
<li><span style="font-family: inherit;">or a signal is sparse in time domain, and under-sampled in frequency domain</span></li>
</ol>
<span style="font-weight: normal;">They are actually CS1G problems, i.e., sampling a sparse signal in itself, and reconstructing the signal by solving the $\ell_1$ minimization.</span><br />
<span style="font-weight: normal;">For the first case, $x$ is the frequency components of the signal, $\tilde{\Phi}$ is inverse DFT basis, i.e. $IDFT(x) = \tilde{\Phi} x$ and $\Phi = R\tilde{\Phi}$ is the measurement matrix, where $R$ is a selection matrix, selecting $M$ rows of $\tilde{\Phi}$, $y$ is under-sampled time domain signal.</span><br />
<span style="font-weight: normal;">For the second case, $x$ is the time domain signal, $\Phi = R \tilde{\Phi}$ is the measurement matrix, where $\tilde{\Phi}$ is the DFT basis, $y$ is under-sampled frequency domain signal.</span><br />
<span style="font-weight: normal;">Thus, by taking the frequency domain components (first case), and time domain components (second case) as the original signal, respectively, the problem discussed is essentially a CS1G problem.</span><br />
<span style="font-weight: normal;"><br />
</span> <span style="font-weight: normal;">I'd like to also mention the following principle proposed in [1], which, I think, is the basic of following theoretical results.</span><br /><ol style="text-align: left;">
<li><span style="font-family: inherit;"><b>Classical Uncertainty Principle</b>: a function $f$ and its Fourier transform $\hat{f}$ cannot both be highly concentrated. $\Delta t \cdot \Delta w \geq 1$</span></li>
<li><span style="font-family: inherit;">[1] show a <b>more general principle</b> holds: it is not necessary to suppose that $f$ and $\hat{f}$are concentrated on intervals; instead, they can be just concentrated on a measurable set. $|T| |W| \geq 1-\delta$. And it also applies to sequences. $N_t \cdot N_w \geq N$</span></li>
<ol>
<li><span style="font-family: inherit;"><b>CT principle</b>: missing segments of a bandlimited function can be restored stably in the presence of noise if (total measurement of the missing segments) $\cdot$ (total bandwidth) < 1.</span></li>
<li><span style="font-family: inherit;"><b>DT principle</b>: a wideband signal can be reconstructed from narrow-band data, provided the wideband signal to be recovered is sparse or "impulsive"</span></li>
</ol>
</ol>
<span style="font-weight: normal;">Then I have an intuitive understanding on he SMV/SR/CS1G theory: </span><br /><ol style="text-align: left;">
<li><span style="font-family: inherit;">a signal cannot be both sparse in two incoherent basis</span></li>
<li><span style="font-family: inherit;">under-sample the signal in a non-sparse domain, and recover the signal in sparse domain</span></li>
</ol>
</span><span style="font-family: inherit;"><ul style="text-align: left;"><ul>
<li><span style="font-family: inherit;">then from the recovered sparse domain signal, we are able to get the original signal</span></li>
</ul>
</ul>
</span><span style="font-family: inherit;">And this is actually the CS2G theory, which do not require $x$ to be sparse in itself. We leave the discussion in next section.</span><span style="font-family: inherit; font-size: small;"><span style="font-weight: normal;"><br />
</span> <span style="font-weight: normal;">[2]-[5] are a sub-group of researches, related to both CS1G and CS2G theory.</span><br />
<span style="font-weight: normal;">[2] actually discussed the SMV problem from SR's point of view. And it proposed more incoherent basis pairs besides (time, frequency). And these incoherent basis pairs are actually CS2G theory.</span><br />
<span style="font-weight: normal;">[3] improved the constrains related to the replacement of $\ell_0$ minimization with $\ell_1$ minimization in [2].</span><br />
<span style="font-weight: normal;">[4] proved that the condition in [3] is both sufficient and necessary, whereas [3] only proved the sufficiency.</span><br />
<span style="font-weight: normal;">[5] should be an extension of [2]. However, I didn't go into details.</span><br />
<span style="font-weight: normal;"><br />
</span> <span style="font-weight: normal;">[6] is about CS1G, and can be viewed as a direct extension of [1]. The problem discussed in the paper can be phrased as follows:</span><br /><ul style="text-align: left;">
<li><span style="font-family: inherit;">a N-length discrete time signal $f$ is sparse in time domain, i.e., consists of a superposition of |T| spikes. </span></li>
<li><span style="font-family: inherit;">sub-sample the signal in frequency domain, i.e., only sample |$\Omega$| frequency components, instead of N.</span></li>
<li><span style="font-family: inherit;">If |T| $\leq C_M \cdot (\log{N})^{-1} \cdot |\Omega|$, then the reconstruction can be exact with probability at least 1-O($N^{-M^})</span></li>
<li><span style="font-family: inherit;">the reconstruction is via solving $\ell_1$ minimization problem.</span></li>
</ul>
<span style="font-weight: normal;">See, it is almost the same with [1] in this sense.</span><br />
<span style="font-weight: normal;"><br />
</span> <span style="font-weight: normal;">In addition, [6] shows that the min TV problem is actually the problem stated in the paper.</span><br />
<span style="font-weight: normal;"><br /></span></span><br />
<h3 style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: large;">CS2G</span></span></h3>
<span style="font-family: inherit; font-size: small;">
<span style="font-weight: normal;">As I stated before, </span></span><br />
<ol style="text-align: left;"><span style="font-family: inherit; font-size: small;">
<li><span style="font-family: inherit;">a signal cannot be both sparse in two incoherent basis</span></li>
<li><span style="font-family: inherit;">under-sample the signal in a non-sparse domain, and recover the signal in sparse domain</span></li>
</span></ol>
<span style="font-family: inherit; font-size: small;">
<span style="font-weight: normal;">The most classical CS theory is expressing this idea.</span><br />
<span style="font-weight: normal;">$y = \Phi x = \Phi \Psi \theta$.</span><br />
<span style="font-weight: normal;">To better understand the essence, we let ($\tilde{\Phi}, \Psi$) be a pair of incoherence basis, $\Phi = R \tilde{\Phi}^T$.</span><br />
<span style="font-weight: normal;">Then, in $\tilde{\Phi}$ domain, $x$ can be expressed as $\gamma = \tilde{\Phi}^T x$, in $\Psi$ domain, $x$ can be expressed as $\theta = \Psi^T x$.</span><br />
<span style="font-weight: normal;">So $y$ is actually achieved by under-sample the signal in non-sparse domain, i.e., $\tilde{\Phi}$ domain.</span><br />
<span style="font-weight: normal;">In other words, $y = R \gamma$. </span><br />
<span style="font-weight: normal;">And the signal is reconstruct in sparse domain, i.e.,, $\Psi$ domain.</span><br />
<span style="font-weight: normal;">Then the CS1G is actually taking $\Psi$ as identity basis.</span><br />
<span style="font-weight: normal;"><br />
</span> <span style="font-weight: normal;">[7]-[9] are actually the theoretical foundation work on the CS2G theory, together with [2]-[5].</span><br />
<span style="font-weight: normal;">I didn't find the paper [7]. However, it is stated in [8] that [7] extended the result in [6], and showed the exact recovery holds for other synthesis/measurement pairs. And [8] describes these results, making reading [7] not so necessary. The results are shown as follows:</span><br /><ul style="text-align: left;">
<li><span style="font-family: inherit;">an N-length signal $f$ is sparse in domain $\Phi$, i.e., $\theta = \Phi f$ has only a few nonzero entries.</span></li>
<li><span style="font-family: inherit;">sub-sample the signal in domain $\Psi$, i.e., only sample $|\Omega|$ coefficients, instead of N</span></li>
<li><span style="font-family: inherit;">the reconstruction can be exact, via solving an $\ell_1$ minimization problem.</span></li>
<li><span style="font-family: inherit;">the requirement of the exact reconstruction is about the incoherence between $\Phi$ and $\Psi$.</span></li>
</ul>
<span style="font-weight: normal;">[8] extended the work of [6] and [7], showing that the signal compressible, not necessarily strict sparse, in certain domain can also be optimally reconstructed, i.e., the reconstruction error using K measurements is as good as the best K-term approximation, with overwhelming probability.</span><br />
<span style="font-weight: normal;">[9] discussed the linear code corrupted by noise problem. However, the RIP condition is proposed in this paper, although it does not show the clear relationship between the decoding and CS. Besides, the Gaussian ensembles are proved to follow RIP with an overwhelming probability. On the other hand, it should be noticed that, if RIP is satisfied, the reconstruction is exact determinedly, whereas in [6] [7] [8], the reconstruction is with overwhelming probability.</span><br />
<span style="font-weight: normal;"><br />
</span> <span style="font-weight: normal;">Then [13] [14] organized all related theoretical results and formulate the CS problem.</span><br />
<span style="font-weight: normal;">And [12] gives a tutorial for CS theory, which I preferred to recommend for reading.</span><br />
<span style="font-weight: normal;"><br />
</span> </span><br />
<h3 style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: large;">MMV</span></span></h3>
<span style="font-family: inherit; font-size: small;">
<span style="font-weight: normal;">The only thing left is MMV. As is shown in the big picture, MMV is a direct extension of SMV, in a different way with the evolution from SMV to CS.</span><br />
<span style="font-weight: normal;">[11] formulate the MMV problem. Similar to SMV, the MMV can be viewed as either a 2D sparse representation problem, or a 2D CS1G problem.</span><br />
<span style="font-weight: normal;">[10], [15] give theoretical results on MMV, which is derived from those on SMV, i.e., [1]-[6].</span><br />
<span style="font-weight: normal;"><br />
</span> </span><br />
<h3 style="text-align: left;">
<span style="font-family: inherit;"><span style="font-size: large;">Discussions</span></span></h3>
<span style="font-family: inherit; font-size: small;"></span><br />
<ol style="text-align: left;"><span style="font-family: inherit; font-size: small;">
<li><span style="font-family: inherit;">In this blog, I didn't discuss the development from noiseless to noisy case, which is also an interesting and important evolution.</span></li>
<li><span style="font-family: inherit;">In this blog, I didn't focus on the development from sparse signals to compressible signals.</span></li>
<li><span style="font-family: inherit;">In this blog, I only discussed the discrete-time situation. However, CS is actually can be, and should be addressed in analog signals, which is the meaning of "sensing".</span></li>
<li><span style="font-family: inherit;">Since I'm working on CS theory, my knowledge to SR, MMV is limited. Thus, the goal is to discern the CS with SR, SMV, MMV, instead of introducing SR, MMV, which I believe are far more complicated.</span></li>
<li><span style="font-family: inherit;">Return to the big picture, it is interesting to ask, can we extend MMV similar to the extension form SMV to CS? To the best of my knowledge, recent work of Duarte and Baranuik in [16] discussing the high-dimensional CS, where 2D CS is an special case. However, it differs with MMV in the reconstruction method, since it still solving the reconstruction problem in 1D. <b>I would appreciate your help if you can share your opinions and references on this issue.</b></span></li>
<li><span style="font-family: inherit;">At last, I really hope this blog can smooth your perplexity when reading references where you don't know what SR, CS, SMV, MMV refer to. They are on the one hand synonyms and inherently similar, and on the other hand differ slightly from each other in terms of their representations and applications. By the help of this blog, you may have in mind what the reference is discussing when reading, at least, references given in the blog.</span></li>
</span></ol>
<span style="font-family: inherit; font-size: small;">
<span style="font-weight: normal;"><br />
</span> <span style="font-weight: normal;">[1] Uncertainty principles and signal recovery</span><br />
<span style="font-weight: normal;">[2] Uncertainty principles and idea atomic decomposition</span><br />
<span style="font-weight: normal;">[3] A generalized uncertainty principle and sparse representation</span><br />
<span style="font-weight: normal;">[4] On sparse representation in pairs of bases</span><br />
<span style="font-weight: normal;">[5] Optimally sparse representation in general (nonorthogonal) dictionaries via l1 minimization</span><br />
<span style="font-weight: normal;">[6] Robust uncertainty principles: exact signal reconstruction from highly incomplete frequency information</span><br />
<span style="font-weight: normal;">[7] The role of sparsity and incoherence for exactly reconstructing a signal from limited measurements</span><br />
<span style="font-weight: normal;">[8] Near-Optimal signal recovery from random projections: universal encoding strategies ?</span><br />
<span style="font-weight: normal;">[9] Decoding by linear programming</span><br />
<span style="font-weight: normal;">[10] Sparse representation for multiple measurement vectors (MMV) in an over-complete dictionary</span><br />
<span style="font-weight: normal;">[11] Sparse solutions to linear inverse problems with multiple measurement vectors</span><br />
<span style="font-weight: normal;">[12] An introduction to compressive sampling</span><br />
<span style="font-weight: normal;">[13] Compressive sampling</span><br />
<span style="font-weight: normal;">[14] Compressed sensing</span><br />
<span style="font-weight: normal;">[15] Theoretical results on sparse representations of multiple-measurement vectors</span><br />
<span style="font-weight: normal;">[16] Kronecker compressed sensing</span></span>
</div>
Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com1tag:blogger.com,1999:blog-3205064064340334725.post-23331862338394367052012-08-13T21:45:00.001-06:002012-08-13T21:45:05.909-06:00Use IEEE Xplore to do a field study<div dir="ltr" style="text-align: left;" trbidi="on">
Want to apply for a graduate program?<br />
Want to know who are productive researchers in this area?<br />
Here are some tips to help you do field study, by the help of <a href="http://ieeexplore.ieee.org/">IEEE Xplore</a>.<br />
<br />
<b>1. Use advanced search</b><br />
Input key words of this area, e.g. compressed sensing.<br />
I suggest you use "OR" to add new filter words.<br />
Click search.<br />
<b>2. See filters on the left side</b><br />
Select "Publication Year" with certain range, e.g. 2007 - 2012<br />
Click search again.<br />
<br />
Then you will see a list of authors on the left side bar.<br />
They are ordered by number of publications.<br />
You would definitely know those productive researchers in your area.<br />
<br />
Go to <a href="http://ieeexplore.ieee.org/">IEEE Xplore</a> now and check it out~<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-38975089183644663682012-08-10T20:53:00.000-06:002012-08-12T01:56:20.782-06:00Basic Understanding of Compressed Sensing<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
<span style="font-size: large;"><b>Purpose of this blog entry</b></span></div>
<div style="text-align: left;">
During my research on CS, one problem is that I have read several papers related on CS, but different paper have different notations and explanations for CS. Besides, they also propose some new stuff in the paper. So it takes me time to get to know the inner connections among these gorgeous references. As a result, I'd like to give a summary, according to my understanding, for the very basics of CS. Hope it will help you in your research.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b><span style="font-size: large;">What can CS do?</span></b></div>
<div style="text-align: left;">
Well, intuitively speaking, CS is a way to sample and compress signals. You can use CS as a method to transmit or store a signal. One most immediate benefit of CS is that it samples and compresses signals at one time, thus reduces the complexity of encoder.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="font-size: large;"><b>Why we need CS?</b></span></div>
<div style="text-align: left;">
In following scenarios, we may turn to CS.</div>
<div style="text-align: left;">
1) require simple encoder</div>
<div style="text-align: left;">
2) require less bandwidth</div>
<div style="text-align: left;">
3) sample high frequency component of signals, which cannot be sampled using traditional ways, e.g. MRI.</div>
<div style="text-align: left;">
<i>(Due to the limited knowledge of me, there are lots of scenarios omitted. If you have any suggestions, please be kindly inform me.)</i></div>
<div style="text-align: left;">
Of course, if you want, you can use CS in whatever scenario that requires sample/store/transmit a signal. And the CS theory provides ways to reconstruct the sampled signals.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="font-size: large;"><b>Signals</b></span></div>
<div style="text-align: left;">
Please be advised that, some definitions used in this blog entry may differ from that in some papers. I use my definitions here because according to my understanding, it's better and easier for you to understand the connections between papers.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Let a signal $\mathbf{x} \in \mathbb{R}^N$ has its projection on an orthonormal basis $\mathbf{\Psi} \in \mathbb{R}^{N \times N}$ be $\mathbf{\theta} \in \mathbb{R}^N$, i.e., $\mathbf{\theta} = \mathbf{\Psi}^T \mathbf{x}$.</div>
<ul style="text-align: left;">
<li>$S$-sparse signal: $\mathbf{x}$ is called $S$-sparse in $\mathbf{\Psi}$ or has sparsity $S$ in $\mathbf{\Psi}$ if $\mathbf{\theta}$ has only $S$ nonzero entries.</li>
<li>$C$-compressible signal: $\mathbf{x}$ is called $C$-compressible in $\mathbf{\Psi}$ or has compressibility $C$ in $\mathbf{\Psi}$ if $\mathbf{\theta}$ obeys a power law decay with an exponent of $-C-1/2$.</li>
<li>power law decay: $\mathbf{\theta}$ obeys a power law decay if $|\theta|_{(i)} \leq R \cdot i^{-1/p}$, where $R > 0$ is a constant, $0 < p < \infty$, and $|\theta|_{(i)}$ is the $i$th largest magnitude entry, i.e., $|\theta|_{(1)} \geq
|\theta|_{(2)} \geq \cdots \geq
|\theta|_{(N)}$.</li>
</ul>
<div>
Then $C = 1/p - 1/2$ for compressible signals.</div>
Mostly, $C$-compressible signals consider only the case $0 < p < 1$, i.e., $C > 1/2$.<br />
It should be noticed that $\mathbf{\theta}$ is also an $S$-sparse or $C$-compressible in $\mathbf{\Psi} = \mathbf{I}$, where $\mathbf{I}$ is an identity basis. Thus, to be precise, <b>we need to consider/indicate in which basis the signal has what sparsity or compressibility</b>. For example, a signal may have sparsity 10 in Fourier basis, but may have sparsity 20 in DCT basis. Some papers would not indicate the sparsity<br />
<ul style="text-align: left;">
</ul>
<div style="text-align: left;">
<span style="font-size: large;"><b>Best $J$-term approximation</b></span><br />
To approximate a signal $\mathbf{\theta}$, we can use the largest $J$ terms (in magnitude) in it, i.e., $\mathbf{\theta}_J$. Therefore,<br />
<div style="text-align: left;">
</div>
<ol style="text-align: left;">
<li>if $\mathbf{\theta}$ is $S$-sparse in $\mathbf{I}$, then the best $J$-term approximation would have an approximation error equal to 0 if $J \geq S$, i.e., $\mathbf{\theta}_J = \mathbf{\theta}$.</li>
<li>if $\mathbf{\theta}$ is $C$-compressible in $\mathbf{I}$, then the best $S$-term approximation would have an approximation error equal $||\mathbf{\theta} - \mathbf{\theta}_J||_1 \leq G_C \cdot R \cdot J^{-C+1/2}$ and $||\mathbf{\theta} - \mathbf{\theta}_J||_2 \leq G_C \cdot R \cdot J^{-C}$, where $G_C$ is a constant only depend on $C$.</li>
</ol>
Meanwhile, we should indicate which basis does the best $J$-term approximation consider, e.g., $\mathbf{\theta}_J$ is the best $J$-term approximation in $\mathbf{I}$.<br />
<div style="text-align: left;">
Then, we also say a best $J$-term approximation of $\mathbf{x}$ in $\mathbf{\Psi}$ is $\mathbf{x}_J$, i.e., $\mathbf{\theta}_J = \mathbf{\Psi}^T \mathbf{x}_J$ is the best $J$-term approximation of $\mathbf{\theta = \Psi}^T \mathbf{x}$ in $\mathbf{I}$. Similarly, we need to consider two attributes when saying a best $J$-term approximation: 1)$J$ and 2)$\mathbf{\Psi}$.</div>
</div>
<div style="text-align: left;">
Another thing should be noticed is that since $\mathbf{\Psi}$ is an orthonormal basis, $||\mathbf{x} - \mathbf{x}_J||_2 = ||\mathbf{\theta} - \mathbf{\theta}_J||_2 \leq G_C \cdot R \cdot J^{-C}$, i.e., the MSE has a power law decay. With $J$ increasing, the MSE would decrease.<br />
<br />
<span style="font-size: large;"><b>How CS works?</b></span><br />
Generally speaking, CS samples a signal $\mathbf{x}$ using $\mathbf{y = \Phi x = \Phi \Psi \theta = A \theta}$.<br />
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li>$\mathbf{A} \in \mathbb{R}^{K \times N}$: sensing matrix, $\mathbf{A = \Phi \Psi}$.</li>
<li>$\mathbf{\Phi} \in \mathbb{R}^{K \times N}$: measurement matrix</li>
</ul>
<i>(I was ever confused the sensing matrix with measurement matrix...)</i><br />
<div style="text-align: left;">
In this way, the signal is compressed in $\mathbf{y} \in \mathbb{R}^K$.</div>
<div style="text-align: left;">
Reconstructing the signal from $\mathbf{y}$ can be achieved by solving a convex optimization problem, i.e., $\min ||\mathbf{\theta}||_1$ s.t. $\mathbf{y = \Phi \theta}$ by knowing $\mathbf{y}$ and $\mathbf{\Phi}$, and then using $\mathbf{x = \Psi\theta}$ to get $\mathbf{x}$ back. In other words, you can solve $\min ||\mathbf{x}||_1$ s.t. $\mathbf{y = A x}$ by knowing $\mathbf{y}$ and $\mathbf{A}$. They are equivalent.</div>
<br />
The foundation of CS theory is to prove that in this sample-reconstruct process, the information in $\mathbf{x}$ can be preserved, and thus $\mathbf{x}$ can be well reconstructed.<br />
<br />
In the following demonstration, I will not show you how the theory evolves, rather than how to prove the result. If you like, you can refer to papers I cite to see the details. And a tip for your reading is that please notice what the choice of $\mathbf{A, \Phi, \Psi}$ in CS.<br />
<br />
At the very beginning, the idea of CS is presented in [1]. In that paper, it proved that for an $S$-sparse signal in Fourier basis, using CS, the reconstruction would be exact with an overwhelming probability at least $1 - O(N^{-\alpha})$ provided that $K \geq G_\alpha S \log{N}$, where $G_\alpha > 0$ is a constant only depend on the accuracy parameter $\alpha$. That is to say, for a given desired probability of success, a <b>sufficient condition</b> for exactly reconstruction is $K \geq G_\alpha S \log{N}$. It should be noticed that in some paper, it also gives a necessary condition with a similar result, please do not mix them up.<br />
<br />
The choice of $\mathbf{\Psi}$ is Fourier basis. The choice of $\mathbf{A}$ is a random selecting matrix, i.e., randomly selecting $K$ elements from $\mathbf{\theta}$, e.g. $\mathbf{A}$ = [0 1 0 0 0; 0 0 1 0 0] which extracts the second and third elements of $\mathbf{\theta}$. Thus $\mathbf{\Phi} = \mathbf{A \Psi}^T$ can be generated accordingly.<br />
<br />
It can be seen that if a signal is $S$-sparse in another basis $\mathbf{\Psi}$, CS can still reconstruct it using this way to generate $\mathbf{A}$ and $\mathbf{\Phi}$ by knowing $\mathbf{\Psi}$.<br />
<br />
Furthermore, in [4],they extended these results and showed that exact reconstruction hold for other $(\mathbf{\Phi, \Psi})$ pairs.<br />
<br />
Then in [2], it began to consider a $C$-compressible signal. It showed that using CS, the reconstruction is optimal with an overwhelming probability at least $1 - O(N^{-\rho / \alpha})$. By optimal, it means that it is generally impossible to obtain a higher accuracy from any set of $K$ measurements whatsover. The reconstruction error obeys $||\hat{\mathbf{x}} - \mathbf{x}||_2 = ||\hat{\mathbf{\theta}} - \mathbf{\theta}||_2 \leq G_{C, \alpha} \cdot R \cdot (K / \log{N})^{-C}$, where $\hat{\mathbf{x}}$ and $\hat{\mathbf{\theta}}$ is the reconstructed signals, $G_{C, \alpha}$ is a constant depending on $C$ and $\alpha$. This indeed says that if one make $K = O(J\log{N})$ measurements using CS, one still obtains a reconstruction error equally as good as using best $J$-term approximation. In other words, the following two cases have similar reconstruction error: 1) knowing everything about $\mathbf{\theta}$ and selecting $J$ largest entries of it, 2) reconstructing $\mathbf{\theta}$ using $K = O(J\log{N})$ measurements without any prior knowledge on it.<br />
<br />
In [2], the choice of $\mathbf{\Psi}$ is can be any orthonormal basis and it provided three ways to generate $\mathbf{A}$: 1) Gaussian ensembles; 2) Binary ensembles; 3) Fourier ensembles.<br />
<br />
Before goes go, I'd like to introduce the so-called restricted isometry property (RIP). For each integer $k = 1, 2, \dots$, define the $k$-restricted isometry constant $\delta_k$ of a matrix $\mathbf{A}$ as the <b>smallest </b>number such that $(1-\delta_k)||\mathbf{\theta}||_2^2 \leq ||\mathbf{A \theta}||_2^2 \leq (1 + \delta_k) ||\mathbf{\theta}||_2^2$ holds for all $S$-sparse signal vector $\mathbf{\theta}$ in $I$ with $S \leq k$. Therefore, $\mathbf{A}$ should have more than one restricted isometry constant since we can choose any $k$. Usually, we say a matrix $\mathbf{A}$ obeys RIP of order $S$ if $\delta_S$ is not too close to 1.<br />
<br />
Then a stronger result is introduced in [5] and [6] (and stated in [3]), which says that, if the $k$-restricted isometry constant $\delta_k$ of $\mathbf{A}$ satisfies certain constraints (with different $k$), e.g. $\delta_{2S} \leq \sqrt{2} - 1$ (several other constraints are stated in [5] and [6]), then the reconstructed signal $\hat{\mathbf{\theta}}$ obeys $||\hat{\mathbf{\theta}} - \mathbf{\theta}||_2 \leq G_0 \cdot ||\mathbf{\theta} - \mathbf{\theta}_S||_1 / \sqrt{S}$ and $||\hat{\mathbf{\theta}} - \mathbf{\theta}||_1 \leq G_0 \cdot ||\mathbf{\theta} - \mathbf{\theta}_S||_1$ for some constant $G_0$, where $\mathbf{\theta}_S$ is the best $S$-term approximation of $\mathbf{\theta}$ in $\mathbf{I}$. This is deterministic, without any probability of success.<br />
<br />
To go a step further, you will see that the result is in consistent with previous results. If you replace $||\mathbf{\theta} - \mathbf{\theta}_S||_1$ using the result in "Best $J$-term approximation", you will see the magic.<br />
<br />
Then the question comes, how to generate a sensing matrix $\mathbf{A}$ satisfies the requirement of RIP?<br />
<br />
<span style="font-size: large;"><b>How to generate sensing matrix $\mathbf{A}$?</b></span><br />
There are lots of ways to generate a sensing matrix $\mathbf{A}$. I'd rather let you refer section "RANDOM SENSING" in [3] for a review. Here I just want to talk about two most common ways: 1) from $\mathbf{A}$ by sampling $N$ column vectors uniformly at random on the unit sphere of $\mathbb{R}^K$; 2) from $\mathbf{A}$ by sampling i.i.d. entries from the normal distribution with mean 0 and variance 1/K. With an overwhelming probability, these matrices obey the RIP constraints (e.g. $\delta_{2S} \leq \sqrt{2} - 1$) provided that $K \geq G \cdot S \log{(N/S)}$, where $G$ is some constant depending on each instance.<br />
<br />
Another interesting property is that the RIP constraints can also hold for sensing matrix $\mathbf{A = \Phi \Psi}$ where $\mathbf{\Psi}$ is arbitrary orthonormal basis and $\mathbf{\Phi}$ is an $K \times N$ measurement matrix drawn randomly from a suitable distribution, e.g., with an overwhelming probability, provided that $K \geq G \cdot S \log{(N/S)}$, $\mathbf{A}$ obeys the RIP constraints. This makes CS sampling easier, because we only need to generate a measurement matrix $\mathbf{\Phi}$ without knowing $\mathbf{\Psi}$ at the encoder side.<br />
<b><span style="font-size: large;"><br /></span></b>
<b><span style="font-size: large;">A reading tree/graph for basic understanding of CS theory</span></b></div>
<div style="text-align: left;">
If you read papers from the top layer to bottom layer, you should have deeper and deeper understanding about CS theory.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUC97XfvYfonCd2-y2BgAYuWtG8pBPMVDGGc83uta90Wq1fQAoBlswaPcOKK77M50a40akLKy0wWhpXPqaVkC0JERYvdd3Q11tzIfCz9LtRfJ4ud4vXSj9qwqsFsCexfwJuTNAmESyepVA/s1600/CS+Basics.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="441" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUC97XfvYfonCd2-y2BgAYuWtG8pBPMVDGGc83uta90Wq1fQAoBlswaPcOKK77M50a40akLKy0wWhpXPqaVkC0JERYvdd3Q11tzIfCz9LtRfJ4ud4vXSj9qwqsFsCexfwJuTNAmESyepVA/s640/CS+Basics.jpg" width="640" /></a></div>
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b> </b></span><br />
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: large;"><b>References</b></span></div>
<div style="text-align: left;">
[1] Robust Uncertainty Principles: Exact Signal Reconstruction From Highly Incomplete Frequency Information</div>
<div style="text-align: left;">
[2] Near-Optimal Signal Recovery From Random Projections: Universal Encoding Strategies?</div>
<div style="text-align: left;">
[3] An Introduction To Compressive Sensing</div>
<div style="text-align: left;">
[4] The Role of Sparsity and Incoherence for Exactly Reconstructing a Signal from Limited Measurement<br />
[5] Stable signal recovery from incomplete and inaccurate measurements<br />
[6] Compressed sensing and best k-term approximation</div>
<div style="text-align: left;">
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com1tag:blogger.com,1999:blog-3205064064340334725.post-21622314129385920942012-07-25T21:17:00.001-06:002012-08-10T14:36:16.252-06:00IEEE Transaction Starter: How to Start Writing a IEEE transaction paperHere I want to show tasks that helps you get to know how to write a paper for IEEE transactions.<br />
<br />
1. Visit "IEEE Author Digital Tool Box"<br />
<a href="http://www.ieee.org/publications_standards/publications/authors/authors_journals.html">http://www.ieee.org/publications_standards/publications/authors/authors_journals.html</a><br />
and Read "Instructions" for different Templates.<br />
You may need only read the instruction for the template you will use. Here we focus on the "Instruction Only" in the "Template fors Transactions" part.<br />
<a href="http://www.ieee.org/documents/TRANS-JOUR.pdf" style="background-color: white;">http://www.ieee.org/documents/TRANS-JOUR.pdf</a><br />
* In this step, you will have a basic knowledge on the rules of writing a paper in IEEE society, especially for transactions and journal.<br />
2.1 For MS Word users,<br />
2.1.1 please download "Template and Instructions on How to Create Your Paper".<br />
<span style="background-color: white;"><a href="http://www.ieee.org/documents/TRANS-JOUR.doc">http://www.ieee.org/documents/TRANS-JOUR.doc</a></span><br />
2.1.2 Please follows the instruction in the document to create your paper.<br />
2.2 For Latex users,<br />
2.2.1 You need to download "Transaction Style File", either "Unix LaTeX2e Transactions Style File", <a href="http://www.ieee.org/documents/IEEEtran.tar.gz">h<span style="background-color: white;">ttp://www.ieee.org/documents/IEEEtran.tar.gz</span></a><br />
or "WIN OR MAC <span style="background-color: white;">LaTeX2e Transactions Style File"</span><span style="background-color: white;">.</span><br />
<a href="http://www.ieee.org/documents/IEEEtran.zip">http://www.ieee.org/documents/IEEEtran.zip</a><br />
* The Bibiliography file is included in the file (under the directory of "bibtex").<br />
2.2.2 Read the "IEEEtran_HOWTO.pdf" to know how to use the style file.<br />
2.2.3 Read the "IEEEtran_bst_HOWTO.pdf" under "bibtex" directory to know how to manage bibliography.<br />
<br />
After finish these simple tasks, you should have a basic knowledge on the technical issues for your paper.Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-31242544940682240292012-06-18T15:23:00.002-06:002012-07-17T23:27:14.985-06:00推荐一个GTD软件: doit.im以前博主一直用mGSD(<a href="http://mgsd.tiddlyspot.com/#mGSD">http://mgsd.tiddlyspot.com/#mGSD</a>)来作GTD管理 mGSD是一个基于tiddlywiki的应用 基本GTD的功能都实现了 并且有着tiddlywiki的特点:单HTML文件<br />
所以方便跨平台 也方便到处携带<br />
<br />
对于有多台常用电脑的 我一般使用GitHub或者Windows Live Mesh进行同步管理<br />
<br />
但是它有一个比较致命的弱点 也是tiddlywiki一直存在的问题 对于移动设备的支持 没有再ipad android phone上的app支持<br />
<br />
所以博主最近发现一个免费的app: doit.im (<a href="http://doit.im/">http://doit.im/</a>)<br />
它可以在android和apple的移动设备上使用 也可以通过web使用<br />
并且在GTD的功能方面 除了正常的功能外 还有<br />
1. 收集箱功能 用于存储暂时无法归类的项目<br />
2. 闹钟提醒功能 并可以设置多个提醒时间<br />
3. 优先级功能<br />
4. 过滤器<br />
5. 与google calendar同步 这个功能对于博主这种google用户太有用了<br />
<br />
但是还是有一些小缺点的 比如没有review机制等 但是根据官方的说法 9月份左右应该就会更新了<br />
<br />
另外,对于windows桌面版,官方说法是还在开发,以前的版本仍能在<a href="http://support.doit.im/entries/21392588-doit-im-for-windows0-9-1">http://support.doit.im/entries/21392588-doit-im-for-windows0-9-1</a> 下载到,也能使用,据说有BUG。<br />
<br />
再最后说一下,这个是国产的软件,而且个人觉得做的比较好的。听说最近也获得了投资,所以博主表示强烈支持。最近推出Pro收费,如果做得好的话,也会尝试使用的。<br />
<br />Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-11938782045889271732012-03-28T22:51:00.001-06:002012-03-28T22:51:14.631-06:00Windows 7无法休眠?昨天突然发现windows 7没法休眠了<br />
症状是:<br />
点休眠后屏幕会黑一下 然后就进入到了Login的画面了-。-<br />
<br />
在网上搜了半天:“windows 7无法休眠”之类的<br />
基本上都在说什么:更新驱动哇,设置power configuration之类的。。<br />
都没用。。。<br />
<br />
正在郁闷 于是用英文搜了一下 windows 7 cannot hibernate<br />
(休眠是Hibernate 睡眠是sleep 哈哈~)<br />
终于眼睛一亮看到一个[Solved]<strong style="background-color: white; font-family: Verdana, Arial, Tahoma; font-size: 12px;">GRUB + Windows 7 = Can't put windows to sleep/hibernate</strong><br />
<span style="font-family: inherit;">特别是这个solved哇 真是救命稻草哇</span><br />
链接如下:<a href="http://ubuntuforums.org/showthread.php?t=1341694">http://ubuntuforums.org/showthread.php?t=1341694</a>
<br />
<br />
然后基本按照里面的步骤 就OK了<br />
<br />
如果你的电脑也装了ubuntu之类的 应该就是这个问题没跑儿了<br />
如果你只有windows... 那就另寻他法吧-。-<br />
<br />
这里我把英文大概翻译一下~<br />
<br />
症状:<br />
在装了Windows 7之后装Ubuntu双系统的机子(这个双系统的顺序也是有讲究了。。主要是看你是不是用GRUB引导系统),这个你就把GRUB装在了MBR上,这个就会导致Windows没法进入sleep or hibernate模式(这个屏幕会黑一下,然后直接回来)。用WIN7的DVD恢复这个MBR到原来的状态呢是可以解决的,但是会让你的GRUB又没法工作了...<br />
<br />
实际问题:<br />
要让sleep/hibernate工作,第一个windows的分区必须是标记为boot,即使里面装了GRUB。<br />
<br />
解决方案:<br />
在Ubuntu下, 使用gparted(如果没装的话 sudo apt-get install gparted。使用就是sudo gparted)。在你的boot driver(通常是/dev/sda),确保第一个windows分区是标为boot的。然后重启就OK了<br />
<br />
P.S. 这个帖子的回复也值得一看~<br />
<br />
一般用Thinkpad的同学常常会遇到这个问题,因为Thinkpad有个默认的分区SYSTEM_DRV在C盘之前。一般它是作为boot分区的。所以我们只要把Windows系统分区作为boot就好了。<br />
<br />
这个故事告诉我们,掌握英文搜索能力很重要...Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com3tag:blogger.com,1999:blog-3205064064340334725.post-84678129432539942082012-03-26T00:24:00.001-06:002012-03-26T00:30:24.853-06:00jQuery中设置click事件的参数<span style="font-family: Arial, Helvetica, sans-serif;">(部分转自百度知道)</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">【问题】<br />原来html中onclick出发js方法可以传递参数<br /><span style="background-color: white;"><a href="#" onClick="showFile('view');">aaaaa</a></span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;"><script>function showFile(fun){}</script></span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;">但是 现在用jquery的click事件怎么传递这个参数?</span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;"><a href="#" id="fun">aaaaa</a></span><span style="background-color: white;">$("#fun").click(function () { </span><span style="background-color: white;">});</span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;"><br /></span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">【</span><span style="background-color: white; font-family: Arial, Helvetica, sans-serif;">解答】</span><br />
<span style="background-color: white; font-family: Arial, Helvetica, sans-serif;">1. jQuery的click事件不能直接传递参数,</span><br />
<span style="background-color: white; font-family: Arial, Helvetica, sans-serif;">如果使用 </span><span style="background-color: white; font-family: Arial, Helvetica, sans-serif;">$('#fun').click(choose("val"));</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">
会导致在运行这个语句时直接运行choose函数。</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">应该使用 $('#fun')<span style="background-color: white;">.click(choose);</span><br />function choose() {<br />//...<br />}<br /><span style="background-color: white;"><br /></span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;">2.</span><span style="background-color: white;"> </span>可以把</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">$('#fun').click(function () {<br />
});<br /> 看作一个function声明,<br /> 就相当于onclick的事件声明;</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />$('#fun').click(function () {<br /> function()(调用的方法)<br />});<br /><br /> </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">3. 可以使用标签内的attr来获得关于此标签的参数<br /><a id="fun" testvalue='abc' href="#" onClick="showFile('view');">aaaaa</a><br /> $('#fun').click(function () {</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">alert($(this).attr('testvalue'));</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">alert($(this).text());</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">alert($(this).attr('href'));<br /> //......<br />}); </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<br />
<pre class="reply-text mb10" id="best-answer-content" style="background-color: #fffcf6; font-family: Arial; font-size: 14px; line-height: 22px; margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; white-space: pre-wrap; word-wrap: break-word; zoom: 1;"></pre>Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-7060973724237864932012-03-26T00:16:00.001-06:002012-03-26T00:33:21.750-06:00jQuery获取input标签的值<span style="font-family: Arial, Helvetica, sans-serif;">一般来说,用js获取input标签内的值会用</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><input id="p_folder"></input></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">var p = document.getElementById("p_folder");</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">var pV = p.value;</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">但是jQuery中,如果写成</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">var p = $('p_folder');</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">var pV = p.value;</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">将无法获取到标签内的值,</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">这是因为</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">$("")是一个jQuery对象,而不是一个DOM element</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">value是DOM element的属性,对应jQuery的val</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">val():获得第一个匹配元素的当前值</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">val("val"):设置每一个匹配元素的值为val</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">所以上面的code应该写成</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">var p = $('p_folder');</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">var pV = p.val();</span><br />
<br />Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-69250562800473512242012-03-02T15:15:00.001-07:002012-08-10T20:58:32.019-06:00Summary of Compressed Video Sensing[1] proposed to use cs on stream video by sample several frame together or independently.... But it didn't consider the interframe redundancy.<br />
<br />
[2] was focus on increasing the resolution of digital video, thus little work was done for video coding/compression.<br />
<br />
[3] [4] proposed compressed video sensing in 2008.<br />
[3] used a hybrid way to compress video. The main contribution I think was only the scheme it proposed: transmit both conventionally encoding(low resolution) and cs encoding(high resolution) video stream, recon. on demand (if coarse-scale -> conventionally decoding, if fine-scale, cs decoding).<br />
Compared to [3], I think [4] is much important for CVS. The way it employed is classifying the blocks of a frame to dense and sparse via a cs testing. Dense blocks use conventional encoding, while sparse blocks use cs. The cs testing for a block of frame is another contribution should be noticed.<br />
<br />
In 2009, most work were focus on distributed CVS based on the notion of Distributed Video Coding(DVC). [5] use reconstructed key frame to find sparse basis for cs frame, and it proposed L1, SKIP, SINGLE modes for cs frames. The codec is quite similar with pixel-domain dvc. [6] also use reconstructed key frame to generate side information. But its side information is not the sparse basis, but a prediction. Furthermore, [6] use both frame-based and block-based encoding for cs frames. It is quite novel. But I think although it improves the performance, but a little redundant. Different with [5][6], [7] use cs for both key frame and non-key frame. And it proposed the modified GPSR for DCVS. Furthermore, there are relatively complete review of techniques like cs, dvc, dcs, etc., which I think is quite useful for beginners in this area.<br />
<br />
[8] proposed a very interesting multiscale framework. It employs LIMAT[11] framework to exploit motion information and remove temporal redundancies. And it use iterative multiscale framework: reconstructing successively finer resolution approximation to each frame using motion vectors estimated at coarser scales, and alternatively using these approximation to estimate the motion. The multiscale framework essentially exploit the feature of wavelet transformation (coarse scale and fine scale).<br />
<br />
[10] is published in 2011. It designs the cross-layer system for video transmission using compressed sensing.<br />
The cross-layer system jointly controls video encoding rate, transmission rate, channel coding rate. It is useful for researchers who focus on network design of a compressive sensing application.<br />
<br />
[9] is not about CVS, but I think it's very important to know current video compression techniques. It introduced the video compression techniques like H.26x, MPEG, etc. It's a very good introduction and review work.<br />
<br />
Another thing should be mentioned is that, Distributed Compressed Video Coding in [5] [6] both used the notion: the sparsest representation of a frame is a combination of neighbor blocks of a block.<br />
<br />
[1] Compressive imaging for video representation and coding<br />
[2] Compressive coded aperture video reconstruction<br />
[3] Compressed video sensing<br />
[4] Compressive Video Sampling<br />
[5] Distributed video coding using compressive sampling<br />
[6] Distributed compressed video sensing<br />
[7] Distributed compressive video sensing<br />
[8] A multiscale framework for compressive sensing of video<br />
[9] Video Compression Techniques: An Overview<br />
[10] Compressed-Sensing-Enabled Video Streaming for Wireless Multimedia Sensor Networks<br />
[11] Lifting-based invertible motion adaptive transform framework for highly scalable video compressionAnonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-91537045306184497152012-03-02T14:50:00.002-07:002012-08-10T20:58:16.763-06:00Review of the size of Measurement Matrix in Compressed Sensing* This article is only a review for my personal use. There may have some mistakes. Please do not trust in this article.<br />
* If you noticed any mistakes in this article, please notify me. Thanks a lot.<br />
<br />
In the following description, M is the number of measurements needed, N is the length of signal, K is sparsity, Φ is measurement matrix, Ψ is sparse basis. C is a constant.<br />
$Y = AX = \Phi\Psi X$<br />
<br />
The requirement for $M$<br />
[1] Sparsity and Incoherence in compressive sampling<br />
$M \geq C \cdot \mu^2(\Phi, \Psi) \cdot K {\text log}N$<br />
<br />
[2] An introduction to Compressive Sampling<br />
Form A obeying RIP i)-iv)<br />
$M = O(K {\text log}(N/K))$<br />
$M \geq C \cdot K {\text log}(N/K)$<br />
i)-iii) see<br />
[3] A simple proof of the restricted isometry property for random matrices<br />
iv) see<br />
[4] Uniform uncertainty principles for Bernoulli and sub-gaussian ensembles<br />
<br />
Form A by first finding paris of incoherent orthobases $\Phi, \Psi$, and then exracting $M$ coordinates uniformly at random using R: $A = R\Phi\Psi$.<br />
$M \geq C \cdot ({\text log}N)^4$<br />
$M \geq C \cdot ({\text log}N)^5$ for a lower probability of failure<br />
see [6] and [7] On sparse reconstruction from Fourier and Gaussian measurements<br />
<br />
[6] Near-optimal signal recovery from random projections and universal encoding strategies<br />
[8] Compressed Sensing, D.L.Donoho<br />
[9]<span style="font-family: inherit;"> <span style="background-color: white; line-height: 20px;">Robust uncertainty principles: exact signal reconstruction from highly incomplete frequency information</span></span><br />
<span style="font-family: inherit;"><span style="background-color: white; line-height: 20px;">[10] Neighborliness of randomly projected simplices in high dimensions</span></span><br />
<span style="font-family: inherit;"><span style="background-color: white; line-height: 20px;">[11] High-dimensional centrally symmetreic polytopes with neighborliness proportional to dimension</span></span><br />
$M = O(K {\text log}(N))$<br />
$M \geq C \cdot K \cdot {\text log}N$<br />
<br />
[12] Compressive Sensing, R.G.Baranuik
<br />
$M \geq C \cdot K {\text log}(N/K)$<br />
it cited the result from [8] and [9]. Are they the same?<br />
<br />
To summary, there are 4 expressions:<br />
1)<br />
$M = O(K {\text log}(N))$<br />
$M \geq C \cdot K \cdot {\text log}N$<br />
2)<br />
$M \geq C \cdot K {\text log}(N/K)$
<br />
3)<br />
$M \geq C \cdot ({\text log}N)^4$<br />
$M \geq C \cdot ({\text log}N)^5$<br />
4)<br />
$M \geq C \cdot \mu^2(\Phi, \Psi) \cdot K {\text log}N$
<br />
<br />
1) and 2) are quite similar with each other; 1) is noisy situation and 2) is noiseless.<br />
4) is quite similar with 1), except the parameter $\mu^2(\Phi, \Psi)$, which is a measure for the incoherence between the two matrix.Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-71383151928523156622012-03-01T13:00:00.002-07:002012-03-01T13:00:47.730-07:00Some Ideas记录下最近的idea<br />
最主要的project还是paper wiki 希望能在放假前搭好这个平台<br />
<br />
又想做一个类似吾志 但是只是记录/share dream的网站 创意来源于xxxHolic的梦买 这个可能需要更多的考虑 比如是否应该做成一个网站还是只是一个现有SNS的app 如果是APP 怕破坏的这个idea的pure goal 但是做成一个website 又觉得没有特别大的市场 需要数据库支持etc..<br />
但是似乎做起来不难 只是要去找现成的框架<br />
<br />
还想做一个创意分享网站 关注于生活中想到的小创意 寻找有类似创意的人一起开发app之类的 或者像服务商提供需求建议 etc.<br />
还是觉得这种类型的网站 美工很重要的样子<br />
<br />
还想做一个类似WikiCFP的网站 主要用于发布/收集各类竞赛信息 方便高校学生查询/参与 帮助企业推广竞赛 这也是因为发现很多competition都在想方设法提高自己的知名度 这个似乎做起来也不难 几乎可以完全copy WikiCFP 不过后期做好也需要美工方面的UI设计<br />
<br />
还有一些实现有些困难的东西了 呵呵<br />
比如,做一个做饭/洗碗机器人 可以输入菜谱程序 然后就可以做饭了~。~ 还可以定时做饭 远程控制做饭...<br />
* 这个还可以开发app平台 做一个app推荐菜谱 or 根据家里的菜规划要做的菜(对于一次买N天菜的人) 提醒菜过期...<br />
还有就是智能白板(笔) 可以在玻璃板/白板上演算/演示/记录... 然后用笔选取区域 即可传送到终端(电脑 打印机....)<br />
<br />
可是都不是我的专业 也不能用来作为现在的Research 只能业余的时间做做了<br />
要是不用学习不用工作就可以生活 估计就可以专心做这个了<br />
大概只能继续读PhD了吧 呵呵Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-26749013438500355272012-02-04T20:55:00.003-07:002012-02-04T20:55:33.949-07:00Enable Latex / Math Formula in BloggerMathJax can help you with this.<br />
See <a href="http://irrep.blogspot.com/2011/07/mathjax-in-blogger-ii.html">http://irrep.blogspot.com/2011/07/mathjax-in-blogger-ii.html</a> for the instruction.<br />
<br />
It's awesome.Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-1049242288651646482012-01-28T02:30:00.000-07:002012-08-02T16:38:29.120-06:00Summary of Block Compressed Sensing on Image<span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;"><span style="font-family: inherit;">Last article, I briefly introduce existing cs method on image. This article aims to summary how block cs worked on image.</span></span><br />
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;">
<span style="font-family: inherit;"><br /></span></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;">
<span style="font-family: inherit;">Before I go on, I need to introduce something about measurement matrix.</span></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;">
<span style="font-family: inherit;">Currently, there are several way to generate a measurement matrix. For a complete list of possible measurement matrix, please refer to
<a href="https://sites.google.com/site/igorcarron2/cs">https://sites.google.com/site/igorcarron2/cs</a> . Here I only discuss three of them: </span></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;">
<ul style="background-color: white; color: black;">
<li><span style="font-family: inherit;">Random Fourier Ensemble: The signal is a discrete function f on Z/NZ, and the measurements are the Fourier coefficients at a randomly selected set Omega of frequencies of size M ( A is an M x N matrix.)</span></li>
<li><span style="font-family: inherit;">Gaussian ensemble: A is an M x N matrix (M x N Gaussian variables).</span></li>
<li><span style="font-family: inherit;">Bernoulli ensemble: A is an M x N matrix (M x N Bernoulli variables). </span></li>
</ul>
</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;">
<span style="font-family: inherit;">It should be noticed that for most of the case, the measurement matrix should be orthonormal.</span><br />
<span style="font-family: inherit;"><br /></span></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;">
<span style="font-family: inherit;"><span style="font-family: inherit;">For 1d signal, Gaussian ensemble is enough to reconstruct the signal[1]. However, for 2d image,
<span style="background-color: white; color: black; line-height: 24px;">N can be fairly large, which makes the storage and computations of a Gaussian ensemble very difficult. </span><span style="background-color: white; color: black; line-height: 24px;">Thus, [2] suggested to apply a <b><u>partial random Fourier matrix</u></b>。</span></span></span>For sparse basis, it employed <u><b>wavelet</b></u>. <span style="font-family: inherit;">Besides, it uses <u><b>min tv</b></u> instead of l1norm as recon strategy. However, I've found no simulation code available for [2].</span></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;">
<span style="font-family: inherit;"><br /></span></div>
<div style="background-color: rgba(255, 255, 255, 0.917969);">
<div style="color: #222222;">
<span style="font-family: inherit;">Another possible way to solve the problem addressed before is to sample the image block by block. This is quite similar with what JPEG did. [3] gives out corresponding research. For measurement matrix, the paper uses i.i.d <u><b>Gaussian ensembles</b></u>. For sparse basis, it uses <b><u>LT</u></b>. The reconstruction is based on <b><u>PoCS and Hard Thresholding</u></b> . No simulation code available now. But you may refer to </span><a href="https://sites.google.com/site/igorcarron2/cscodes">https://sites.google.com/site/igorcarron2/cscodes</a>.<span style="font-family: inherit;"> There is a code called <span style="background-color: white; color: black;"><a href="https://sites.google.com/site/igorcarron2/sbhe.m?attredirects=0" style="color: #551a8b; outline-color: initial; outline-style: none; outline-width: initial;">sbhe.m</a>, </span></span></div>
<div style="background-color: white; color: black;">
<span style="font-family: inherit;">Implemented from <a href="http://www.dsp.ece.rice.edu/cs//scrambled_blk_WHT.pdf" rel="nofollow" style="color: #551a8b; outline-color: initial; outline-style: none; outline-width: initial;">Fast compressive imaging using scrambled block Hadamard ensemble</a> by <a href="http://www.liv.ac.uk/EEE/academicstaff/gan.htm" rel="nofollow" style="color: #551a8b; outline-color: initial; outline-style: none; outline-width: initial;">Lu Gan</a>, <a href="http://www.google.com/search?q=Thong+Do+site%3Ajhu.edu" style="color: #551a8b; outline-color: initial; outline-style: none; outline-width: initial;">Thong Do</a> and <a href="http://www.ece.jhu.edu/~tran/html/" rel="nofollow" style="color: #551a8b; outline-color: initial; outline-style: none; outline-width: initial;">Trac Tran.</a> This is another algorithm proposed by the same author. It may help you.</span></div>
</div>
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">To improve the performance of [3], [4] proposed to first decompose the coefficients into dense and sparse component. For dense component, it uses conventional encoding; for sparse component, it uses cs. For measurement matrix, it didn't clearly indicate in the paper. But from inference, it should use i.i.d <b><u>Gaussian ensembles</u></b> as in [3]. It still employs <b><u>wavelet</u></b> as sparse basis. The reconstruction is based on <b><u>PoCS</u></b>[2] and <b><u>prediction by adaptive interpolation</u></b>. The paper gives out the detailed reconstruction scheme. No simulation code <span style="font-family: inherit;">available now.</span></span><br />
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">After that, [5] gives some interesting simulation results. Here for measurement matrix, it should still use i.i.d <b><u>Gaussian ensembles</u></b>.But for sparse basis, it proposed to use <b><u>Directional Transformation(CT and DDWT)</u></b>.The reconstruction is based on <b><u>SPL</u></b>.</span> <b><u>Simulation code is available</u></b> at <a href="http://www.ece.msstate.edu/~fowler/BCSSPL/">http://www.ece.msstate.edu/~fowler/BCSSPL/</a><span style="font-family: inherit;">. Besides I am quite interested in analyzing the EXPERIMENTAL RESULTS part in this paper. It compares with several other methods.</span><br />
<span style="font-family: inherit;">1. To compare the effectiveness of CT and DDWT, it compares to BCS-SPL-DWT, BCS-SPL-DCT. The simulation code is not available now.</span><br />
<span style="font-family: inherit;">2. To compare SPL with TV, it compares with BCS-TV. The implementation is using l1-Magic(http://acm.caltech.edu/l1magic/). I have implemented the code at <a href="http://www.ualberta.ca/~hfang2/pub/Block%20CS-TV.zip">http://www.ualberta.ca/~hfang2/pub/Block CS-TV.zip</a> .</span><br />
<span style="font-family: inherit;">3. To compare SPL with GPSR and SAMP, it uses the implementation provided by their respective authors(http://www.lx.it.pt/~mtf/GPSR/ http://thongdojhu.googlepages.com/samp_intro/ ).</span><br />
<br />
The last one is [6]. It perform random permutation among blocks to achieve better performance. It uses <b><u>DCT</u></b> as sparse basis. For measurement matrix, it uses i.i.d <b><u>Gaussian ensembles</u></b>.It uses min l1-norm instead of min tv as reconstruction method. I recommend you use cvx_toolbox(<a href="http://cvxr.com/cvx/download/">http://cvxr.com/cvx/download/</a>) for simulation.<br />
<br />
<span style="font-family: inherit;">If you find any simulation code published, or any error in the article, please contact me.</span><br />
<span style="font-family: inherit;">Thanks a lot.</span><br />
<span style="font-family: Times, 'Times New Roman', serif;"><br /></span><br />
<span style="font-family: Times, 'Times New Roman', serif;">[1] <span style="background-color: white; line-height: 24px;">Robust uncertainty principles: Exact signal reconstruction form highly incomplete frequency information</span></span><br />
<span style="font-family: Times, 'Times New Roman', serif;"><span style="line-height: 24px;">[2] </span><span style="background-color: white; line-height: 20px;">Practical Signal Recovery from Random Projections</span></span><br />
<span style="font-family: Times, 'Times New Roman', serif;"><span style="background-color: white; line-height: 20px;">[3] </span><span style="background-color: white; line-height: 20px;">Block Compressed Sensing of Natural Images</span></span><br />
<span style="font-family: Times, 'Times New Roman', serif;"><span style="background-color: white; line-height: 20px;">[4] Image Representation by Compressed Sensing</span><br style="background-color: white; line-height: 20px;" /><span style="background-color: white; line-height: 20px;">[5] Block compressed sensing of images using directional transforms</span><br style="background-color: white; line-height: 20px;" /><span style="background-color: white; line-height: 20px;">[6] Compressive Sampling With Coefficients Random Permutations for Image Compression</span></span>Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com1tag:blogger.com,1999:blog-3205064064340334725.post-85841742629525296222012-01-25T22:58:00.001-07:002012-08-02T16:37:49.022-06:00Compressed Sensing(压缩感知)用于图像的综述<span style="font-family: inherit;">CS最初由[1][2][3]提出。[1, 2]没有看,[3]中理论推导比较多。我建议读[4]作为入门。</span><br />
<span style="font-family: inherit;">最初的CS理论只提出了noiseless的情况下,可以accurately recover compressible signal,注意是需要compressible signal的,不过大多数信号的是compressible signal,所以适用面很广。</span><br />
<span style="font-family: inherit;">于是有人就会想在noisy的情况下,是否可以使用CS呢?</span><br />
<span style="font-family: inherit;">最初的研究是,Noisy measurements的恢复效果不是很好。所以Wisconsin的俩人J. Haupt和R. Nowak就对zero-mean additive noise的情况进行了研究,相关工作可以参看[5]。他们的结论当时是可以在这种加性噪声的情况下恢复原信号(否则就没法发paper了...)。</span><br />
<span style="font-family: inherit;">对之后CS方面的文献就不在这片文章里描述了。</span><br />
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">接下来我想重点讲一下cs用于imaging的文献发展历程。</span><br />
<span style="font-family: inherit;">一般来说,研究都放在如何采样一个图像或者如何压缩一个图像。</span><br />
<span style="font-family: inherit;">对于2D的图像,由于维数较大,导致CS面临有以下几个问题:</span><br />
<span style="font-family: inherit;">1. 重建算法计算量大</span><br />
<span style="font-family: inherit;">2. 需要大量的存储空间来保存随机采样operator,即measurement matrix</span><br />
<br />
<span style="font-family: inherit;">05年的时候,在[6]中最初对2D图像信号进行了CS reconstruction并给出了其仿真结果,不过这篇文章只讨论了无噪的情况,而且没有给出有噪情况的分析。作者的主要方案是<span class="Apple-style-span" style="background-color: white; color: #220706; line-height: 21px;">apply a <em>partial random Fourier matrix</em> in the wavelet domain。</span></span><br />
<span style="font-family: inherit;"><span class="Apple-style-span" style="background-color: white; color: #220706; line-height: 21px;">06年[3]</span><span class="Apple-style-span" style="background-color: white; color: #220706; line-height: 21px;">提出<em>multiscale CS:</em>different scales of wavelet coefficients are segregated and sampled with partial Fourier ensembles。</span></span><br />
<span style="font-family: inherit;">也是06年的时候,[9]就对CS是否能作为一种imaging method进行了检验,主要考虑有噪情况下是否能够有很好的性能,将其performance与标准的pixel-based采样方案进行比较。最终结论是:CS在以下情况下优于传统像素采样:</span><br />
<span class="Apple-style-span" style="background-color: white; color: #220706; font-family: inherit; line-height: 20px;"></span><br />
<ul style="margin-bottom: 0px; margin-left: 0.5em; margin-right: 0px; margin-top: 0px; padding-left: 1.5em;"><span style="font-family: inherit;"><span class="Apple-style-span" style="background-color: white;">
<li style="color: #220706; line-height: 20px;">if the underlying image is highly compressible or</li>
</span>
</span>
<li><span style="background-color: white; color: #220706; font-family: inherit; line-height: 20px;">or if the SNR is sufficiently large</span></li>
</ul>
<div>
<span style="font-family: inherit;"><span style="background-color: white; color: #220706; line-height: 20px;">另</span><span style="background-color: white; color: #220706; line-height: 20px;">外[9]</span><span style="background-color: white; color: #220706; line-height: 20px;">还比较全面的介绍了对piecewise constant这个类别的图像进行压缩传统的做法。并给出了相应的squared approximation error作为性能衡量标准。</span></span></div>
<div>
<span style="color: #220706;"><span style="font-family: inherit; line-height: 20px;"><br /></span></span><br />
<ul style="margin-bottom: 0px; margin-left: 0.5em; margin-right: 0px; margin-top: 0px; padding-left: 1.5em;"><span class="Apple-style-span" style="background-color: white; font-family: inherit;">
</span></ul>
<span style="font-family: inherit;"><span class="Apple-style-span" style="background-color: white; color: #220706; line-height: 20px;">
</span>07年L. Gan基于[6]的理论提出了block compressed sensing[7]。这篇文章是我认为很多后续对图像压缩的研究的基础,非常建议一读。</span><br />
<span style="font-family: inherit;"><br /></span><br />
08年MSRA的一帮人提出了将图像的coefficients进行分解[8],对于dense的部分进行conventional encoding (变换编码),sparse的部分进行CS。
<br />
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">[7]和[8]都给出了PSNR效果,是很好的比照对象。
</span><br />
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">[14]是基于[6]的一个改进。除了算法部分,我推荐看一下Background这一部分,它比较完整的介绍了当前CS的一些算法。同时,这篇文章也对[6]进行了review,有助于理解[6]的算法。另外,这篇文章给出了不同CS算法下的PSNR,有比较系统的仿真结果,可供参考。
</span><br />
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">11年,[15]提出了基于[6]的另一种改进。作者对稀疏系数矩阵进行random permutation从而使稀疏度分布趋近一致,从而提高CS的性能。
</span><br />
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">08年T. Wan等人提出将cs应用于image fusion[10],09年A. Divekar也作了类似的研究[11]。image fusion就是将从不同sensor对同一个场景的图像结合起来一发现其中的信息。有兴趣的同学可以看看这两篇文章,这里不多做解释。</span><br />
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">09年开始,研究者开始考虑colored image,从而将CS从2D image转到了3D。[12]的作者提出使用Bayer Filter以及Joint Sparsity Model来exploit不同色彩信道之间的相关性。结果显示这种方法比普通的对各个信道独立进行CS效果更好。</span><br />
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">08年,CS界的一位牛人J. Romberg使用noiselet概念(类似wavelet),并且使用min TV而不是min l1进行图像重建[13]。TV中的梯度运算可以促进smoothing,更加适合images。这也是大多数CS imaging的恢复算法。但是Noiselet用于稀疏基在图像方面的后续研究我还没有看到,有可能是我遗漏了。</span><br />
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">以上就是05年到11年大部分关于cs用于image方面的paper综述,希望有助于大家理解。</span><br />
<span style="font-family: inherit;">有错误之处欢迎指出。</span><br />
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">[1] Roubust uncertainty principles: Exact Signal Reconstruction from Highly Incomplete Frequency Information</span><br />
<span style="font-family: inherit;">[2] Near optimal signal recovery from random projections: Universal Encoding Strategies?</span><br />
<span style="font-family: inherit;">[3] Compressed Sensing</span><br />
<span style="font-family: inherit;">[4] Introduction to compressed sampling</span><br />
<span style="font-family: inherit;">[5] Signal reconstruction from noisy random projections</span><br />
<span style="font-family: inherit;">[6] Practical Signal Recovery from Random Projections</span><br />
<span style="font-family: inherit;">[7] Block compressed sensing of natural images</span><br />
<span style="font-family: inherit;">[8] Image representation by compressed sensing</span><br />
<span style="font-family: inherit;">[9] Compressive Sampling VS. Conventional Imaging</span><br />
<span style="font-family: inherit;">[10]Compressive image fusion</span><br />
<span style="font-family: inherit;">[11]Image fusion by compressive sensing</span><br />
<span style="font-family: inherit;">[12]Compressive imaging of color images</span><br />
<span style="font-family: inherit;">[13]Imaging via Compressive Sampling</span><br />
<span style="font-family: inherit;">[14]Block compressed sensing of images using directional transforms</span><br />
<span style="font-family: inherit;">[15]Compressive Sampling with Coefficients Random Permutations for Image Compression</span></div>Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-21474365453744345862012-01-24T23:10:00.000-07:002012-01-24T23:10:01.692-07:00Apache2.2 + PHP5.3.3 Windows下的配置<br />
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">昨天给自己配了一下PHP的环境,弄了有一会。</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">网上的教程也看了,还是自己写一下,以后可以参考,呵呵。</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<br /></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">首先要注意的是这个教程有几个前提要求:</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">1. Windows; Linux下的我没配过,所以不是很清楚。</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">2. Apache2.2;版本比较重要,不同的版本也有可能是不一样的配法~所以,如果是要配置其他版本的话,请换关键字搜索~~呵呵~</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">3.PHP5.3.3; 同样是版本的问题~</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<br /></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">好了,现在开始配置吧。</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">1. 首先,先要下Apache2.2。我下的是httpd-2.2.16-win32-x86-no_ssl.msi,安装到C:\Program Files里了</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">2. 然后,把PHP5.3.3也下下来,注意,要下php-5.3.3-Win32-VC6-x86.zip这个文件,不要有nts,也不要是VC9什么的。我一开始就下错了,然后缺文件之类的- -。</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">这个就直接解压缩就好了,放在C:\php目录下。(这个目录底下应该就直接是文件了,不是解压得到的文件夹哦)。</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<br /></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">3. 装好Apache之后,可以打开Apache服务,然后访问localhost一下,看看是不是装好了。基本上这步不会出问题的。</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">4. 配置PHP。</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">关键步骤~(我引用了</span><a href="http://www.blogjava.net/zyw090111/archive/2010/08/07/328197.html"><span style="background-color: white; color: black;">http://www.blogjava.net/zyw090111/archive/2010/08/07/328197.html</span></a><span style="background-color: white;">里面的方法),不过有一些注释的地方是我做错的点。</span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="color: #993300; line-height: 1.5;"><span style="color: black; line-height: 1.5;"><span style="background-color: white;">1) 配置PHP5.3.3,打开php安装目录(C:\php)可以看到目录下有两个这样的文件 php.ini-development和php.ini-production,第一个是开发使用的配置文件,第二个是标准的生产环境的配置。<br style="line-height: 1.5;" />2)选择php.ini-development复制一份到同目录下,并改名为php.ini使用文本工具打开,查找extension_dir,可以看到两个,选择On windows:</span></span></span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="color: #993300; line-height: 1.5;"><span style="color: black; line-height: 1.5;"><span style="background-color: white;">下面的那个并去得前面的<span style="color: red; line-height: 1.5;"><span style="color: black;">分号<span style="line-height: 1.5;">修改为extension_dir = "C:/php/ext",读者根据自己的目录结构配置,目的是找到和php.ini同目录下的ext文件夹中的扩展库。</span></span></span></span></span></span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="color: #993300; line-height: 1.5;"><span style="color: black; line-height: 1.5;"><span style="color: red; line-height: 1.5;"><span style="color: black; line-height: 1.5;"><span style="background-color: white;">!!这里一定要注意的是,不要只改了目录,而没有把分号去掉- -分号没去掉这句话是不起作用的。</span></span></span></span></span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="color: #993300; line-height: 1.5;"><span style="color: black; line-height: 1.5;"><span style="color: red; line-height: 1.5;"><span style="color: black; line-height: 1.5;"><span style="background-color: white;">检测方法是,写一个index.php文件</span></span></span></span></span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="color: #993300; line-height: 1.5;"><span style="color: black; line-height: 1.5;"><span style="color: red; line-height: 1.5;"><span style="color: black; line-height: 1.5;"><span style="background-color: white;"><? phpinfo()?>放在Apache的访问的文件夹下(可以查看Apache22/conf/httpd.conf,搜索DocumentRoot),默认是Apache22/htdoc这个文件夹。然后访问localhost/index.php,可以看到</span></span></span></span></span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<br /></div>
<table border="0" cellpadding="3" style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; width: 600px;"><tbody>
<tr><td style="line-height: 1.5;"><span style="background-color: white;">Configuration File (php.ini) Path</span></td><td style="line-height: 1.5;"><span style="background-color: white;">C:/Windows</span></td></tr>
<tr><td style="line-height: 1.5;"><span style="background-color: white;">Loaded Configuration File</span></td><td style="line-height: 1.5;"><span style="background-color: white;">C:/php/php.ini</span></td></tr>
</tbody></table>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<br /></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="color: #993300; line-height: 1.5;"><span style="background-color: white;">以及</span></span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<br /></div>
<table border="0" cellpadding="3" style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; width: 600px;"><tbody>
<tr><td style="line-height: 1.5;"><span style="background-color: white;">extension_dir</span></td><td style="line-height: 1.5;"><span style="background-color: white;">C:/php/ext</span></td><td style="line-height: 1.5;"><span style="background-color: white;">C:/php/ext</span><br />
</td></tr>
</tbody></table>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<br /></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">这就说明配置对了,否则,需要在下面的步骤中把文件拷贝到相应目录。<br style="line-height: 1.5;" />3)查找extension=php_,去掉</span><span style="background-color: white;"><span style="color: black;"><span style="color: red; line-height: 1.5;">extension=php_curl.dll、extension=php_gd2.dll、extension=php_mbstring.dll、<br style="line-height: 1.5;" />extension=php_mysql.dll、extension=php_mysqli.dll、extension=php_pdo_mysql.dll、extension=php_xmlrpc.dll</span>前面的分号。查找short_open_tag = Off把它修改成short_open_tag = On,让其支持短标签。</span></span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="background-color: white;">这一步的作用是开启一些功能,如curl,mysql等。而这些dll文件都是放在C:/PHP/EXT目录下的,也就是由上一步设置的extension_dir决定的。<br style="line-height: 1.5;" />4)复制php5ts.dll文件到WINDOWS/system32目录下,只有<span style="color: black;"><span style="color: red; line-height: 1.5;">php-5.3.3-Win32-VC6-x86</span>版本中才有php5ts.dll <span style="color: #993300; line-height: 1.5;">php-5.3.3-nts-Win32-VC6-x86版本是没有的。</span></span></span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="color: #993300; line-height: 1.5;"><span style="background-color: white; color: black;">5)复制libeay32.dll ssleay32.dll(C:/PHP)到C:/windows下。</span></span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="color: #993300; line-height: 1.5;"><span style="background-color: white; color: black;">(之所以有这一步,可能是因为类似的某个目录没有配好,默认在C:/windows下。但暂时我还不知道在哪配,所以也就只好默认了- -)</span></span></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<br /></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<br /></div>
<div style="font-family: 宋体, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">
<span style="color: #993300; line-height: 1.5;"><span style="background-color: white; color: black;">这样,php的配置基本就完成了、</span></span></div>Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-3965760428966788602012-01-18T23:38:00.002-07:002012-08-13T09:16:59.555-06:00免费软件打造你的学术PC<div dir="ltr" style="text-align: left;" trbidi="on">
上一篇博文写的关于如何打造你的iPad成为学术利器<br />
很多软件是和电脑之间需要同步的 所以 同步是下列软件共有的特点<br />
另外 本篇博文还将介绍一系列自身管理的软件<br />
<br />
<br />
1. Tiddlywiki + Git + Github<br />
Tiddlywiki 是一款基于Html的单文件个人知识管理系统 十分容易上手<br />
你可以在上面写whatever you want 随意记录你遇到过的各种问题以及如何解决<br />
可以记录你的research diary<br />
可以写paper review<br />
etc...<br />
而且它有很强大的plugin支持 可以安装各种你想要的功能<br />
这么多个人知识管理系统里推荐他的原因是他是单文件 所以便携 任何场合只要有浏览器就能打开<br />
另外他是唯一一个可以跨平台的wiki 你可以随意在windows linux mac之间切换<br />
并且他和Git搭配起来功能可以发挥到极致<br />
<br />
Git是一款版本管理软件 有过项目开发经验的同学都应该接触过这个软件<br />
如果没有用过 强烈建议学习一下 很容易上手 对于代码的管理绝对是必不可少的软件<br />
这里使用Git一是为了管理你的wiki版本 这样即使某个版本的wiki崩溃 也能很快回滚到之前的状态<br />
另一个目的是同步 结合Github 你可以随时随地从你的github库上clone你的wiki 并且push你的修改 当然 你也可以使用dropbox等来完成类似功能(但是只有git才有这么强大的版本管理能力)<br />
<br />
下面是我自己的两个基于tiddlywiki的实现,大家可以参考<br />
我的tiddlywiki: http://funny.tiddlyspot.com<br />
我的Homepage: http://hfang2.tiddlyspot.com<br />
<br />
2. mGSD<br />
对时间管理有一定了解的人都应该知道著名的Get Things Done<br />
没有看过的同学强烈推荐看以下这本讲时间管理的书<br />
现在有很多GTD的软件 这里介绍基于tiddlywiki的mGSD<br />
个人对tiddlywiki情有独钟 当然喜欢它的各种应用<br />
mGSD算是tiddlywiki中发展很健全的一个例子 它完全实现了GTD的所有功能<br />
又有tiddlywiki的特性 当然你也可以搭配上git进行版本管理<br />
<br />
3. Live Mesh<br />
上次介绍过这个软件 这个软件的牛逼之处是你不但可以在不同电脑之间同步文件夹 还可以远程登录 简直就是神器啊!你可以在实验室让打开你的代码跑仿真 也可以在家里打开实验室电脑打印文件 总之 如果你有两个以上的常用电脑 这个软件绝对是TOP 1<br />
<br />
4. MindManager<br />
这是个思维导图软件 上次在ipad app推荐的时候推荐个这个软件<br />
这也是为什么我推荐他的原因 他可以更好的和ipad搭配使用 他可以把文件上传到其网上空间 和ipad同步<br />
当然 你也可以用freeMind/XMind 然后使用Dropbox和ipad同步 但是似乎ipad MindManager上兼容性还不是太好<br />
不过 这个不是个免费的软件 但是我相信这难不倒我们强大人中国人民的智慧的~呵呵<br />
<br />
5. Mendeley<br />
好了 这个是个免费文献管理软件 这个软件可以把你的文献上传到网络空间 可以在不同电脑之间同步管理 同时可以在ipad上同步文献 随时随地看paper 呵呵<br />
<br />
6. Dropbox<br />
这也是 为了结合ipad使用的软件 可以随时同步你的文件 唯一的缺点就是必须把文件放在dropbox这个文件夹下 所以我之前介绍的Live Mesh就是为了弥补这个不足所用的软件<br />
<br />
7. Evernote<br />
强大的云笔记软件 可以随时在手机 平板 各处电脑记录事件 这可以弥补在手机上浏览mGSD不方便的问题 也可以作为记录一些备忘录的工具<br />
<br />
8. Vim<br />
超强的text editor 用过linux的人都应该知道它 比记事本强大很多<br />
可以有很多配置 一开始用可能会不习惯 但是一旦上手 绝对是text editor中的神器<br />
<br />
9. TexMaker<br />
Latex编辑器 写paper的专业工具 在格式排版方面 比word好用很多<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-15044030542045621682012-01-14T21:57:00.002-07:002012-08-13T09:16:25.850-06:00免费app打造你的学术iPad<div dir="ltr" style="text-align: left;" trbidi="on">
iPad除了用来玩 对于researcher来说 当然也可以用来作为一个学术利器<br />
下面介绍的应用基本上都是free的 所以无论你的ipad有木有越狱 都是ok的<br />
<br />
<br />
<ol>
<li>Mendeley<br />这是一款免费的文献管理软件 你可以在电脑上管理你的所有文献 同步到服务器端 在ipad上你也可以看到你电脑上所有的文献</li>
<li>Dropbox<br />很强的一款同步文件的软件 可以在电脑和ipad之间同步很多文档 注册就有2G免费空间 它之所以强大是因为基本上需要用到数据共享的app(不管ipad android)都会整合dropbox 所以绝对是不可或缺</li>
<li>SlideShark<br />播放PPT的软件 可以让你的ipad播放PPT文件 需要电脑通过软件Upload到服务器进行同步</li>
<li>金山词霸<br />没啥好说的 查单词</li>
<li>Caculator++<br />免费的计算器软件</li>
<li>Evernote<br />很好用的云端记事本软件 可以和电脑 手机同步 我用它来记一些小事情 其他事情我使用mGSD 一款基于tiddlywiki的GTD工具 有机会下次介绍</li>
<li>pdf-notes<br />免费的看pdf的软件 并且可以作注释 功能很强大</li>
<li>CloudOn<br />编辑 查看office文档的软件</li>
<li>iNoteBook Lite<br />集合日历 日记 笔记 文档管理于一身的软件 有兴趣的朋友可以使用一下</li>
<li>PocketCloud<br />远程登录电脑软件 可以在任何地方登录你的电脑</li>
<li>WifiSendFree<br />让你的ipad成为电脑的键盘和鼠标</li>
<li>Mindjet<br />思维导图工具 可以和电脑的MindManager一起使用 一个用来编辑 ipad主要用来演示 MindManager的破解版大家好好利用google就好了</li>
<li>Timeli<br />项目日程管理软件 用户界面友好</li>
<li>OfficeDrop<br />可以随时将纸质文档通过摄像头扫描保存为电子文档并上传到服务器保存</li>
<li>i-Clickr<br />一款控制电脑PPT播放的软件 这个软件是收费的 但是是坐presentation的绝对利器 可以设置timer提醒时间 可以看ppt的备注 控制PPT播放 进行涂鸦等等 所以花钱买or越狱装都是值得的</li>
</ol>
<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-6830548322536479652012-01-09T16:23:00.000-07:002012-01-11T12:31:07.304-07:00推荐两款文件夹同步软件Live Mesh和SyncToy大家现在不免有多台电脑 比如实验室一台 家里一台<br />
所以同步文件夹就比较麻烦 需要用U盘拷来拷去<br />
<br />
Dropbox是一款不错的同步软件 可以和tablet ipad等同步 但是他需要把所有的文件放在一个文件夹下 比较麻烦<br />
Windows Live Mesh 是Microsoft推出的功能 可以将文件夹同步到网络端 从而在不同的机器上同步 而且注册就有5G的免费空间 并且可以远程登录桌面 非常好用<br />
<br />
另一款软件SyncToy主要用于局域网同步或者本机文件夹备份 比较适合需要同步移动硬盘文件 或者同一个局域网的电脑文件夹 但是对于不同局域网的文件夹就比较复杂了Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-66435183703084385812012-01-09T00:20:00.000-07:002012-01-09T00:21:09.808-07:00WikiCFP : Call For Papers of Conferences , Workshops and Jounals<div>
发现一个网站 可以用来关注最近开的conferences workshops等消息</div>
<div>
也可用来发布消息</div>
<a href="http://www.wikicfp.com/">WikiCFP : Call For Papers of Conferences , Workshops and Jounals</a>Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-46247648063876213252012-01-08T17:40:00.002-07:002012-01-08T17:40:48.258-07:00X10i Root 2.3.3教程<span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">系统要求:</span><br />
<span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">android 2.3.3</span><br />
<br />
<span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">准备工作:</span><br />
<span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">下载 </span><a class="externalLink" href="http://115.com/file/dneeme71#" style="background-color: white; color: #0044bb; font-family: calibri; font-size: 16px; line-height: 20px;" target="_blank" title="External link to http://115.com/file/dneeme71#">Flashtool0.4.2.0.rar</a><br />
<br />
<span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">Root</span><br />
<ol style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px; margin-left: 0.5em; padding-left: 1.5em;">
<li>安装驱动<ol style="list-style-type: lower-alpha; margin-left: 0.5em; padding-left: 1.5em;">
<li>解压缩 flashtool/drivers 中的X10_ADB_drivers.zip</li>
<li>设备管理器-> X10 (未知USB设备)-> 更新驱动 (选择文件夹 Flashtool -> drivers)</li>
</ol>
</li>
<li>打开X10FlashTool.exe</li>
<li>手机设置 未知来源 (设置->应用程序)和 USB调试,保持唤醒(设置->应用程序->开发)</li>
<li>连接手机</li>
<li>等待Root图标亮起 点击ROOT</li>
<li>期间会重启</li>
<li>显示'root access allowed',表示root成功</li>
</ol>
<br />
<span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">图文教程可以参考:</span><a class="externalLink" href="http://sebbs.cnmo.com/thread-10614705-1-1.html" style="background-color: white; color: #0044bb; font-family: calibri; font-size: 16px; line-height: 20px;" target="_blank" title="External link to http://sebbs.cnmo.com/thread-10614705-1-1.html">http://sebbs.cnmo.com/thread-10614705-1-1.html</a><br />
<br />
<span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">FAQ:</span><br />
<ul style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px; margin-left: 0.5em; padding-left: 1.5em;">
<li>Root图标不亮起是为什么?</li>
</ul>
<span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">检查驱动是否安装成功(按照步骤1)</span><br />
<ul style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px; margin-left: 0.5em; padding-left: 1.5em;">
<li>刷机失败 启动时一直卡在开机画面</li>
</ul>
<span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">如果驱动没有安装正确,或者没有开启未知来源和USB调试,或者使用低版本的</span><span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">FlashTool</span><span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">,都有可能出现该情况</span><br />
<span style="background-color: white; font-family: calibri; font-size: 16px; line-height: 20px;">可以用update service(SE提供的更新软件 升级过系统的人应该都知道)重新更新一遍就好了</span>Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-8068796748112933792012-01-06T15:05:00.001-07:002012-01-06T15:05:18.448-07:00TrackMyTour: 记录旅行的iPad app可以在当前地点创建图片 纪录
有点像日记 不过结合地点和图像 很有意思Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-31529132933659061612012-01-06T15:02:00.000-07:002012-01-06T15:16:38.373-07:00Clibe: 一个有意思的记笔记的iPad app之前一直用的是Evernote 当然很好用<br />
不过clibe不同的是 它可以作手写板 可以涂鸦 可以随意乱画<br />
而且能够创建不同的笔记本<br />
可以用来头脑风暴 做小型思维导图<br />
<br />
推荐大家试用 免费的咯Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0tag:blogger.com,1999:blog-3205064064340334725.post-83019556680881491302012-01-05T11:48:00.001-07:002012-01-05T12:28:01.298-07:00The reason for using 8x8 as the block size in image processingThe DCT usually use 8x8 as the block size to be applied to images. This is a trade-off between computational complexity, compression speed and quality.
<br />
<br />
A lot of research work show that after 15 or 20 pixels, the relationship among them begins to reduce; that is to say, a group of similar pixels usually lasts for 15 to 20, after that, the amplitude would change.<br />
<div>
<br /></div>Anonymoushttp://www.blogger.com/profile/18173046947114990705noreply@blogger.com0