Use FFT to Calculate Polymer Properties

I have a polymer characterized by a transmission terahertz time-domain spectroscopy (THz-TDS) in the frequency range extending from 0 to 3.0 THz. And I have measured time-domain data in a .csv file (the attachment “waveform.csv”), with column A (Delay, unit: ps), column B (Reference Amplitude, unit: nA) and column C (Sample Amplitube, unit: nA).
I tried to use Matlab to calculate polymer properties (the attachment “Calculate_Substrate_Properties.m”), according to Part II.2 in a published article (Y.-S. Jin, G.-J. Kim, and S.-G. Jeon, “Terahertz dielectric properties of polymers,” J. Korean Phys. Soc., vol. 49, no. 2, pp. 513–517, 2006) (the attachment “Terahertz Dielectric Properties of Polymers.pdf”).
The polymer thickness is 0.5mm. Calculated results are not as same as expectations in the attachment (the attachment “Results.pdf”). I think it is due to wrong phase calculations. Could anyone help and tell me what problem there is in my program?

2 Kommentare

Rik
Rik am 18 Nov. 2020
Before you attempt to edit away your question: I made a backup here, so anyone will be able to restore your edit.
What do you think makes your question not appropriate?
Star Strider
Star Strider am 18 Nov. 2020
Rik — Thank you!
It turns out that I also saved the ‘Ryan waveform.CSV’ file and am attaching it to this Comment.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Star Strider
Star Strider am 1 Sep. 2016

0 Stimmen

See the R2015a documentation for fft for some guidance. It discusses appropriate ways to define the amplitude and frequency of the Fourier-transformed data.
This aspect of physical chemistry is not an area of my expertise, so I’m not going to attempt to understand what you’re doing, even after making an effort to understand equations (1)-(6). However some of the magnitude differences between your data and your expected data could be explained by your not normalising your Fourier transformed data by the length of the data.
See if this helps:
data_len = size(waveform.data,1); % Row Length Of Data Matrix
reference_spectra = fft(waveform.data(:, 2))/data_len;
Do the same normalisation by ‘data_len’ for your other fft calls.
Beyond that, I’m lost. I’ll leave you to the physical chemistry. (I was an undergraduate Chemistry major, but that was back in the phlogiston era.)

5 Kommentare

Ryan
Ryan am 2 Sep. 2016
Bearbeitet: Ryan am 2 Sep. 2016
Thanks for your kind help! I have tried what you told. However, results are still not correct. I do not think it is the reason why my original program could not calculate expected results, since values in spectrum are relative values it will not affect p(w) in formula (2). I think my original programm calculated wrong results due to wrong phase calculations. Thanks for your help!
My pleasure.
I have to admit that part of my problem is that I have no idea what to do with your data once I retrieve it from your ‘waveform.csv’ file, since I can’t reconcile it with your code.
For anyone else who has some ideas, the column titles are:
Delay ps;Reference;Amplitude nA
The data extraction code that I used:
[d,s,r] = xlsread('Ryan waveform.csv');
scell = s(2:end);
svct = regexp(scell, ';', 'split');
smtx = cellfun(@(x) x(1:3), svct, 'Uni',0);
for k1 = 1:size(smtx,1)
Data(k1,:) = str2double(svct{k1}(1:3));
end
This imports the data correctly.
Ryan
Ryan am 5 Sep. 2016
Thanks for your kind help! However, I do not think data extraction is the reason that caused wrong calculations since expected and calculated charts of spectrum magnitudes are similar, which requires correct data. By the way, I still think it is due to wrong phase calculations. Thanks and Regards!
Star Strider
Star Strider am 5 Sep. 2016
My pleasure.
The data extraction step and code is to help anyone who has the necessary background to understand what you’re doing without the extra explanation that I require.
Ryan
Ryan am 5 Sep. 2016
Oh. Thanks!

Melden Sie sich an, um zu kommentieren.

tsz ki liu
tsz ki liu am 9 Jan. 2019

0 Stimmen

do you have slove your problem Ryan ?
add my email ken117702@gmail.com

Kategorien

Mehr zu Chemistry finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 1 Sep. 2016

Kommentiert:

am 18 Nov. 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by