随机信号通过线性系统和非线性系统后的特呢性分析.doc
随机信号分析-通过线性系统和非线性系统后的特性分析一、实验目的1、了解随机信号自身的特性,包括均值、均方值、方差、相关函数、概率密度、频谱及功率谱密度等的概念和特性2、研究随机信号通过线性系统和非线性系统后的均值、均方值、方差、相关函数、概率密度、频谱及功率谱密度有何变化,分析线性系统和非线性系统所具有的性质3、掌握随机信号的分析方法。4、熟悉常用的信号处理仿真软件平台:matlab、c/c+、EWB。二、实验仪器1、256MHz以上内存微计算机。2、20MHz双踪示波器、信号源。3、matlab或c/c+语言环境、EWB仿真软件。4、fpga实验板、面包板和若干导线。三、实验步骤1、根据选题的内容和要求查阅相关的文献资料,设计具体的实现程序流程或电路。2、自选matlab、EWB或c仿真软件。如用硬件电路实现,需用面包板搭建电路并调试成功。3、按设计指标测试电路。分析实验结果与理论设计的误差,根据随机信号的特征,分析误差信号对信号和系统的影响。四、实验任务与要求1、用matlab或c/c+语言编程并仿真2、输入信号为x(t)加上白噪声n(t),用软件仿真通过滤波器在通过限幅器后的信号y1(t),在仿真先平方律后在通过滤波器后的信号y2(t).框图如下:3、计算x(t)、a、b、c、y(t)的均值、均方值、方差、频谱、功率谱密度,自相关函数,并绘出函数曲线。五实验过程与仿真1、输入信号的获取与分析(a)输入信号的获取按照实验要求,Matlab仿真如下:%输入信号x的产生t=0:1/16000:0.01;x1=sin(1000*2*pi*t)+sin(2000*2*pi*t)+sin(3000*2*pi*t);x=awgn(x1,5,'measured'); %加入高斯白噪声n=x-x1; %高斯白噪声(b)输入信号及其噪声的分析%输入信号x自相关系数x_arr=xcorr(x);tau = (-length(x)+1:length(x)-1)/16000;%输入信号x的频谱和功率谱x_mag=abs(fft(x,2048);f=(0:2047)*16000/2048;x_cm=abs(fft(x_arr,2048);%画出高斯白噪声n的时域图和频域图figure(1)subplot(1,2,1)plot(t,n)title('高斯白噪声n')xlabel('t/s')ylabel('n(t)')grid onsubplot(1,2,2)N=fft(n,2048);plot(f(1:length(f)/2),N(1:length(f)/2)title('高斯白噪声n的频谱图')xlabel('f/Hz')ylabel('幅值')grid on 结果为:%画输入信号的时域,相关系数,频谱图和频谱图figure(2);subplot(2,2,1)plot(t,x)title('输入信号x')xlabel('t/s');ylabel('x(t)');grid on;subplot(2,2,2)plot(tau,x_arr)title('输入信号x的自相关系数')xlabel('tau/s')ylabel('R_x_i(tau)')subplot(2,2,3)plot(f(1:length(f)/2),x_mag(1:length(f)/2)title('输入信号x的频谱')xlabel('f/Hz')ylabel('幅值')grid on;subplot(2,2,4)plot(f(1:length(f)/2),x_cm(1:length(f)/2)title('输入信号x的功率谱')xlabel('f/Hz')ylabel('S_x_i(f)')结果如下图:2、带通滤波器的频谱和相频特性B,A=butter(8,1500/(16000/2) 2500/(16000/2); figure(3)freqz(B,A,2048)title('带通滤波器的频率特性曲线')grid on结果作图如下:3、输入信号通过带通滤波器后的信号a%信号通过带通滤波器后,过滤出2khz分量,得到信号aa=filter(B,A,x);%信号a的自相关系数a_arr=xcorr(a);%信号a的频谱和功率谱a_mag=abs(fft(a,2048);a_cm=abs(fft(a_arr,2048);%画出信号a的时域图,自相关系数,频谱图和功率谱图figure(4)subplot(2,2,1)plot(t,a)title('通过带通滤波器后的信号a')xlabel('t/s');ylabel('a(t)');subplot(2,2,2)plot(tau,a_arr)title('信号a的自相关系数')xlabel('tau/s')ylabel('R_a_i(tau)')subplot(2,2,3)plot(f(1:length(f)/2),a_mag(1:length(f)/2)title('信号a的频谱')xlabel('f/Hz')ylabel('幅值')subplot(2,2,4)plot(f(1:length(f)/2),a_cm(1:length(f)/2)title('信号a的功率谱')xlabel('f/Hz')ylabel('S_a_i(f)')作图如下:4、输入信号x通过平方律检波器的信号b%平方律检波器的传输特性为y=m*x2,km=1b=1:length(x);for k=1:length(x) if(x(k)>0) b(k)=x(k)2; else b(k)=0; endend%信号b的自相关系数b_arr=xcorr(b);%信号b的频谱和功率谱b_mag=abs(fft(b,2048);b_cm=abs(fft(b_arr,2048);%画出信号b的时域图,自相关系数,频谱图和功率谱figure(5)subplot(2,2,1)plot(t,b)title('通过平方检波器后的信号b')xlabel('t/s');ylabel('b(t)');subplot(2,2,2)plot(tau,b_arr)title('信号b的自相关系数')xlabel('tau/s')ylabel('R_b_i(tau)')subplot(2,2,3)plot(f(1:length(f)/2),b_mag(1:length(f)/2)title('信号b的频谱')xlabel('f/Hz')ylabel('幅值')subplot(2,2,4)plot(f(1:length(f)/2),b_cm(1:length(f)/2)title('信号b的功率谱')xlabel('f/Hz')ylabel('S_b_i(f)')作图如下:5、信号a通过限幅器后的信号y1%限定幅度最大为0.5,大于0.5的取0.5y1=0:length(a)-1;for k=1:length(a) if(a(k)>0.5) y1(k)=0.5; else if(a(k)<-0.5) y1(k)=-0.5; else y1(k)=a(k); end endend%信号y1的自相关系数y1_arr=xcorr(y1);%信号y1的频谱和功率谱y1_mag=abs(fft(y1,2048);y1_cm=abs(fft(y1_arr,2048);figure(5)%画出信号y1的时域图,自相关系数,频谱图和功率谱图figure(6)subplot(2,2,1)plot(t,y1)axis(0 0.01 -1 1)title('信号a通过限幅器后的信号y1')xlabel('t/s');ylabel('y1(t)');subplot(2,2,2)plot(tau,y1_arr)title('信号y1的自相关系数')xlabel('tau/s')ylabel('R_y_1_i(tau)')subplot(2,2,3)plot(f(1:length(f)/2),y1_mag(1:length(f)/2)title('信号y1的频谱')xlabel('f/Hz')ylabel('幅值')subplot(2,2,4)plot(f(1:length(f)/2),y1_cm(1:length(f)/2)title('信号y1的功率谱')xlabel('f/Hz')ylabel('S_y_1_i(f)')作图如下:6、信号b通过带通滤波器器后的信号y2%信号a通过带通滤波器后,过滤出2khz分量,得到信号y1B,A=butter(8,1900/(16000/2) 2100/(16000/2); y2=filter(B,A,b);%信号a的自相关系数y2_arr=xcorr(y2);%信号a的频谱和功率谱y2_mag=abs(fft(y2,2048);y2_cm=abs(fft(y2_arr,2048);%画出信号a的时域图,自相关系数,频谱图和功率谱图figure(7)subplot(2,2,1)plot(t,y2)title('信号b通过带通滤波器后的信号y2')xlabel('t/s');ylabel('y2(t)');subplot(2,2,2)plot(tau,y2_arr)title('信号y2的自相关系数')xlabel('tau/s')ylabel('R_y_2_i(tau)')subplot(2,2,3)plot(f(1:length(f)/2),y2_mag(1:length(f)/2)title('信号y2的频谱')xlabel('f/Hz')ylabel('幅值')subplot(2,2,4)plot(f(1:length(f)/2),y2_cm(1:length(f)/2)title('信号y2的功率谱')xlabel('f/Hz')ylabel('S_y_2_i(f)')作图如下:7、通过matlab计算x(t)、a、b、c、y(t)的均值、均方值、方差(a)输入信号x的均值,方差和均方值x_mean=mean(x)x_var=var(x)x_st=x_var+x_mean2结果得:x_mean = 0.0200x_var =1.9562x_st =1.9566(b)信号a的均值,方差和均方值a_mean = mean(a)a_var=var(a)a_st=a_var+a_mean2a_arr=xcorr(a);结果得:a_mean =-0.0051a_var =0.4908a_st = 0.4908(c)信号b的均值,方差和均方值b_mean=mean(b)b_var=var(b)b_st=b_var+b_mean2结果得:b_mean =0.9755b_var = 6.2748b_st = 7.2264(d) 信号y1的均值,方差和均方值y1_mean=mean(y1)y1_var=var(y1)y1_st=y1_var+y1_mean2结果得:y1_mean =-0.0054y1_var = 0.1616y1_st =0.1617(e)信号y1的均值,方差和均方值y2_mean = mean(y2)y2_var=var(y2)y2_st=y2_var+y2_mean2结果得:y2_mean =-0.0035y2_var = 1.3080y2_st =1.30806.实验中遇到的问题在刚开始做实验时,理论知识都没有学完,对于很多概念仍不清晰。各处搜索关于滤波器,平方律和限幅器等的知识,最后后来参照实验描述和所查资料的描述用matlab编写出了滤波器,平方律和限幅器7.心得体会本次实验综合性强,运用到了随机信号分析,数字信号处理, matlab等课程知识,让我们第一次尝试综合运用理论知识。这样,我们能够更深刻的理解理论知识和各个学科之间的联系。另外,也锻炼了我们信息检索能力和独立自学的能力,这次实验中有很多用到的理论知识仍然没有学到的知识。我们利用学校图书馆,百度谷歌等搜索引擎查阅了很多资料,终于对本次实验有了基本的了解。深并且化学习了matlab语言的应用,为以后的学习提供了很多的方便。最后,本次的实验,我们体会到了团队合作的重要性。在做实验阶段我们将实验分拆,各自负责一部分,然后又在一起讨论遇到的问题并且解决问题,最终完成本次试验,这锻炼了我们与他人的合作能力,对我们今后的学习时间都是一次珍贵的经验积累。参考资料: 马文平、李兵兵、田红心、朱晓明,随机信号分析与应用,2006,北京:科学出版社 高西全、丁玉美、阔永红,数字信号处理原理、实现及应用,2006,北京:电子工业出版社 吴大正、杨林耀、张永瑞、王松林、郭宝龙,信号与线性系统分析(第4版),2005,北京:高等教育出版社 楼顺天、姚若玉、沈俊霞,Matlab 7.x 程序设计语言(第二版),2007,西安:西安电子科技大学出版社六程序源代码clcclose all%-输入信号x-%输入信号x的产生t=0:1/16000:0.01;x1=sin(1000*2*pi*t)+sin(2000*2*pi*t)+sin(3000*2*pi*t);x=awgn(x1,5,'measured'); %加入高斯白噪声n=x-x1;%输入信号x的均值,方差,均方值和自相关系数x_mean=mean(x)x_var=var(x)x_st=x_var+x_mean2x_arr=xcorr(x);tau = (-length(x)+1:length(x)-1)/16000;%输入信号的频谱和功率谱x_mag=abs(fft(x,2048);f=(0:2047)*16000/2048;x_cm=abs(fft(x_arr,2048);%画出高斯白噪声的时域图和频域图figure(1)subplot(1,2,1)plot(t,n)title('高斯白噪声n')xlabel('t/s')ylabel('n(t)')grid onsubplot(1,2,2)N=fft(n,2048);plot(f(1:length(f)/2),N(1:length(f)/2)title('高斯白噪声n的频谱图')xlabel('f/Hz')ylabel('幅值')grid on %画输入信号的时域,频谱图和频谱图figure(2);subplot(2,2,1)plot(t,x)title('输入信号x')xlabel('t/s');ylabel('x(t)');grid on;subplot(2,2,2)plot(tau,x_arr)title('输入信号x的自相关系数')xlabel('tau/s')ylabel('R_x_i(tau)')subplot(2,2,3)plot(f(1:length(f)/2),x_mag(1:length(f)/2)title('输入信号x的频谱')xlabel('f/Hz')ylabel('幅值')grid on;subplot(2,2,4)plot(f(1:length(f)/2),x_cm(1:length(f)/2)title('输入信号x的功率谱')xlabel('f/Hz')ylabel('S_x_i(f)')%-输入信号x END-%-带通滤波器的频谱和相频特性-%B,A=butter(8,1500/(16000/2) 2500/(16000/2); figure(3)freqz(B,A,2048)title('带通滤波器的频率特性曲线')grid on%-带通滤波器的频谱和相频特性 END-%-输入信号通过带通滤波器后的信号a-%信号通过带通滤波器后,过滤出2khz分量,得到信号aa=filter(B,A,x);%信号a的均值,方差,均方值和自相关系数a_mean = mean(a)a_var=var(a)a_st=a_var+a_mean2a_arr=xcorr(a);%信号a的频谱和功率谱a_mag=abs(fft(a,2048);a_cm=abs(fft(a_arr,2048);%画出信号a的时域图,频谱图和功率谱图figure(4)subplot(2,2,1)plot(t,a)title('通过带通滤波器后的信号a')xlabel('t/s');ylabel('a(t)');subplot(2,2,2)plot(tau,a_arr)title('信号a的自相关系数')xlabel('tau/s')ylabel('R_a_i(tau)')subplot(2,2,3)plot(f(1:length(f)/2),a_mag(1:length(f)/2)title('信号a的频谱')xlabel('f/Hz')ylabel('幅值')subplot(2,2,4)plot(f(1:length(f)/2),a_cm(1:length(f)/2)title('信号a的功率谱')xlabel('f/Hz')ylabel('S_a_i(f)')%-输入信号通过带通滤波器后的信号a END-%-输入信号x通过平方律检波器的信号b-%平方律检波器的传输特性为y=m*x2,km=1b=1:length(x);for k=1:length(x) if(x(k)>0) b(k)=x(k)2; else b(k)=0; endend%信号b的均值,方差,均方值和自相关系数b_mean=mean(b)b_var=var(b)b_st=b_var+b_mean2b_arr=xcorr(b);%信号b的频谱和功率谱b_mag=abs(fft(b,2048);b_cm=abs(fft(b_arr,2048);%画出信号b的时域图,频谱图和功率谱figure(5)subplot(2,2,1)plot(t,b)title('通过平方检波器后的信号b')xlabel('t/s');ylabel('b(t)');subplot(2,2,2)plot(tau,b_arr)title('信号b的自相关系数')xlabel('tau/s')ylabel('R_b_i(tau)')subplot(2,2,3)plot(f(1:length(f)/2),b_mag(1:length(f)/2)title('信号b的频谱')xlabel('f/Hz')ylabel('幅值')subplot(2,2,4)plot(f(1:length(f)/2),b_cm(1:length(f)/2)title('信号b的功率谱')xlabel('f/Hz')ylabel('S_b_i(f)')%-输入信号x通过平方律检波器的信号b END-%-信号a通过限幅器后的信号y1-%限定幅度最大为0.5,大于0.5的取0.5y1=0:length(a)-1;for k=1:length(a) if(a(k)>0.5) y1(k)=0.5; else if(a(k)<-0.5) y1(k)=-0.5; else y1(k)=a(k); end endend%信号y1的均值,方差,均方值和自相关函数y1_mean=mean(y1)y1_var=var(y1)y1_st=y1_var+y1_mean2y1_arr=xcorr(y1);%信号y1的频谱和功率谱y1_mag=abs(fft(y1,2048);y1_cm=abs(fft(y1_arr,2048);figure(5)%画出信号y1的时域图,频谱图和功率谱图figure(6)subplot(2,2,1)plot(t,y1)axis(0 0.01 -1 1)title('信号a通过限幅器后的信号y1')xlabel('t/s');ylabel('y1(t)');subplot(2,2,2)plot(tau,y1_arr)title('信号y1的自相关系数')xlabel('tau/s')ylabel('R_y_1_i(tau)')subplot(2,2,3)plot(f(1:length(f)/2),y1_mag(1:length(f)/2)title('信号y1的频谱')xlabel('f/Hz')ylabel('幅值')subplot(2,2,4)plot(f(1:length(f)/2),y1_cm(1:length(f)/2)title('信号y1的功率谱')xlabel('f/Hz')ylabel('S_y_1_i(f)')%-信号a通过限幅器后的信号y1 END-%-信号b通过带通滤波器器后的信号y2-%信号a通过带通滤波器后,过滤出2khz分量,得到信号y1B,A=butter(8,1900/(16000/2) 2100/(16000/2); y2=filter(B,A,b);%信号y1的均值,方差,均方值和自相关系数y2_mean = mean(y2)y2_var=var(y2)y2_st=y2_var+y2_mean2y2_arr=xcorr(y2);%信号a的频谱和功率谱y2_mag=abs(fft(y2,2048);y2_cm=abs(fft(y2_arr,2048);%画出信号a的时域图,频谱图和功率谱图figure(7)subplot(2,2,1)plot(t,y2)title('信号b通过带通滤波器后的信号y2')xlabel('t/s');ylabel('y2(t)');subplot(2,2,2)plot(tau,y2_arr)title('信号y2的自相关系数')xlabel('tau/s')ylabel('R_y_2_i(tau)')subplot(2,2,3)plot(f(1:length(f)/2),y2_mag(1:length(f)/2)title('信号y2的频谱')xlabel('f/Hz')ylabel('幅值')subplot(2,2,4)plot(f(1:length(f)/2),y2_cm(1:length(f)/2)title('信号y2的功率谱')xlabel('f/Hz')ylabel('S_y_2_i(f)')%-信号b通过带通滤波器器后的信号y2 END-%