我有一个问题,我对此非常感兴趣,假设我在 matlab 中有两个 M 文件,在第一个文件中,我描述了以下用于计算峰值和峰值指数的函数
function [peaks,peak_indices] = find_peaks(row_vector)
A = [0 row_vector 0];
j = 1;
for i=1:length(A)-2
temp=A(i:i+2);
if(max(temp)==temp(2))
peaks(j) = row_vector(i);
peak_indices(j) = i;
j = j+1;
end
end
end
在第二个 M 文件中,我有用于描述给定数据样本的正弦模型的代码
function [ x ]=generate(N,m,A3)
f1 = 100;
f2 = 200;
T = 1./f1;
t = (0:(N*T/m):(N*T))';
wn = rand(length(t),1).*2 - 1;
x = 20.*sin(2.*pi.*f1.*t) + 30.*cos(2.*pi.*f2.*t) + A3.*wn;
end
我的问题是如何将它组合在一起?一个解决方案是在文件夹中创建两个 M 文件,然后从一个 M 文件调用函数并对给定向量进行操作并获得结果,然后从另一个 M 文件调用第二个函数给定结果并最终得到我们想要的,但我想在一个大的 M 文件中构建它,在 c++ 中,在 java 中,我们可以创建类,但我不确定我们是否也可以在 matlab 中做同样的事情,请帮助我澄清一切并使用 find_peaks 函数生成函数
更新: 好的,现在我想展示我在代码中所做的简单更改
function [ x ] = generate(N,m,A3)
f1 = 100;
f2 = 200;
T = 1./f1;
t = (0:(N*T/m):(N*T))'; %'
wn = rand(length(t),1).*2 - 1;
x = 20.*sin(2.*pi.*f1.*t) + 30.*cos(2.*pi.*f2.*t) + A3.*wn;
[pks,locs] = findpeaks(x);
end
我在 matlab 中使用 findpeaks 内置函数,但出现以下错误
generate(1000,50,50)
Undefined function 'generate' for input arguments of type 'double'.
我也很感兴趣避免混叠的有效采样率是多少?