《机械测试信号处理》实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《机械测试信号处理》实验报告

一、 实验目的

1. 掌握数字信号处理的基本方法,设计程序实现信号自相关函数的计算。

2. 巩固数字信号滤波的原理和方法,掌握基本的数字滤波器设计方法。

3. 巩固数字信号滤波的原理和方法,掌握基本的数字滤波器设计方法。

二、 实验内容

1. 设计程序实现给定振动信号自相关函数的计算。

2. 设计滤波程序,并对给定的振动信号进行滤波(低通)。

3. 根据调制信号的解调原理设计数字信号处理程序,任选一种方法实现对给定调幅信

号的解调或调频信号的解调。

三、 实验原理

1. 信号的自相关函数(无偏估计)的算法

1)直接公式法

∑-=+-=m

N n x m n x n x m N R 1)()(1)(τ

2)间接法(谱密度法)

● 先将x(n)(n=1,2,…,N)增加N 个零点,使x(n)变为2N 项

● 用FFT 法求出x(n)( n=1,2,…,2N)傅立叶变换X(k)(k=1,2,…,2N)。

● 利用公式:G(k)=|X(k)|2/N (k=1,2,…,2N)。

● 对G(k)作IFFT ,得Rx0(r)(r=1,2,…,2N)。

● 取Rx0的前一半(即r=1,2,…,N),乘以N/(N-r),得到Rx(n)(n=1,2,…,N)即为所求。

2. 信号数字低通滤波的算法

● 确定相关的参数(通带频率fp ,波动Ap ,阻带频率fs ,阻带衰减As )。

● 将这些参数归一化,然后利用映射函数及相应的Butterworth 公式得到阶数N 和

截至频率Ωc ,然后利用matlab 的buttap 函数得到模拟低通滤波器的原型H(s)。 ● 利用双线性变化得到数字低通H(z),画出相应的频谱图。

● 使用滤波函数filter 进行滤波,并得到滤波信号图。

3. 信号的Hilbert 解调算法

● 对于调幅信号AM 来说,对原始信号x(n)(n=1,2,…,N)作FFT 得到X(k)

(k=1,2,…,N),其中k =N/2,…,N 对应的是负频率部分。

● 令Z(k)=⎪⎩

⎪⎨⎧=-==N N k N k k X k k X ,...,2/012/,...,2,1)(20)(

● 对Z(k)作IFFT ,得到x(n)的解析信号z(n)。

● 对z(n)进行包络处理即可。

● 对于调频信号FM 来说,就是先对其求导,再应用Hilbert 滤波。

四、 实验数据

1. 轴承的振动信号,文件名为A38.Dat 到A4

2.Dat 。数据长度8k ;采样频率20kHz ;

滤波频率10kHz ;转速n=1600 (r/min)。

2. 调频信号,文件明为AM.dat 。数据长度为2048;采样频率为2kHz ;

3. 调频信号,文件明为FM.dat 。数据长度为2048;采样频率为2kHz ;

五、 实验源程序及处理结果

说明:程序使用的语言是matlab ,除滤波器使用了少量的matlab 专用信号处理函数外,其余都是可以稍加改动即可在别的语言环境下实现的。

1. 自相关函数的源程序

两种算法的程序如下:

1)直接公式法

% the auto-correlation function1

% unbiased

function corr(x)

N=length(x);

x=[x.',zeros(1,N)];

Rx=zeros(1,2*N-1);

for m=-(N-1):(N-1)

for n=1:(N-abs(m))

Rx(N+m)=Rx(N+m)+x(n)*x(n+abs(m));

end

Rx(N+m)=Rx(N+m)/(N-abs(m));

end

i=-(N-1):(N-1);

subplot(2,1,1),

plot(x), xlabel('n'),ylabel('原始信号x'),grid on

subplot(2,1,2),plot(i,Rx), xlabel('m'),ylabel('自相关函数Rx'),grid on 2)功率谱密度法(间接法)

% the auto-correlation function2

function corr2(xt)

N=length(xt);

xt=[xt.',zeros(1,N)];

Xf=fft(xt,2*N);

Xf1=abs(Xf);

Xf1=(Xf1.^2)/N;

Rx0=ifft(Xf1,2*N);

Rx1=Rx0(1:N);

for r=0:N-1

Rx(r+1)=Rx1(r+1)*N/(N-r);

end

plot(abs(Rx)), xlabel('m'),ylabel('自相关函数Rx'),grid on

程序结果如下图(仅以数据A38为例):

分析:上图得到的是原始信号和自相关函数(无偏估计)的对照图,是用第一种方法得到的。其中自相关函数是数据长的是原始数据长度的2倍(从-(N-1)到(N-1)),也可以只得到一半的图(0-(N-1)),因为自相关函数本身就是偶函数,第二种方法算的就是一半的图。

2.数字低通滤波的源程序

Lpfilter.m

% filter design

相关文档
最新文档