首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何切断所需的信号?

如何切断所需的信号?
EN

Stack Overflow用户
提问于 2022-11-17 15:21:40
回答 1查看 33关注 0票数 0

我需要你的指导,我如何可以削减信号,并保持我想要的部分信号只。我有一个生理信号。我只想保持信号的一部分,当它上升(1.5秒),停止大约2.5秒。移除信号的开始和结束。我是附加信号图像和用于生成它的代码。请你指导我如何做到这一点,或者有任何Matlab代码可以做吗?期待您的回音。谢谢

代码语言:javascript
复制
cd 'D:\Research\TFR classification\DATI'
filenames=dir('*.txt');
Fs=500;
TextSize=24;
time_FIF=zeros(1,length(filenames));
for i= 24 %length(filenames)
%% Signal
%close all

fprintf(['\n\n\n *******************************************\n\n'...
    '         CODICE data set = ' filenames(i).name(1:end-4) '\n\n'...
    '         We are  assuming a sampling rate of 500 Hz\n\n'...
    ' *******************************************\n\n'])
%% Import data from text file
opts = delimitedTextImportOptions("NumVariables", 25);
% Specify range and delimiter
opts.DataLines = [1, Inf];
opts.Delimiter = "\t";
% Specify column names and types
opts.VariableNames = ["Var1", "Var2", "Var3", "Var4", "Var5", "Var6", "Var7", "Var8", 
"Var9", "Var10", "Var11", "Var12", "Var13", "Var14", "Var15", "Var16", "Var17", "Var18", 
"Var19", "Var20", "Var21", "Var22", "Var23", "VarName24", "Var25"];
opts.SelectedVariableNames = "VarName24";
opts.VariableTypes = ["string", "string", "string", "string", "string", "string", 
"string", "string", "string", "string", "string", "string", "string", "string", 
"string", "string", "string", "string", "string", "string", "string", "string", 
"string", "double", "string"];
% Specify file level properties
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
% Specify variable properties
opts = setvaropts(opts, ["Var1", "Var2", "Var3", "Var4", "Var5", "Var6", "Var7", "Var8", 
"Var9", "Var10", "Var11", "Var12", "Var13", "Var14", "Var15", "Var16", "Var17", "Var18", 
"Var19", "Var20", "Var21", "Var22", "Var23", "Var25"], "WhitespaceRule", "preserve");
opts = setvaropts(opts, ["Var1", "Var2", "Var3", "Var4", "Var5", "Var6", "Var7", "Var8", 
"Var9", "Var10", "Var11", "Var12", "Var13", "Var14", "Var15", "Var16", "Var17", "Var18", 
"Var19", "Var20", "Var21", "Var22", "Var23", "Var25"], "EmptyFieldRule", "auto");
opts = setvaropts(opts, "VarName24", "DecimalSeparator", ",");
% Import the data
s = readtable(filenames(i).name, opts);
s = table2array(s);
s = s(1420:3358);
%s = s(4.1*Fs:7.4*Fs);
%% Clear temporary variables
clear opts
%%    
Fig=figure;
plot((1:length(s))/Fs,s,'k')
xlabel('time (s)')
title(['Signal ' filenames(i).name(1:end-4)])
set(gca,'fontsize', TextSize);
set(Fig,'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-17 15:51:37

你已经策划了

代码语言:javascript
复制
x=(1:length(s))/Fs;
plot((1:length(s))/Fs,s,'k');

所以您可以使用这样的方法在1.5到2.5秒之间进行过滤

代码语言:javascript
复制
idx = (x>=1.5) & (x<=2.5);
x_cut = x(idx);
s_cut = s(idx);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74477939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档