随机信号

更新时间:2024-05-28 17:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

随机信号处理

实验报告

专 业: 电子信息科学与技术

班 级: 0312409 学 号: 学生姓名 指导教师: 钱 楷

2014/12/1

一.实验目的

1.熟悉matlab的随机信号处理相关命令。 2.熟悉guide格式的编程及使用。 3.掌握随机信号的简单分析方法。

4.熟悉语音信号的播放、波形显示、均值等的分析方法及其编程。

二、实验原理

1.语音的录入与打开

在MATLAB中,[y,fs,bits]=wavread('Blip',[N1,N2]);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。[N1 N2]表示读取从N1点到N2点的值。

2.自相关函数

设任意两个时刻1t,2t,定义

R(ttX12)?E[X(t1)(t2)]???xx12f(x1,x2,t1,t2)dx1dx2为随机过程X

(t)的自相关函数,简称为相关函数。自相关函数可正,可负,其绝对值越大表示相关性越强。

3. 希尔伯特变换及性质

x(t) 的希尔伯特变换为x(t) 与1/πt 的卷积,即 x(t)?x(t)?^1。因此,对x(t) 的?t希尔伯特变换可以看作为x(t) 通过一个冲击响应为1/πt 的线性滤波器。希尔伯特变换器在整个频域上具有恒为1 的幅频特性,为全通网络,在相位上则引入?π/2 和π/2的相移 。

4.时域信号的FFT分析

FFT即为快速傅里叶变换,是离散傅里叶变换的快速算法,它是根据离散傅里叶变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行改进获得的。在MATLAB的信号处理工具箱中函数FFT的一种调用格式为 y=fft(t)。其中X是序列,Y是序列的FFT。

三.实验结果 1. 原信号:

x=wavread('123.wav'); x=x(15000:35000); plot(x);

2. 求音频信号的对数函数;

x=wavread('123.wav');

y=x(15000:35000); zz=log(y); plot(zz);

3. 求音频信号的指数函数的概率分布函数

x=wavread('123.wav'); x=x(15000:35000); y=exppdf(1,x); plot(y);

4求随机信号的瑞利分布函数

x=wavread('123.wav'); x=x(15000:35000); y=raylcdf(x,1);

plot(y);

5.指数函数的分布函数

x=wavread('123.wav'); x=x(15000:35000); y=expcdf(1,x); plot(y);

6.自相关函数(衡量同一随机过程在任意两个时刻上的随机变量的变化程度)

x=wavread('123.wav'); x=x(15000:35000); y=xcorr(x); plot(y);

7.希尔伯特变换

x=wavread('123.wav'); y=x(15000:35000); yy=hilbert(y); yy=imag(yy); plot(yy);

8.快速傅里叶算法

x=wavread('123.wav'); x=x(15000:35000); zz=fft(x,9000); y=fftshift(zz); m=abs(zz); plot(m);

9.互相关函数

x=wavread('123.wav'); x=x(15000:35000); y=wavread('123.wav'); y=y(15000:35000); z=xcorr(x,y); m=abs(z); plot(m);

10.最大似然估计

y=wavread('111.wav',[1,100000]); x=mle(y);0点的最大似然估计 plot(x,'r');

legend('100点的最大似然估计');

11.IIR高通滤波参数

[y,fs,bits]=wavread('111.wav',[1,100000]); N=2; wc=0.6;

[b,a]=butter(N,wc);%IIR高通滤波参数 x=filter(b,a,y);%滤波函数

m=fft(x,100000);?t转换 n=fft(y,100000);?t转换 h=x+m; plot(h,'b');

title('滤波后的信号');xlabel('取值范围');ylabel('变化情况'); legend('IIR高通滤波后信号频谱');

12.功率谱

x=wavread('123.wav'); x=x(15000:35000); y=fft(x); mag=abs(y);

f=(0:length(y)-1)'*10000/length(y); plot(f,mag);

13.音频播放

[x,Fs,bits]=wavread ('123.wav'); soundsc(x,Fs,bits); plot(x);

14.噪声叠加

x=wavread('123.wav');

x=x(10000:20000);

y=(max(x)/10)*randn(10001,1); z=y+x; plot(z);

15.32的汉民窗函数

[y,fs,bits]=wavread('111.wav',[1,100000]);

x=hamming(32)/32;2的汉民窗函数 s=abs(y);%求幅值

h=conv(s,x);%进行卷积和多项式的乘积 plot(h,'b');

title('均值');xlabel('取值范围');ylabel('变化情况'); legend('32的平均');

16.序列的分布直方图

y=wavread('111.wav');

n=0:100000:300000;%-1到1间隔为0.1取样 hist(y,n);%序列的分布直方图

title('直方分布图');xlabel('取值范围');ylabel('分布情况');

17.IIR低通滤波

y=wavread('111.wav',[1,100000]); x=fft(y,100000); N=20;

wc=0.2;

[b,a]=butter(N,wc);

h=filter(b,a,y);%IIR低通滤波 plot(h,'g');

title('经过IIR低通滤波后');xlabel('取值范围');ylabel('变化情况');

18.随机序列的概率密度估计

[y,fs,bits]=wavread('111.wav',[1,200000]);

[f,xi]=ksdensity(y);%随机序列概率密度的估计 plot(xi,f,'g');

title('概率密度');xlabel('x');ylabel('f(x)'); axis([-2,2,0,1]);

19.产生100期望为0方差为1的高斯变量

y=wavread('111.wav',[1,100000]);

x=normrnd(0,1,100000,1);%产生100期望为0,方差为1的高斯随机变量 plot(x(1:100000),'r');

title('高斯随机信号');xlabel('取值范围');ylabel('变化情况');

20协方差

y=wavread('111.wav',[1,100000]);

x=weibrnd(1,1.2,100000,1);%韦伯分布参数为A=1,B=1.2,的100个韦伯噪声序列 h=cov(x,y);%协方差 plot(h,'g');

title('两者的协方差');xlabel('n的值');ylabel('信号幅值变化');

四.实验心得

MATLAB这个软件在去年的时候已经接触过,对这款软件有了一定的初步认识,但是对其强大的功能还是不熟悉。在这次的实验,通过用MATLAB方法对随机信号的分析和处理,结合随机信号的分析处理和MATLAB的使用方法和处理信号的原理,让我理解和掌握了随机信号的相关知识和处理原理,加深了我对随机信号的理解和学习MATLAB的热情,同时让我对如何用MATLAB来创建CUI,在GUI中创建模块和GUI的创建过程有了一定的了解。这些都是动手做才获得的经验,所以在以后的学习中我不仅要努力学习理论知识,还要主动动手做实验,以便学习的更多。

本文来源:https://www.bwwdw.com/article/8h37.html

Top