图中每列的山峰一个csv然后用曲线。
9的观点(30天)
显示旧的评论
我在处理一些数据从一个示波器。csv的列代表信号的振幅。我希望看到的画面。我想找到每个信号的峰值,然后画出山峰的函数τ(ms)从0.1和。我还想一条曲线适合每一行后,指数函数y = * e (- x / T1) + c,一个是一个常数(2)发现和T1的曲线。找到T1是策划的最终目标信号。我已经尝试了几种不同的方法:这是我的最新尝试,它没有给我接近我希望:
文件名=' D: \研究生实验室\ NMR \ \ T1数据\ compiledT1nolabel.csv”;
data = readtable(文件名);
日元= table2array(数据(:1));
y2 = table2array(数据(:,2));
y3 = table2array(数据(:,3));
y4 = table2array(数据(:,4));
日元= table2array(数据(:,5));
日元= table2array(数据(:,6));
日元= table2array(数据(:,7));
Fs = 2平台以及;
T = 1 / f;
L = 2500;
t = t (0: l - 1) *;
Fn = f / 2;
Fy1 = fft (y1) / L;
阵线= linspace(0, 1,修复(L / 2) + 1) * Fn;
4 = 1:长度(艘);
图(1)
情节(阵线、abs (Fy1 (Iv)) * 2)
网格
标题(“傅里叶Transfrom矿物油原始信号”)
包含(的频率(赫兹))
ylabel (“振幅”)
Fy1dcoc = fft (y1-mean (y1)) / L;
图(2)
情节(阵线、abs (Fy1dcoc (Iv)) * 2)
网格
标题(直流偏移校正信号的傅里叶变换)
包含(的频率(赫兹))
ylabel (“振幅”)
[Fy1n_max, Iv_max] = max (abs (Fy1dcoc (Iv)) * 2);
Wp = 2 *阵线(Iv_max) / Fn;
Ws = Wp * 2;
Rp = 10
Rs = 30;
[n, n] = buttord (Wp、Ws Rp, Rs);
[b] =黄油(n, Wn);
(SOS, G) = tf2sos (b);
S = filtfilt (SOS, G, y1);
图(4)
情节(t, y1)
持有在
情节(t, S,“- r”,“线宽”,1.5)
持有从
网格
传奇(矿物油的,“年代”,“位置”,“N”)
标题(原始信号的矿物油和未堕落的信号(年代))
包含(“τ(ms)”)
ylabel (“振幅”)
我感谢任何帮助!
![](http://www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/1178633/image.png)
0评论
接受的答案
明星黾
2022年11月3日
没有明显的峰值在时域信号。
做Foureir变换和谱峰很容易找到,但是我不知道如何做形象的情节,因为我不知道如何计算任何变量,它描绘了。独立变量似乎是时间。
数据= readtable (“//www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/1178628/compiledT1.csv”,“VariableNamingRule”,“保存”)
VN = data.Properties.VariableNames;
Fs = 2平台以及;
T = 1 / f;
L = 2500;
t = t (0: l - 1) *;
Fn = f / 2;
y = table2array(数据)
图
情节(t, y)
网格
包含(“时间”)
ylabel (“振幅”)
传奇(VN“位置”,“最佳”)
ydt1 =去趋势(y (: 1), 1);
图
情节(t, ydt1)
网格
包含(“时间”)
ylabel (“振幅”)
标题(VN {1})
[p f t] = pspectrum (ydt1 Fs,的谱图);
图
瀑布(f, t, p ')
包含(的频率(赫兹))
ylabel (的时间(秒))
甘氨胆酸wtf =;
wtf。XDir =“反向”;
colormap(涡轮)
视图(45 [30])
NFFT = 2 ^ nextpow2 (L);
ym = y -意味着(y);
FTy = fft (ym NFFT) / L;
阵线= linspace (0, 1, NFFT / 2 + 1) * Fn;
4 = 1:元素个数(艘);
图
情节(阵线、abs (FTy(四世:))* 2)
网格
包含(“频率”)
ylabel (“级”)
传奇(VN“位置”,“最佳”)
xlim (5 e-12 [0])
[pks1, locs1] = findpeaks (abs (FTy (Iv, 1)) * 2);
图
情节(阵线、abs (FTy (Iv, 1)) * 2,“DisplayName的”,“数据”)
持有在
情节(pks1阵线(locs1),“^ r”,“DisplayName的”,“高峰”)
持有从
网格
包含(“频率”)
ylabel (“级”)
标题(VN {1})
传奇()
%的传说(VN{1},“位置”,“最好”)
xlim (5 e-12 [0])
。
9日评论
明星黾
2022年11月4日
我的荣幸!
我也不理解x轴上的时间值图在你最后的评论。在我的代码,我分配每个峰值x系列0.1毫秒值。这可能不是正确的,但是这就是我解释的
所以对于每个峰值是一个τ(0.1。)
虽然它对我来说没有意义。