资源简介

用于信号处理,频域积分比时域积分更为准确有用。程序中为仿真信号,可以根据个人需要替换其他数据进行分析处理。

资源截图

代码片段和文件信息

clear;
close all;
clc;

%振动信号输入
% Data=load(‘D:\我的文档\Tencent Files\396835653\FileRecv\Sample_data.mat‘);
% x=Data.Sample_data(:1);  %加速度信号
% fs=Data.sample_rate;
% % 计算输入数据的长度
% n=length(x);
% % 建立时间向量
% t=0:1/fs:(n-1)/fs;

% % % 仿真信号验证
fs = 1024;
n= 2048;
t = 0:1/fs:(n-1)/fs;
fz=100+20*t;
x=10*cos(2*pi*(100*t+10*t.^2));
% x=10*cos(2*pi*100*t);
% z=10./(2*pi*(100+20*t));
x_=10./(2*pi*(100+20*t)).*sin(2*pi*(100*t+10*t.^2));
x=x‘;

Num=1;%一次积分
fmin=3;         % 最小截止频率
fmax=fs/2-3;         % 最大截止频率
% FFT 变换
y1=fft(xn);
% 计算频率间隔
df=fs/n;
% 计算指定频带对应频率数组的下标
ni=round(fmin/df+1);
na=round(fmax/df+1);
% 计算原频率间隔
dw=2*pi*df;
% 建立正的离散原频率向量
w1=0:dw:2*pi*0.5*fs;
% 建立负的离散原频率向量
w2=-2*pi*(0.5*fs-df):dw:-dw;
% 将正负付给一个数组
w=[w1w2]‘;
w=w.^Num;
% 进行积分的频域变换
a=zeros(n:1);
a(2:n-1)=y1(2:n-1)./w(2:n-1);
if Num == 2
%进行二次积分的相位变换
   y=-a;
else
%进行一次积分的相位变换
a1=imag(a);
a2=real(a);
i=(-1)^0.5;
y=a1-a2*i;
end
% % 进行一次积分的相位变换
% a1=imag(a);
% a2=real(a);
% i=(-1

评论

共有 条评论