how to display pdf file in asp.net c# : C# get text from pdf control Library utility azure asp.net html visual studio Excel29-part200

7.2
Interpolation and filtering
We will now illustrate a powerful pair of properties of Fourier transforma-
tion, namely its power to interpolateand to filterdata. First we look at inter-
polation. The idea is as follows. Imagine that a periodic signal is completely
described by a given set of frequencies, i.e., it does not contain any frequen-
cies higher than a given value f
max
. Its Fourier transform will reflect that.
Now go to the Fourier transform, extend it to frequencies above f
max
, and
specify that the signal has zero contributions at those higher frequencies;
this process is called zero-filling. When we apply an inverse transformation
to this extendeddata set, we will recover the original signal with added, inter-
polatedpoints, since the longer frequency record corresponds to a more
detailed representation in time t.
Instructions for exercise 7.2-1
Start a new spreadsheet, and organize it like the earlier one, or just copy that earlier
one.
Here we will use a rather minimal, four-point data set: for time in A13:A16 enter -2,
-1, 0, and 1, for the real components of the signal in B13:B16 enter 0, -1, 0, and 1, and
place zeros in C13:C16. There should be no data below row 16.
Run the Fourier transform of this data set. The graphs should look like those in Fig.
7.2-1. An inverse transform should yield a replica of the input data.
Copy the column headings in D11:F11 to G11:I11, and those in A11:C11 to J11:L11.
Copy D13:F16 to G27.
Highlight G29:G30, grab its common handle, and drag that handle down to G44.
Likewise, activate G27:G28, grab the common handle, and extend the column upwards
to G13. Yes, it will do that!
Now comes the trick: we add zeros to the higher frequencies by filling the blocks
H13:I26 and H31:I44 with zeros.
Make a thumbnail graph of H13:H44 and I13:I44 vs. G13:G44 in G1:I8.
Highlight block G13:I44 and call in the inverse Fourier transform.
10 Make a thumbnail graph of K13:K44 and L13:L44 vs. J13:J44 in J1:L8. Your spreadsheet
should now resemble that in Fig. 7.2-2.
What you have just done can be interpreted as follows. You had a sine wave
with only four points per cycle. After Fourier transformation, you extended
the transform to 32 frequencies, but without adding any content. By doing
7.2 Interpolation and filtering
277
C# get text from pdf - extract text content from PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Feel Free to Extract Text from PDF Page, Page Region or the Whole PDF File
.net extract pdf text; delete text from pdf with acrobat
C# get text from pdf - VB.NET PDF Text Extract Library: extract text content from PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
How to Extract Text from PDF with VB.NET Sample Codes in .NET Application
get text from pdf image; delete text from pdf acrobat
so, you have provided additional information, viz. that there is no noiseat
the higher frequencies added. This is equivalent to specifying that the curve
is smooth between the original data points. Upon inverse transformation,
you then reconstructed 32 data points of the original signal, eight times as
many as it had originally. Those extra points show up as an interpolation.
As mentioned earlier, the real power of Fourier transformation lies in its
application to general functions rather than to just sines and cosines. To
illustrate this, we will now use a simple Gaussian curve as our input, then
interpolate it.
11 Place an amplitude A in B9, a center value B in D9, and a peak width C for the Gaussian
peak in F9.
12 Place the instruction=$B$9*exp(-(((A13-$D$9)/$F$9)^2)) in B13, and copy this
down to cell B44. Fill C13:C44 with zeros.
13 Adjust the numerical values of the constants in row 9 to give you a complete though
sparse Gaussian peak. Just for the fun of it, select F9 such that the peak maximum falls
in the range between two adjacent data points. The visible part of the Gaussian peak
should occupy no more than about 20% of the data set.
14 Compute the Fourier transform of A13:C44.
15 Graph the input and output data, and compare these with Fig. 7.2-3.
278
Fourier transformation
Fig.7.2-1:The spreadsheet for a four-point sine wave and (in color) its Fourier trans-
form.
C# PDF insert text Library: insert text into PDF content in C#.net
try this C# demo. // Open a document. String inputFilePath = Program.RootPath + "\\" 1.pdf"; PDFDocument doc = new PDFDocument(inputFilePath); // Get a text
copy text from pdf without formatting; .net extract text from pdf
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
for adding text box to PDF and edit font size and color in text box field Learn how to retrieve all annotations from PDF file in C# project. // Get PDF document
extract highlighted text from pdf; get text from pdf c#
7.2 Interpolation and filtering
279
Fig.7.2-2:The part of the spreadsheet containing the zero-filled transform, and its
inverse Fourier transformation. The seed from Fig. 7.2-1 is shown in block G27:I30.
C#: Use OCR SDK Library to Get Image and Document Text
On this Visual C# tutorial page, you will see how SDK in your application to extract and get text from Tiff Extracted text can be output to Word or PDF document
extract text from scanned pdf; pdf text replace tool
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
C# users are able to extract image from PDF document page and get image information for indexing and accessing. C# Project: DLLs for PDF Image Extraction.
how to copy and paste pdf text; cut and paste text from pdf document
16 Now copy block D13:F44 to G253.
17 Grab G253:G254 by the handle and draw back to G13. Likewise extend the frequency
scale down to G524.
18 Fill H13:I252 and H286:I524 with zeros.
19 Call the inverse Fourier transform of the data in block G13:I524. You should now see
the reconstructed input curve, but with 16 times as many points, 15 of them inter-
polated.
20 Graph the interpolated curve, and compare with Fig. 7.2-4.
While the original curve had only six points that rose significantly above
the baseline, the interpolated curve clearly has quite a few more. Note that
we have not added any real information to the original data set, but have
merely interpolated it, without making any assumptions on the shape of the
underlying data set, other than that it is noise-free. Consequently we can,
e.g., determine the peak position by fitting a number of points near the peak
maximum to a low-order polynomial such as y=a
0
+a
1
x+a
2
x
2
, using the
280
Fourier transformation
Fig.7.2-3:A 32-point data set containing about six points of a Gaussian curve, y=3×
exp[– (x– 4.56)2/ (1.5)2], and its inverse Fourier transform.
Fig.7.2-4:The central part of the curve obtained after zero-filling the Fourier transform
to 512 points, followed by inverse transformation.
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
C#.NET Sample Code: Extract PDF Pages and Save into a New PDF File in C#.NET. You can easily get pages from a PDF file, and then use these pages to create and
get text from pdf into excel; get text from pdf image
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
page reordering and PDF page image and text extraction In addition, C# users can append a PDF file get PDFDocument object from one file String inputFilePath1
extract formatted text from pdf; delete text from pdf online
Savitzky–Golay method, and then find the peak maximum from the coeffi-
cients as x
peak
=-a
1
/2a
2
.
Now we will do the opposite. We will take a signal, add random noise, and
Fourier transform it. If we know the main frequencies of the signal, we can
remove a large part of the noise, simply by setting all signals at unneeded fre-
quencies equal to zero. Upon inverse transformation we will then recover
most of the original signal, while we discriminate against much of the noise.
Filtering is usually such a trade-off: giving up some signal in return for losing
much more noise.
As our signal we will take a set of Gaussian curves that might represent,
e.g., a chromatogram or an NMR spectrum. We will first generate such a set,
and examine its Fourier transform. We will see that most of the transform is
localized in a rather small part of the frequency spectrum. This implies that
we can delete much of the frequency spectrum with relatively little loss of
signal, and we will test this.
Then we will be ready for a more realistic ‘experiment’, by adding random
noise to the signal. Now that we know in what frequency range we can filter
out the noise with relative impunity, we will do so, and observe the resulting,
filtered data.
Instructions for exercise 7.2-2
Open a new spreadsheet.
In cells A1, B1, and C1 place labels for amplitude, center, and width.
In cells A3:A7 deposit some amplitudes, in B3:B7 some peak centers, and in C3:C7
some peak widths.
In row 11 place the labels time, Re, Im, freq., Re, Im, freq., Re, Im, time, Re, Im, noise. We
will here use ‘time’ and ‘frequency’ as generic parameters, as might be appropriate for
chromatography, but ‘time’ might also represent elution volume, NMR frequency,
NMR magnetic field shift in ppm, potential in electrochemistry, distance in crystallog-
raphy, etc., and ‘frequency’ its inverse.
In A13:A524 place the rank order numbers -256 (1) 255.
In B13 enter the instruction=$A$3*EXP(-(((A13 -$B$3)/$C$3)^2))+
, the dots
representing similar expressions for the variables in rows 4 through 7.
Add a column of zeros for the imaginary component of the signal, in C13:C524, then
Fourier transform the resulting data set.
Plot the input signal and its transform. Figure 7.2-5 illustrates what you might obtain
for frequency spectrum.
Inspection of the low-frequency (middle) section of the spectrum suggests that
frequencies above a given value contribute little to the transformed signal, and may
7.2 Interpolation and filtering
281
VB.NET PDF Annotate Library: Draw, edit PDF annotation, markups in
annotating features, provides developers with a great .NET solution to annotate .pdf file with both text & graphics. From this page, you will get a simple VB
edit pdf replace text; cut text from pdf document
C# PDF Text Search Library: search text inside PDF file in C#.net
Able to find and get PDF text position details in C#.NET application. Allow to search defined PDF file page or the whole document.
copy text pdf; delete text from pdf file
therefore be expendable. (The specific cut-offfrequency depends, of course, on the
functions used, and on your judgement as to what contribution is small enough to be
neglected.) In the example of Fig. 7.2-6, an absolute cut-offfrequency | f | of about 0.07
appears reasonable.
10 In G13 place the instruction=D13, and copy this to G13:I524, thereby making a copy of
D13:F524.
11 Then, in that copy, replace the data at higher frequencies by zeros. For example, for a
cut-offat | f |>0.05, zero the data in H13:I243 and H295:I524.
12 Highlight G13:I524 and inverse transform it. Plot the recovered signal; it should resem-
ble the original closely. Upon closer inspection you will find that there are oscillatory
differences, that can be made acceptably small by proper choice of the cut-offfre-
quency, see Fig. 7.2-7. Looking at those residuals, as in Fig. 7.2-7b, is much more infor-
mative than a visual comparison of the curves.
282
Fourier transformation
Fig.7.2-6:The central section of Fig. 7.2-5b.
Fig.7.2-5:(a) The input signal and (b) its Fourier transform.
13 Now introduce a column of Gaussian noise (T
ools D
ata Analysis Random Number
Generation D
istribution Normal, Me
an 0, S
tandard Deviation 1) and modify the
signal in B13:B524 by adding to it na(for noise amplitude) times that noise. The value
of nashould of course be placed near the top of the spreadsheet, together with its
label. By setting na equal to 0 you will recover the earlier signal.
14 Fourier transform the noise-containing signal, in A13:C524.
15 Filter the transformed signal.
16 Inverse transform this filtered output.
17 Figure 7.2-8 illustrates such a noisy input signal and its filtered output.
In order to remove noise by Fourier-transform filtering we can look at the
transform, as in Fig. 7.2-6. However, it is often more convenient to inspect
the power spectrum, which is a (usually semi-logarithmic) plot of the mag-
nitude (i.e., of the square root of the sum of squares of the real and imaginary
components) of the Fourier transform. Such a power spectrum is shown in
Fig. 7.2-9, both for a noise-free signal, and for the same signal with noise.
The power spectrum is symmetrical, i.e., the information at negative and
7.2 Interpolation and filtering
283
Fig.7.2-7:(a) The filtered output signal, and (b) the differences between it and the origi-
nal shown in Fig. 7.2a for a cut-offat|f|0.07.
Fig.7.2-8:(a) The noisy input signal, and (b) the same after Fourier transformation,
removal of all frequency components with |f|0.07, and inverse transformation.
(a)
(b)
positive frequencies is identical, and it is therefore commonly displayed
only for positive frequencies. Moreover, by using a logarithmically com-
pressed vertical scale, orders-of-magnitude differences are emphasized,
thereby more clearly delineating the frequency region where the signal
dominates, and that where the noise is the more important factor. A power
spectrum often allows us to make an informed choice of the cut-offfre-
quency.
18 Calculate and plot the power spectrum, i.e., log P=
1
2
log (Re
2
+Im
2
) vs. frequency.
Here Re and Im refer to the real and imaginary components of the Fourier transform,
in columns E and F. Plot log P only for positive frequencies, as in Fig. 7.2-9.
The power of the noise-free signal falls offrapidly with frequency, until it
hits the truncation noise at about 10
–16
due to the finite number of digits
used to represent numbers in Excel. After we add Gaussian noise (so-called
‘white’ noise because its average power is independent of frequency, i.e., it is
represented in the power spectrum by a roughly horizontal line), that added
noise becomes dominant at all but the lowest frequencies. This is the ratio-
nale for replacing the higher-frequency contributions by zeros. The power
spectrum suggests where this is done most appropriately. In the above
example, the cut-offshould occur where the power falls below about -2, at f
=0.042. As can be seen in Fig. 7.2-6, by cutting offthe frequency compo-
nents at f>0.042, we introduce some signal distortion. Clearly, the noise
forces our hand here, since we would have preferred to keep the frequencies
in the range between 0.042 and 0.07. There is, of course, also noise at the
lower-frequency components, but zero-filling at those frequencies would
remove more signal than noise, and would therefore be counterproductive.
The above example illustrates the trade-offs involved in filtering out
noise. It is clear from Fig. 7.2-9 that zero-filling at higher frequencies works
284
Fourier transformation
Fig.7.2-9:(a) The power spectrum of Fig. 7.2-5 (b) the same enlarged to show its top in
greater detail, and (c) the power spectrum of Fig. 7.2-8.
only as long as the power of the low-frequency signal components signifi-
cantly exceeds that of the corresponding noise. Otherwise, any information
about the signal will be ‘buried’ in the noise. In sections 8.3 and 8.4 we will
encounter some correlation methods that can sometimes still pull a buried
signal out of the noise.
The above examples have illustrated the use of a sharpcut-offfilter, equiv-
alent to multiplying the Fourier transform by 1 up to a cut-offfrequency, and
by 0 at higher frequencies. A more gradualcut-offcan of course be made by
multiplying the frequency spectrum by some frequency-dependent attenu-
ating function, instead of the abrupt pass-all-or-none approach of the
example. There are many such more gradual filtering functions, usually
named after their originators, such as Hamming, Hanning, Parzen, and
Welch. Unfortunately, with a gradual cut-offfilter, it is not so clear what
compromise between noise-reduction and signal distortion is being struck.
In principle, Fourier transformation allows you to be much more specific,
and to pick out or reject, e.g., a single frequency or a specific set of frequen-
cies. For example, one can tune in to a particular frequency (the digital
equivalent of a sharply tuned filter, or of a lock-in amplifier, see section 8.4),
or selectively remove ‘noise’ at, say, 60, 120, and 180 Hz, while leaving signals
at other frequencies unaffected. However, this requires that the selected fre-
quency or frequencies precisely coincide with those used in the Fourier
transformation, in order to avoid the so-called leakage to be described in
section 7.4.
7.3
Di≈erentiation
DifferentiatingafunctionintheFouriertransformdomainis,inprinciple,
bothstraightforwardandeasy.Differentiationwithrespecttotimetinthe
timedomainisequivalenttomultiplicationbyj
=2
π
jfinthefrequency
domain.(Theproduct2
π
timesfiscalledtheangularfrequency
.)This
isperhapsmostreadilyillustratedusingEuler’sformula,e
± j
t
=cos(j
)
±jsin(j
), which upon n differentiation n yields s de
±j
t
/dt=±j
e
±j
t
.
Therefore,differentiationofafunctioncanbeaccomplishedbytakingits
Fouriertransform,multiplyingtheresultingdatabyj
,andinversetrans-
formingthis.TheFouriertransformoftheoriginalfunctionis,ingeneral,
acomplexnumber,a+jb,andmultiplicationbyj
thereforeresultsinj
(a+jb)=
(-b+ja).Consequently,inordertodifferentiateafunctionin
thetimedomain, we Fouriertransform it,then ina copyexchangethe
realand imaginarycolumns in thetransform,multiply thedatanowin
the realcolumn by -
andthose in the imaginary column by
,then
apply an inverse e transformation. Below w we will l illustrate this for r a
Gaussiancurve.
7.3 Di≈erentiation
285
Instructions for exercise 7.3
Open a new spreadsheet.
Organize it the same way as the preceding spreadsheet, with the input signal in
columns A-C, its transform in D-F, a copy of that transform in G-I, and the final result in
J-L. This way you can play with the input data without having to change the instruc-
tions every time.
In A13:A524 place values for time t.
In B13:B524 place the instruction for one (or more) Gaussian(s).
In C13:C524 place zeros.
In G13 place the instruction=D13.
In H13 deposit the instruction=2*PI()*D13*F13, and in I13 the instruction
=-2*PI()*D13*E13.
Copy the instructions in G13:I13 down to row 524.
You are now ready to go. Highlight A13:C524 and call the forward Fourier transform.
Then highlight G13:I524 and use the inverse Fourier transform instead. Voilà.
10 Plot the input data (B13:B524 versus A13:A524; there is nothing to see in C13:C524) and
the final result where, likewise, you only need to show the real component. Figure 7.3-1
illustrates what you what you might see.
11 Note that we need not symmetrize the time scale of the input signal around zero, but
that the output will be computed that way. If it bothers you, add 256 to the t-scale, as
we have done in Fig. 7.3-2b.
12 AddsomenoisetothesignalinB13:B524,andseehowittendstoswampthederivative.
Figure7.3-2illustratesthis.Ofcourseyouwillseethisonlyafteryouhaveagainused
theforwardandinversetransforms,asin(9).TheFouriertransformisperformedbya
macro.Macrosdonotupdateautomatically,asthestandardspreadsheetfunctionsdo.
13 Wow, that is not a pretty picture! The noise is obviously much more important in the
derivative than it is in the original curve, for a reason that will be explained in section
8.8. Note the change in vertical scale in the plot of the derivative, in order to keep most
of the data inside the picture frame.
14 But by now you know what to do: set the higher-frequency data in the transform equal
to zero, as in section 7.2, and try again. Now, in one single operation, you both differen-
tiate and filter out most of the noise, as illustrated in Fig. 7.3-3. Youare now in control.
15 Apply the same to a set of peaks with noise, as in Fig. 7.3-4.
286
Fourier transformation
Documents you may be interested
Documents you may be interested