在MATLAB中根据信号数据计算频率

时间:2017-05-24 20:10:25

标签: matlab signal-processing frequency-analysis

我有来自加速计传感器的数据 这是我信号的一个例子 enter image description here

第一步我将数据划分为段(每个段有300个值),所以我总共有 10个段

我需要找到每个段的频率,这意味着我将有10个值(每个值代表特定段的频率)。

到目前为止我已经使用了这段代码

function getTasks(entries) {
    // get all unique task_id values from the entries array
    const taskIds = Array.from(new Set(entries.map(entry => entry.day_entry.task_id)));
    const taskRateMap = new Map();

    // use Promise.all() to know when the whole array of promises is done
    // use tasksIds.map() to build an array of promises
    return Promise.all(taskIds.map(taskId => {
        // make this promise be the return value inside the .map() callback
        // so we will end up with an array of promises that will be passed to
        // Promise.all()
        return getTask(taskId).then(res => {
            if (res.task.id === taskId) {
                taskRateMap.set(taskId, res.task.default_hourly_rate);
            }
        })
    })).then(() => {
        // make final resolved value be the taskRateMap
        return taskRateMap;
    });
}

getTasks(entries).then(taskRateMap => {
    // use taskRateMap here
});

如果我的代码是正确的,那么找到每个段的频率的下一步是什么?

如果没有,请你帮我确定每个片段的频率!

1 个答案:

答案 0 :(得分:0)

frequency = (indexMax - 1)/N * Fs

N = number of points used to calculate your fft
Fs = sampling frequency of your signal