資源簡介
用于信號處理,頻域積分比時域積分更為準確有用。程序中為仿真信號,可以根據個人需要替換其他數據進行分析處理。
代碼片段和文件信息
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
- 上一篇:自適應噪聲抵消LMS算法Matlab仿真
- 下一篇:基于gabor的原子時頻分析程序
評論
共有 條評論