将时域信号转换为频域信号
91(30天)
显示旧的评论
neamah al-naffakh
2016年8月18日
你好,我代表3轴的加速度数据(x, y, z)在时域图所示
我想从加速度数据提取一些测量(例如,意思是,能量、熵和关联)在频域。因此,我申请
FFT
变换为了将时域信号转换为频域信号。
xx = fft (x_Segments {1});
情节(xx)
yy = fft (y_Segments {1});
情节(yy)
zz = fft (z_Segments {1});
情节(zz)
然而,导致图表毫无意义(非常奇怪),预计不会! !这是一个例子的频域信号的轴。
x_Segments要注意,y_Segments, z_Segments包含数据的X, Y, Z轴
图我们可以看出没有意义,所以,有什么,我应该遵循的步骤之前使用FFT函数得到预期的频域信号?
我真的很感激你的帮助。谢谢
0评论
接受的答案
明星黾
2016年8月18日
52岁的评论
neamah al-naffakh
2016年8月19日
亲爱的明星黾,我用这个
Y = fft (x)
这相当于
xx = fft (x_Segments {1});
x_Segments {1}
我的时域信号吗
xx
我是频域必用另一个吗?谢谢你的帮助。的问候。
明星黾
2016年8月19日
neamah al-naffakh
2016年8月21日
编辑:neamah al-naffakh
2016年8月21日
我真的感激你的帮助波形的步骤,我做了下面的图表,请让我知道如果有任何评论或修正从你身边
情节(X_Segments {1})
标题(噪声信号的);
包含(“样本”);
ylabel (“振幅”);
%情节大小信号的频谱
X_mags = abs (fft (X_Segments {1}));
图(2)
情节(X_mags)
包含(“DFT垃圾箱”);
ylabel (“级”)
图(3)
num_bins =长度(X_mags);
情节([0:1 / (num_bins / 2 - 1): 1], X_mags (1: num_bins / 2))
包含(的正常频率(\π拉德/样本))
ylabel (“级”)
问候
明星黾
2016年8月21日
你的
图(3)
在我看来本质上是正确的。我只有你的原始时域信号的情节,不是信号本身。
唯一的变化我将倍增
“X_mags”
通过
2 /长度(X_Segments {1})
正常化的片面的振幅和能量的信号。
neamah al-naffakh
2016年8月21日
亲爱的明星黾,谢谢你,你是太好了。你的意思是这样吗?如果没有,你能帮我请纠正,因为我不太syre你是什么意思?
情节(X_Segments {1})
标题(噪声信号的);
包含(“样本”);
ylabel (“振幅”);
然后
%情节大小信号的频谱
X_mags = abs (fft (X_Segments {1}));
图(2)
情节(X_mags)
包含(“DFT垃圾箱”);
ylabel (“级”)
X_mags = X_mags *(2 /长度(X_Segments {1}));
图(3)
num_bins =长度(X_mags);
情节([0:1 / (num_bins / 2 - 1): 1], X_mags (1: num_bins / 2))
包含(的正常频率(\π拉德/样本))
ylabel (“级”)
明星黾
2016年8月21日
我的荣幸。
我要做的变革
图(3)
是:
情节([0:1 / (num_bins / 2 - 1): 1], X_mags (1: num_bins / 2) * 2 /长度(X_Segments {1}))
neamah al-naffakh
2016年8月21日
亲爱的明星黾,你是如此有用,谢谢先生。先生,现在下一步是衡量(意思是,能源、熵和关联)在频域中,我使用这个矩阵
(X_mags)
,我计算这个函数
X_mags = abs (fft (X_Segments {1}));
或者我应该使用这个吗?
X_mags = X_mags *(2 /长度(X_Segments {1}));
希望我不打扰你和我的问题把。
明星黾
2016年8月21日
我的荣幸。
任何统计你的信号,如自相关、互相关,熵,剩下的,你可能需要整个时域信号。(我不确定度量您正在使用或如何计算它们。)
我不会使用
fft
结果,尤其是策划
图(3)
,因为策划技术不可逆转地“失去”
75%
你的数据。(你的信号消失了一半,你不能恢复一半的实部和虚部绝对值的情节。)
neamah al-naffakh
2016年8月21日
非常感谢,但我有些困惑,因为如果我应该使用
时域信号
来衡量
(能量、熵和相关性
),那么,什么是转换的好处
时域信号
到
频域信号
吗?
我很抱歉一直问,但是我只是想明白这一点。我想转换
时间域
成
频域
信号(当时我使用频域信号作为输入数组为了计算能量,熵,等等。
明星黾
2016年8月21日
我的荣幸。
这取决于你如何计算你的统计数据,特别是熵和相关性。我使用时域信号的几次我需要这样做。可能会有其他的技术我不知道。
主要的好处将时域信号转换为频域信号频率分量是理解和功率谱密度。(
光谱能量
在信号
fft
当你计算和绘制
图(3)
。的
功率谱密度
的平方)。否则,知道你的信号的频率成分是特别重要的,如果你想设计过滤器。
明星黾
2016年8月25日
neamah al-naffakh评论(二十20 UTC)是重复的
:
亲爱的明星黾,请找到附加的PDF文件。
我已经强调了作者所做的为了他的时域信号转换为频率-域,然后计算幅值在一个特定的频率,但是我不知道如何做到这一点在Matlab ?
数组被称为段是原始数据,你能帮我重建的代码吗?
明星黾
2016年8月25日
我要搬回我们的讨论。
本文似乎相当简单的关于识别“特性”。你首先需要设计一系列的带通滤波器的频率相匹配
4所示。
页
1082年
。有几种方法在MATLAB设计过滤器,relativey简单
designfilt
。(我通常喜欢设计我自己的,我的程序是:
如何设计一个低通滤波器在Matlab海浪数据吗?
)
我会把每个滤波器输出的RMS,本文描述了
3所示。
,连接成一个特征向量。
这就是我理解你突出的部分。
为您的应用程序需要设计滤波器
6
过滤器。如果你附上你的信号矩阵作为样本
.mat
文件,我可以帮你设计你的过滤器和测试它们。你的数据必须包括信号本身
和
一个
时间向量
他们的共同所有。
我理解如果你不想把你的数据网络。如果是这样,我只需要知道你的信号的采样频率。我可以帮你设计你的过滤器,但将无法测试数据。你将不得不这样做。
neamah al-naffakh
2016年8月26日
编辑:neamah al-naffakh
2016年8月26日
亲爱的明星黾,我很高兴与你分享我的数据。让我先向你们解释我的数据是什么样子时附加文件(test2.csv)包含4列,第一坳,第二个坳是x轴的加速度数据,第三坳轴的加速度数据,最后坳包含轴的加速度数据。
2 -第一列在文件(表示时间),您将看到一个repeatation 0 32或31日重复次数等(这意味着我有运动的32个样本数据每秒)
3 - 5分钟的加速度数据(这是收集的速度每秒30 -样品的x, y和z轴)。
4 -为了消除噪音,我设计了低通滤波器为每个轴与特定的截止频率
5 -噪声被移除后,原始加速度数据划分为固定窗口,每个窗口包含10秒的加速度数据在每一部分(约320)。
6 -数据分为段后,我计算一些统计特性,比如(平均值、最小值、最大值等),但这些特性提取时域信号。
7 -我现在需要的是时域转换成频域,然后提取额外的功能(能量、振幅)
8 -我附上了我的代码,请您看一看,我将感激如果你有任何评论或修正的代码。
9 -我要添加注释的代码清晰易懂的。
10 -请检查你的电子邮件,我已经发送一个特殊的请求,并等待你的反应,如果你不介意。
亲切的问候。
明星黾
2016年8月26日
为了对数据做任何有意义的信号处理,它都必须在同一取样常数和恒久的间隔。如果抽样
30 -
样品/秒,这将是简单的最初分配时间矢量采样
1/31
第二。它可能不需要重新取样。
理想情况下,你的采样时间向量应该至少
3
位精度。一位数精度是不够的。
我没有看到你论文引用任何装箱或分割你的数据,但是我没有仔细看。你当然可以加入,如果你想。
我的方法将首先分配一个constant-interval时间向量,然后设计过滤器中提取
6
“特性”。不需要其他任何预处理,因为过滤器本身将去除高频噪声和直流偏移量。
neamah al-naffakh
2016年8月26日
编辑:neamah al-naffakh
2016年8月26日
你好先生,我已经更新了我之前的评论。采样率,有时可以看到应用程序输出每秒33个样本,或32,31日30每秒。
时间间隔,请参阅附上的文件(这是原来没有任何修改)
分段数据,这是我的方法将数据分割成固定段大小(10秒),然后提取一组时域特征和频域特征以用于身份验证的问候。
neamah al-naffakh
2016年8月26日
这是一个例子的分割方法(称为滑动窗口)。你可以看到突出的部分。
我和他们之间唯一的不同我不使用重叠窗口。
顺便问一下,你是对的,我们需要解决采样率。但是我想知道我们可以插入采样率为20,每秒25或30 ?
2 -在附纸,他们强调本(N-Bin直方图),我不知道如何计算它在Matlab为每一段!
3 - MFCC本文最重要的特征,BFCC1 BFCC2。你能帮我提取他们吗?
很多方面和尊重你的回答,我将永远不会忘记你的帮助
明星黾
2016年8月26日
因为你的信号采样,所以很少(约
31.8
样品/分钟),它是必要的,以重新取样频率高到足以允许奈奎斯特频率(即采样信号最高频率的唯一标识)超过你最高的频率滤波器。
这段代码读取数据,创建一个独特的时间向量原始信号,重新取样信号,设计了过滤器(一个平行的银行
6
),过滤你的信号,需要在每个乐队每个信号的均方根值。还策划你的原始信号,重新取样信号,过滤器(通带),伯德图和过滤后的信号。我做我最好的记录内部与评论。(代码是不可能是有效的,因为我在中间步骤来提醒我我做了什么,为什么。它也可以让你更容易理解我所做的)。
代码:
(d s, r) = xlsread (“neamah al-naffakh test2.csv”);
tx = d (: 1);%原“时间”向量
smp_cts = accumarray (tx + 1, - 1);%样本/分钟计数
Sm =性病(smp_cts);
调频=意味着(smp_cts);%的意思是采样频率(样本/分钟)
Fs = Fm / 60;%的意思是采样频率(赫兹)
Fn = f / 2;%奈奎斯特频率
Ts = 1 / f;%采样间隔(秒)
电视= linspace(0,大小(tx, 1),大小(tx, 1)) /调频;%的合成矢量时间(分钟)
电视电视* 60 =;%的合成时间向量(sec)
女性性功能障碍= 15;%所需采样频率(赫兹)
[N、D] =鼠(Fsd / Fs);%整数的值重新采样率
博士=重新取样([d(:, 2:结束),N, d);%重新取样信号“女性性功能障碍”赫兹
tvrm = linspace(0,电视(结束),大小(博士,1));%重新取样的合成矢量时间(分钟)
tvr = tvrm * 60;%重新取样的合成时间向量(sec)
Tsr =意味着(diff (tvr));%重新取样信号采样间隔
Fsr = 1 / Tsr;%重新取样信号采样频率
Fnr = Fsr / 2;% Nyauist重新取样信号的频率
图(1)
情节(电视' d(:, 2:结束)
网格
轴([0 10 1 2])
标题(原始信号的)
图(2)
情节(tvrm ',博士)
网格
轴([0 10 1 2])
标题(重新取样信号的)
BandsMtx = [0.5:5.5;1.5:6.5];%滤波器通频带矩阵
Rp = 1;%通带纹波
Rs = 40;%阻带波动
图(3)
为k1 = 1:尺寸(BandsMtx, 1)%设计过滤器,波德图显示
:Wp = BandsMtx (k1) / Fnr;%正常化通频带
:Ws = (BandsMtx (k1) + (-0.2 - 0.2)) / Fnr;%正常化阻带
[n, Ws] = cheb2ord (Wp、Ws Rp, Rs);%利用切比雪夫II型带通滤波器
[b] = cheby2 (n, Rs, Ws);
(sos {k1}, g (k1)] = tf2sos (b);% Second-Order-Section稳定
身上发生freqz (sos {k1}, 4096年)
如果k1 = = 1
持有在
结束
结束
持有从
为k1 = 1:尺寸(BandsMtx, 1)
乐队{k1} = filtfilt (sos {k1}, g (k1),博士);%过滤信号
RMS_Band k1,: =√(平均(乐队{k1} ^ 2));%计算信号均方根值
结束
图(4)
为k1 = 1:尺寸(BandsMtx, 1)
次要情节(k1)
情节(tvrm乐队{k1})
网格
轴(10 ylim * 0.4 [0])
标题(sprintf (%的乐队。0 f: [%。1 f %。1f] Hz'k1, BandsMtx (k1,:)))
结束
如果你能得到你的时间向量以毫秒为单位,而不是分钟,这将使分析
多
更容易。
neamah al-naffakh
2016年8月26日
明星黾
2016年8月26日
编辑:明星黾
2016年8月27日
我的荣幸。
我不会结束,直到我再也不能给你实质性的帮助。我的知识是有限的,专业知识和时间,所以提供我们仍在这些限制,我将帮助。
请与我的代码。我花了几个小时来设计向量的时间你的原始数据,然后重新取样和设计,实现和测试他们的过滤器。我的代码的工作方式,并应提供你所需要的东西。
我将探讨MFCC的纸,BFCC1 BFCC2之后,和让你知道如果我能帮助你。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
编辑-
2016年8月27日14:43 UTC
mel-cepstral和bark-cepstral分析领域我不愿意探索。但是还有在线资源引用
[11]
本文由镍、
et al。
,特别是
繁殖的特性输出使用Matlab和melfcc.m常见的项目
和
PLP和拉斯塔(MFCC和反演)使用melfcc Matlab。m和invmelfcc.m
。我鼓励你去探索它们。由于代码已经编写的,所有您需要做的是理解它们是如何工作和如何使用它们。(稍后我书签给我参考,探索当我有时间。)
neamah al-naffakh
2016年8月27日
编辑:neamah al-naffakh
2016年9月10日
你好先生,请不要难过这评论:(。
虽然你已经记录您的代码但我不懂! !和不懂你想做什么?
让我解释一些点
1 - (test2.csv)是时间的第一列向量秒不分钟(例如,所有的记录都记录在一个第二,尤其是第二个16)看到这一点
2 -正试图做这段代码,为什么?
% smp_cts = accumarray (tx + 1, - 1);%样本/分钟计数
Sm =性病(smp_cts);
调频=意味着(smp_cts);%的意思是采样频率(样本/分钟)
Fs = Fm / 60;%的意思是采样频率(赫兹)
Fn = f / 2;%奈奎斯特频率
Ts = 1 / f;%采样间隔(秒)
3 -你想做什么?
电视= linspace(0,大小(tx, 1),大小(tx, 1)) /调频;%的合成矢量时间(分钟)
电视电视* 60 =;%的合成时间向量(sec)
女性性功能障碍= 15;%所需采样频率(赫兹)
[N、D] =鼠(Fsd / Fs);%整数的值重新采样率
博士=重新取样([d(:, 2:结束),N, d);%重新取样信号“女性性功能障碍”赫兹
tvrm = linspace(0,电视(结束),大小(博士,1));%重新取样的合成矢量时间(分钟)
tvr = tvrm * 60;%重新取样的合成时间向量(sec)
Tsr =意味着(diff (tvr));%重新取样信号采样间隔
Fsr = 1 / Tsr;%重新取样信号采样频率
Fnr = Fsr / 2;
——首先,我想设计一个滤波器消除噪声过滤信号从原始数据和存储在一个数组中。
B -因为数据记录在不同的采样率(如有时我得到32、33、31日,每秒30样品或值,我想修复每秒采样率等30个样本)。
我们先做这个,然后我要去下一个问题
让我知道如果你还愿意继续讨论
和我的尊重
明星黾
2016年8月27日
1。
你的数据采样
31日
次
一分钟
,约
0.6
赫兹。我重新取样
15
赫兹,因为你的过滤器是上限
6.5
赫兹。这意味着你需要一个至少的奈奎斯特频率
13
赫兹。
2。
的
accumarray
定期调用一个简单的方法,看看你的数据采样。例如第一分钟
32
样品,和一些其他人
31日
。这给了我一个想法的时间向量应该是什么,这样我就能重建之前重新采样。
3所示。
这部分的代码创建了一个正确的时间向量为原始数据(以秒为单位),重新取样数据,然后重新计算一次向量resampled数据。块(
图(1)
和
图(2)
)证明这样做是正确的。
4所示。
详细描述:
一个。
一个单独的滤波器去除高频噪声和基线漂移是没有必要的。第一篇论文将信号划分为你提供
6
乐队,每个单独带通滤波器消除基线漂移和高频噪声。
这段代码设计这些过滤器和情节的特点:
BandsMtx = [0.5:5.5;1.5:6.5];%滤波器通频带矩阵
Rp = 1;%通带纹波
Rs = 40;%阻带波动
图(3)
为k1 = 1:尺寸(BandsMtx, 1)%设计过滤器,波德图显示
:Wp = BandsMtx (k1) / Fnr;%正常化通频带
:Ws = (BandsMtx (k1) + (-0.2 - 0.2)) / Fnr;%正常化阻带
[n, Ws] = cheb2ord (Wp、Ws Rp, Rs);%利用切比雪夫II型带通滤波器
[b] = cheby2 (n, Rs, Ws);
(sos {k1}, g (k1)] = tf2sos (b);% Second-Order-Section稳定
身上发生freqz (sos {k1}, 4096年)
如果k1 = = 1
持有在
结束
结束
持有从
这段代码过滤器
3
信号到六个乐队并将它们存储单元阵列
“乐队”
为每个乐队,一个细胞,计算每个乐队的RMS值并将其存储在
“RMS_Band”
:
为k1 = 1:尺寸(BandsMtx, 1)
乐队{k1} = filtfilt (sos {k1}, g (k1),博士);%过滤信号
RMS_Band k1,: =√(平均(乐队{k1} ^ 2));%计算信号均方根值
结束
如果你想要做的只有一个过滤器,决定你想包括频率信号,并使用滤波器设计过程在我的循环(但没有循环既然你只设计一个过滤器)指定通频带。(我没有看到任何在你的信号噪声,只有我将考虑正常运动。)
过滤器我重新取样信号,不是你的原始信号,因为你的原始信号是undersampled。
注意,上面的带通滤波器的通带只限于最多
7.4
赫兹。
B。
我已经做了,在原始的和重新取样信号。
C。
D。
你可以在我的重新取样数据。我的数据重新取样的频率
15
赫兹(样本/秒)。
E。
你可以在我的重新取样数据。
F。
另纸你发布建议使用一个支持向量机分类。万博1manbetx(我还发现和发布的来源mel-cepstral分析MATLAB程序。)我分类脑电图数据但不是最近。分类是很复杂的,我不愿意进入。
neamah al-naffakh
2016年8月28日
编辑:neamah al-naffakh
2016年8月28日
你好先生,很抱歉打扰你,先生,看来我使你困惑。
请参阅附上的文件(第一列,它
日期时间
它的形式吗
小时,分,秒
(从这个10:34:16点开始)
10小时,34分钟,16——第二
可以看到,数据记录在一个采样率之间以每秒不是最小值!
现在,忘记附加的纸让我一步一步向你解释,先生,你如果你不想帮助,因为我知道我打扰你这么多
1 -对我的原始数据预处理的第一步,我想线性插入数据为了得到一个固定的采样率(如。30样品/秒),如果可能的话,你能写代码中的注释来帮助我如果我想改变采样率为每秒20或40样品?因为我想测试多个设置采样率和选择最好的。
2 -插值后,我想设计一个滤波器消除噪声的原始数据,并将过滤后的信号存储在一个数组(请确保数组,其中包含过滤数据,有四列(第一列包含在第二个,第二个,第三和第四列包含的数据x, y, z轴)
我们可以先做这两个步骤,忽略,我发送好吗?
很多问候,抱歉我给你造成的不便
和我的尊重
明星黾
2016年8月28日
第一个记录你连接(如
test2.csv
)没有任何明显的时间向量。我不知道基地的时候,我以为分钟。
有
32
相同的价值观
10:34:16点
。这意味着第一个第二个信号采样
32
次了。你的整个信号的平均采样频率
31.85
赫兹,或者每一个样本
0.031
秒。
我重新取样信号
45
赫兹,因为这使得滤波器的设计变得更加容易。(我还测试了
30.
赫兹,和其他几个频率,
15
赫兹以上。它运行没有错误。)您可以指定:
女性性功能障碍= 30;
和代码将运行并给出了正确的结果。
请注意,由于滤波器通频带,
15
赫兹
是最低的可用的采样频率。
重新定义的代码(否则基本上不变)时基:
(d s, r) = xlsread (“neamah al-naffakh test2.csv”);
tx = d (: 1);%原“时间”向量
smp_cts = accumarray (tx + 1, - 1);%样本/秒数
Sm =性病(smp_cts);
调频=意味着(smp_cts);%的意思是采样频率(样本/秒)
Fs =调频;%的意思是采样频率(赫兹)
Fn = f / 2;%奈奎斯特频率
Ts = 1 / f;%采样间隔(秒)
电视= linspace(0,大小(tx, 1),大小(tx, 1)) /调频;%的合成时间向量(sec)
女性性功能障碍= 45;%所需采样频率(赫兹)
[N、D] =鼠(Fsd / Fs);%整数的值重新采样率
博士=重新取样([d(:, 2:结束),N, d);%重新取样信号“女性性功能障碍”赫兹
tvr = linspace(0,电视(结束),大小(博士,1));%重新取样的合成时间向量(sec)
Tsr =意味着(diff (tvr));%重新取样信号采样间隔(秒)
Fsr = 1 / Tsr;%重新取样信号采样频率(赫兹)
Fnr = Fsr / 2;%重新取样信号Nyauist频率(赫兹)
图(1)
情节(电视' d(:, 2:结束)
网格
轴([0 10 1 2])
标题(原始信号的)
图(2)
情节(tvr)博士
网格
轴([0 10 1 2])
标题(重新取样信号的)
BandsMtx = [0.5:5.5;1.5:6.5];%滤波器通频带矩阵
Rp = 10;%通带纹波
Rs = 40;%阻带波动
图(3)
为k1 = 1:尺寸(BandsMtx, 1)%设计过滤器,波德图显示
:Wp = BandsMtx (k1) / Fnr;%正常化通频带
:Ws = (BandsMtx (k1) + (-0.3 - 0.3)) / Fnr;%正常化阻带
[n, Ws] = cheb2ord (Wp、Ws Rp, Rs);%利用切比雪夫II型带通滤波器
[b] = cheby2 (n, Rs, Ws);
(sos {k1}, g (k1)] = tf2sos (b);% Second-Order-Section稳定
身上发生freqz (sos {k1}, 4096年)
如果k1 = = 1
持有在
结束
结束
持有从
为k1 = 1:尺寸(BandsMtx, 1)
乐队{k1} = filtfilt (sos {k1}, g (k1),博士);%过滤信号
RMS_Band k1,: =√(平均(乐队{k1} ^ 2));%计算信号均方根值
结束
图(4)
为k1 = 1:尺寸(BandsMtx, 1)
次要情节(k1)
情节(tvr乐队{k1})
网格
轴(10 -0.5 - 0.5 [0])
标题(sprintf (%的乐队。0 f: [%。1 f %。1f] Hz'k1, BandsMtx (k1,:)))
结束
neamah al-naffakh
2016年8月28日
编辑:neamah al-naffakh
2016年8月28日
你好先生,谢谢你。
现在我要通过你的代码,我理解你在代码的第一部分。
我想很容易的你和我,如果我问一个问题时,防止误解,
所以我想知道上面的代码re-sample我的数据在一个固定利率和设计了一个过滤器来消除噪声的信号吗?或者做其他的事情吗?
因为我想忘记作者做了什么在他的论文,我想按照我的方法,你帮助我很多在re-sample数据。
的问候。
许多人的尊重
明星黾
2016年8月28日
我的荣幸。
你需要重新取样信号采样频率更高,如果你想使用一个滤波器的通带和阻带频率
15
赫兹。如果你使用我的代码,您不需要使用一个单独的过滤去除基线漂移或基线偏移或高频噪音。的
“乐队”
过滤器做自己。
如果你想创建一个单独的过滤器,您可以使用滤波器设计过程我用来设计带过滤器的循环。使用
fft
你的信号决定通带和阻带。设计过滤器,您可以更改代码,以使用这些作业:
[n, Ws] = cheb2ord (Wp、Ws Rp, Rs);%利用切比雪夫II型带通滤波器
[b] = cheby2 (n, Rs, Ws);
(sos, g) = tf2sos (b);% Second-Order-Section稳定
freqz (sos、4096 Fs)% ' f '是你的信号的采样频率
然后过滤信号:
FilteredSignal = filtfilt (sos、g、信号);%过滤信号
你要决定什么通频带,
Wp
阻带,
Ws
频率。我将开始使用值
Rp
和
Rs
,尽管你可能想要试验他们。
neamah al-naffakh
2016年9月4日
你好先生,我希望你是好的。
正如你知道我已经把行数据分为段,每一段含有300值了。
我想计算10-Bin-Histogram对于每个部分,他们中的一些人称之为被分配。
简单的描述一下
确定每个轴的范围值(最大值-最小值),这个范围划分为10个相等大小的箱子,然后记录300的分数值,属于每一个垃圾箱。
我真的很感谢你的帮助!
我做的,但似乎不正确
hist_arr_x {nn, 1} = histcounts (X_Segments 10);
hist_arr_y {nn, 1} = histcounts (Y_Segments 10);
hist_arr_z {nn, 1} = histcounts (Z_Segments 10);
请注意
X_Segments
,包含300 X的值
Y_Segments
,包含300 Y的值
Z_Segments
包含300 Z值
明星黾
2016年9月4日
代码看起来是正确的对我。如果你想知道箱子的边缘,你必须要求他们:
[hist_arr_x {nn}, edges_x {nn}] = histcounts (X_Segments 10);
明星黾
2016年9月4日
但这段代码满足10-Bin-histogram的描述的
它的功能。
例子:
x =兰迪(99,300);%创建数据
[cts, edg] = histcounts (x, 10);%直方图统计&边缘
cts_size =元素个数(cts)%确定数量的垃圾箱
bin_ctrs = edg (1: end-1) + (diff (edg)) / 2%计算本中心(图)
cts_size =
10
bin_ctrs =
5 15 25 35 45 55 65 75 85 95
neamah al-naffakh
2016年9月4日
好的先生,
现在,我明白了你的意思,但是每个部分都有不同的优势!例如,* segment1 * (min = 0, max = 1.4),
segment2
(最小值= 0.7,max = 1.3)。我想修复所有段的范围(最小和最大)。
然后计算
10-Bin-Histogram
对于每一个部分。
neamah al-naffakh
2016年9月5日
你好先生,我计算所有片段(Min-Max)的边缘,和它们之间的距离
0.56到1.41
(
最小边缘
是0.56,
最大优势
是1.41)
可以指定指定10-Bin边缘。如何?
明星黾
2016年9月5日
你指定
11
本边去
10
垃圾箱,
histcounts
。最简单的方法是使用
linspace
功能:
bin_edges = linspace (0.56, 1.41, 11);
neamah al-naffakh
2016年9月14日
亲爱的先生,谢谢你的支持万博1manbetx
我有固定的时间戳在我的应用程序(所以现在收集的数据以毫秒为单位)。因此,这意味着我有不同的时间向量或时间戳以毫秒为单位(见附件)。
我想知道如果我们可以重新取样数据30 Hz利用你以前的代码?因为当我运行您的代码我得到这个错误。
*错误使用accumarray要求1460000000001 x1 (10877.8 gb)数组超过最大数组大小的偏好。
创建数组超过这个极限可能需要很长时间,导致MATLAB变得反应迟钝。有关更多信息,请参见数组大小限制或首选项面板。
错误在AccGyr(4号线)
smp_cts = accumarray (tx + 1, - 1);
*
我们能改变在这段代码中以使其正确运行附带的文件?
% (d s, r) = xlsread (“test2.csv”);% (d)包含原始数据
tx = d (: 1);%原“时间”向量
smp_cts = accumarray (tx + 1, - 1);%样本/秒数
Sm =性病(smp_cts);
调频=意味着(smp_cts);%的意思是采样频率(样本/秒)
Fs =调频;%的意思是采样频率(赫兹)
Fn = f / 2;%奈奎斯特频率
Ts = 1 / f;%采样间隔(sec)意味着多少秒记录一个样本
电视= linspace(0,大小(tx, 1),大小(tx, 1)) /调频;%的合成时间向量(sec)(创造新{不同}矢量)
% Fsd = 30;%所需采样频率(赫兹)
[N、D] =鼠(Fsd / Fs);
博士=重新取样([d(:, 2:结束),N, d);%(博士)(data_re-sampled)包含数据重新取样后的新女性性功能障碍的赫兹(新采样率)
tvr = linspace(0,电视(结束),大小(博士,1));%重新取样的合成时间向量(sec)
Tsr =意味着(diff (tvr));%重新取样信号采样间隔(秒)
Fsr = 1 / Tsr;%重新取样信号采样频率(赫兹)的采样率30
Fnr = Fsr / 2;
% tvr = tvr ';
sampled_arr (: 1) = tvr ';% tvr (time_vector_re-sampled)新的时间向量
sampled_arr(: 3:5) =博士;% (data_re-sampled)新博士重新取样数据,
neamah al-naffakh
2016年9月15日
明星黾
2016年9月15日
我们仍然有一个问题。的时间戳并不是唯一的。第一个
5
成排的Excel文件中的数据是:
data =
列1到3
1470000000000南-0.022460938
1470000000000南-0.013183594
1470000000000南-0.016601563
1470000000000南-0.006835938
1470000000000南-0.05810547
列4到5
-0.7216797 - -0.7331543
-0.6218262 - -0.72021484
-0.6052246 - -0.685791
-0.5644531 - -0.7246094
-0.5559082 - -0.68408203
的
“DateTime”
字符串不是独特的。我和原来的Excel文件检查,没有变化,没有截断任何数量的进口。
那里似乎没有任何重大的变化数据。
明星黾
2016年9月15日
太棒了!
现在《纽约时报》绝对是独一无二的。当我打印第一
5
行,我得到了:
时间=
1.473948671396000 e + 12
1.473948671464000 e + 12
1.473948671478000 e + 12
1.473948671529000 e + 12
1.473948671546000 e + 12
第一列是毫秒,正确吗?所以我们要把第一列
1 e15汽油
秒。当我这么做的时候,我得到的采样频率
30 e + 12
赫兹,这似乎有点高。
我需要了解你的时间是在我单位更进一步。
明星黾
2016年9月16日
我的荣幸。
我们真的需要知道时间单位。有几个不同的时间系统的电脑,所以知道将帮助。例如,什么时候时间参考(什么时候开始时间
= 0
)?一个
datetime
对象可能会使时间换算琐碎,或者我们可能需要编写代码来执行转换。
更多的答案(2)
马塞尔
2016年8月24日
提示:在matlab绘制(fft (y))将情节只有真正的频谱的一部分通过忽略虚值在每个频率的样本。你可能做的DFT天真地绘制频谱的振幅或相位即情节(abs (fft (y)))等。你可能想要寻找pwelch或相应的周期图你想要什么(PSD ....)。
8的评论
neamah al-naffakh
2016年8月25日
你好马塞尔,我试图计算大小,阶段,和能源可以计算频域的大小
XR是真正的一部分而XR是虚部信号。
所以,我用这段代码,
1 - FD_Signal_XYZ = fft(段);%将时域转换为频域
2 - magnitude_XYZ = abs (FD_Signal_XYZ);%测量Ampltiude在频信号
3-phase_XYZ =打开(角(FD_Signal_XYZ {1}));
4-Energy_XYZ = (FD_Signal_XYZ) ^ 2;
5-total_Energy_XYZ =总和(Energy_XYZ);
howeover,大小和相位的输出值多少?我想买一个值为他们选定的频率信号。
许多的问候。
明星黾
2016年8月25日
每一个在Fourier-transformed信号频率
单
大小和相位。
“能源”在一个特定的频率
振幅
信号的频率。这一行代码中计算
权力
(振幅的平方)在每个频率:
Energy_XYZ = (FD_Signal_XYZ) ^ 2;
如果你想要的直流等效的能量
整个
信号,把整个信号的均方根值:
RMS_Amplitude =√意味着段。^ 2));
相当于直流功率的平方:
RMS_Power = RMS_Amplitude ^ 2;
neamah al-naffakh
2016年8月25日
编辑:neamah al-naffakh
2016年8月25日
亲爱的明星黾,你总是有帮助的,所以我非常感谢。
我很抱歉又问,但是让我问你一些问题与答案有关
1:你的意思是我应该计算时域信号的能量(存储在数组中
段
没有输出
FFT
功能)?
如果是的,事实上,我已经calculted时域信号的均方根但我想计算一些频域信号的测量
由直流电源2 -你什么意思?
明星黾
2016年8月25日
我的荣幸。
1。
是的。似乎你已经计算每个频率的能源和电力在你Fourier-transformed频域信号。
2。
如果你纠正和过滤一个交流信号(a - c),相当于平均能量是a - c信号的均方根值。这是直流(直流)等价的能量。直流电源是直流能量的平方。
至少,这就是我如何学习。
neamah al-naffakh
2016年8月25日
亲爱的明星黾,请找到附加的PDF文件。
我已经强调了作者所做的为了他的时域信号转换为频率-域,然后计算幅值在一个特定的频率,但是我不知道如何做到这一点在Matlab ?
数组被称为段是原始数据,你能帮我重建的代码吗?
RAUNAK古普塔
2017年10月15日
编辑:沃尔特·罗伯森
2021年11月21日
请帮我我想灯.....设计音频控制情绪在which I have to record an real time audio data in matlab and interfacing it with microcontroller I have to control light.....HOW to convert a real time audio data in frequency domai?please help me with the code
matlab代码
清晰的所有;clc;
rec = audiorecorder(1) 8000年,8日;
ard = arduino (“com4为”);
一个=输入(“按1开始记录\ n”);
recordblocking (rec, 20);
data = getaudiodata (rec);
玩(rec);
情节(数据);
Fs = 8000;
N =长度(数据);
datafft = fft(数据);
datafft_abs = abs (datafft / N);
datafft_abs = datafft_abs (1: N / 2 + 1);
f = f * (0: N / 2) / N;
arduin (ard f);
图;
情节(f, datafft_abs);
clearvarsard;
arduin函数
函数[]= arduin(频率)
%这是自我功能。
使用arduino %这个函数了。
%这个函数床位数的led根据频率。
fr = 2;% Frequnecy设置为红灯
fb = 3;% Frequnecy为蓝光被设置
configurePin (,D8的);
configurePin (,“D9”);
configurePin (,“D13”);
为i = 1:长度(频率)
f =频率(我);
如果(f < fr)
disp (“红色”);
writeDigitalPin (,“D9”,0);
writeDigitalPin (,“D13”,0);
writeDigitalPin (,D8的1);
其他的
如果(f < = fb) & & (f = fr)
disp (“绿色”);
writeDigitalPin (,D8的,0);
writeDigitalPin (,“D13”,0);
writeDigitalPin (,“D9”1);
其他的
如果(f > =神奇动物)
disp (“蓝”);
writeDigitalPin (,“D9”,0);
writeDigitalPin (,D8的,0);
writeDigitalPin (,“D13”1);
其他的
disp (频率的范围的);
writeDigitalPin (,D8的1);
writeDigitalPin (,“D9”1);
writeDigitalPin (,“D13”1);
结束
结束
结束
结束
0评论
一个错误发生
无法完成的行动,因为页面所做的更改。重新加载页面更新状态。
你也可以从下面的列表中选择一个网站
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。