您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 系统传递函数的测试方法01121241
系统传递函数的测试方法专业:通信工程班级:1301031小组成员:潘靖13010310049目录一、摘要.......................................二、实验特点和原理.............................三、实验的设计思想与实现.......................设计思想.................................实现......................................四、实验结论及小结..............................五、参考文献...................................一.摘要随机信号的分析是一门逻辑性很强的的专业基础理论课,而实验则是对课堂学到的知识加以深入的利用和了解。本次试验利用MATLAB仿真产生高斯白噪声,利用互相关算法得到线性时不变系统的冲击响应,在通过被测系统后的理想高斯白噪声与理想高斯白噪声信号进行互相关运算后得到信号。用MATLAB模拟低通滤波器和微分器,得到该信号通过后的线性系统单位冲击响应h(t),分析其数字特征。二.实验特点和原理1.实验目的(1)研究分析电子系统受随机信号激励后的响应及测量方法。(2)了解随机信号的特性,包括均值、均方差、方差、相关函数、概率密度、频谱及功率谱密度等。(3)熟悉常用的信号处理仿真软件平台:MATLAB、C++等。2.实验仪器(1)256M以上内存微计算机。(2)20M双踪示波器、信号源。(3)自选MATLAB6级以上版本货C++/C语言环境。3.实验内容及原理利用互相关算法可以求取线性时不变系统的冲击响应。通过被测系统后的理想高斯白噪声与理想高斯白噪声进行互相关运算。产生相应的输出通过一个低通滤波器,获得线性系统单位冲击响应h(t).其原理框图如下:被测系统计算互相关低通滤波器白噪声x(t)noise(t)y(t)a(t)三.实验的设计思想与实现1.设计思想(1)利用MATLAB编写导入高斯白噪声(2)将高斯白噪声通过系统(系统为低通滤波器、带通滤波器、积分器时)的信号用MATLAB编写出来(3)将通过被测系统的信号与理想高斯白噪声进行互相关函数,进行MATLAB编写(4)通过低通滤波器得输出信号,进行MATLAB编写(5)计算x(t)、noise(t)、y(t)信号的均值、方差、相关函数、概率密度、频谱和功率谱密度。2.实现Fs=10000;Ns=1024;x=randn(Ns,1);%产生高斯白噪声t=0:Ns-1;x_mean=mean(x)%均值x_std=std(x)%标准差x_var=x_std.^2%方差x_msv=x_var+x_mean.^2%均方值[x_c,lags]=xcorr(x,200,'unbiased');%相关函数%带通滤波器冲击响应f2=[600,1000,2000,2400];m2=[0,1,0];rp2=0.9;rs2=40;dat12=(10^(rp2/20)-1)/(10^(rp2/20)+1);dat22=10^(-rs2/20);rip2=[dat22,dat12,dat22];[M2,fo2,mo2,w2]=firpmord(f2,m2,rip2,10000);%Fs=10000M2=M2+2;h2=firpm(M2,fo2,mo2,w2);tt2=(0:length(h2)-1)/10000;%Fs=10000%------------产生一个十阶IIR带通滤波器------------%%------------通带为1KHz--2KHz,并得到其幅频响应------------%Fs=100000[b,a]=ellip(10,0.5,50,[10000,20000]*2/Fs);[H,w]=freqz(b,a,512);figure('name','带通滤波器');subplot(2,2,1);plot(w*Fs/(2*pi),abs(H));title('带通滤波器的幅频响应');xlabel('f/Hz');ylabel('H(w)');subplot(2,2,2);plot(tt2,h2);xlabel('时间(t)');ylabel('幅值/V');title('带通滤波器冲激响应');gridon%白噪声通过带通滤波器以及通过后y相关参数y=filter(b,a,x);%白噪声通过带通滤波器y_mean=mean(y)%y的均值y_std=std(y);%标准差y_var=y_std.^2%方差y_msv=y_var+y_mean.^2[y_pdf,y1]=ksdensity(y);%绘制图像gridon[y_c,lags1]=xcorr(y,200,'unbiased');%计算y的相关函数gridon%计算y的频谱Y=fft(y);%对y进行傅里叶变换magY=abs(Y);%y的功率谱nfft=1024;index=0:round(nfft/2-1);ky=index.*Fs./nfft;window=boxcar(length(y_c));[Pyy,fy]=pwelch(y_c,window,0,nfft,Fs);y_Py=Pyy(index+1);figure('name','白噪声通过带通滤波器');subplot(2,2,1);plot(ky,y_Py);title('白噪声通过带通滤波器后的功率谱');xlabel('f/Hz');ylabel('幅值(W/Hz)')%plot(y1,y_pdf);title('白噪声通过带通滤波器后一维概率密度函数图像');subplot(2,2,2);plot(f(1:Ns/2),magY(1:Ns/2));title('白噪声通过带通滤波器的频谱');ylabel('幅值(V)');xlabel('f/Hz');%plot(lags1,y_c);title('白噪声通过带通滤波器后自相关函数')%----------------计算白噪声功率谱--------------%nfft=1024;index=0:round(nfft/2-1);k=index.*Fs./nfft;window=boxcar(length(x_c));[Pxx,f]=periodogram(x_c,window,nfft,Fs);x_Px=Pxx(index+1);[x_pdf,x1]=ksdensity(x);%f=(0:Ns-1)/Ns*Fs;X=fft(x,4096);%对高斯白噪声进行傅里叶变换mag=abs(X);%取信号X的幅度f=(0:4096-1)*10000/4096;%横坐标频率的表达式为f=(0:m-1)*Fs/m;figure('name','白噪声');%subplot(2,2,1);plot(t,x);title('高斯白噪声波形');xlabel('t');%ylabelsubplot(2,2,1);plot(lags,x_c);title('白噪声的自相关函数');xlabel('T');ylabel('Rn(τ)');%subplot(2,2,2);plot(k,x_Px);title('白噪声的功率谱');xlabel('频率/Hz');ylabel('功率/d');%求高斯白噪声的一维概率密度subplot(2,2,2);plot(f,PSD);xlabel('频率(Hz)');ylabel('功率/dB');title('高斯白噪声功率谱密度');subplot(2,2,3);plot(f,mag);xlabel('频率/Hz');ylabel('频域幅值');title('高斯白噪声频谱图')subplot(2,2,4);plot(x1,x_pdf);title('白噪声的一维概率密度');xlabel('t/s');%-------产生高斯白噪声-----------------%%noise=randn(10000,1);%t=0:1/10000:1;%t=t(1:10000);%Noise=fft(noise);%获得高斯白噪声%cmo=abs(Noise);%f2=(0:length(Noise)-1)*10000/length(Noise);%figure('name','白噪声');%subplot(2,1,1);plot(t,noise,'-r');xlabel('t');ylabel('幅值(v)');title('高斯白噪声');%subplot(2,1,2);plot(f2(1:length(f2)/2),cmo(1:length(f2)/2),'-b');title('白噪声信号频谱');%利用双极性Z变换设计0-1kHz低通滤波器%%-----------低通滤波器-----------%fp=1000;fs=2200;rp=0.5;rs=50;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;wap=tan(wp/2);was=tan(ws/2);Fs=1;[N,Wn]=buttord(wap,was,rp,rs,'s');%估计所需滤波器的阶数[z,p,k]=buttap(N);[bp,ap]=zp2tf(z,p,k);[bs,as]=lp2lp(bp,ap,wap);[bz,az]=bilinear(bs,as,Fs/2);[H,w]=freqz(bz,az,512,Fs*10000);%计算数字滤波器的频率响应%低通滤波器f1=[1000,1500];m1=[1,0];rp1=0.9;rs1=40;dat11=(10^(rp1/20)-1)/(10^(rp1/20)+1);dat21=10^(-rs1/20);rip1=[dat11,dat21];[M1,fo1,mo1,w1]=firpmord(f1,m1,rip1,10000);%Fs=10000firpmordM1=M1+1;h1=firpm(M1,fo1,mo1,w1);%低通滤波器冲激响应.h1后面要用firpmtt1=(0:length(h1)-1)/10000;%用于绘图的横坐标,Fs=10000%figure%plot(w,abs(H));%低通滤波器的频谱%title('低通滤波器的幅频响应')%xlabel('f/Hz')%ylabel('H(w)')%gridon%白噪声通过滤波器以及通过后y相关参数y=filter(bz,az,x);%白噪声通过滤波器y_mean=mean(y)%y的均值y_std=std(y);%标准差y_var=y_std.^2%方差y_msv=y_var+y_mean.^2[y_pdf,y1]=ksdensity(y);%figure%plot(y1,y_pdf);%y的一维概率密度%gridon%title('白噪声通过低通滤波器的一维概率密度函数图像');[y_c,lags1]=xcorr(y,200,'unbiased');%计算y的相关函数%figure%plot(lags1,y_c);%画出y的相关函数的图形%axis([-50,50,-0.1,0.5]);%title('白噪声通过低通滤波器的自相关函数')%计算y的频谱Y=fft(y);%对y进行傅里叶变换magY=abs(Y);%figure%plot(f(1:Ns/2),magY(1:Ns/2));%画出y的频谱%gridon%title('白噪声通过低通滤波器的频谱');%ylabel('幅值(V)')%xlabel('f/Hz');%y的功率谱nfft=1024;Fs=10000;index=0:round(nfft/2-1);ky=index.*Fs./nfft;window=boxcar(length(y_c));[Pyy,fy]=pwelch(y_c,window,0,nfft,Fs);y_Py=Pyy(index+1);%figure%pl
本文标题:系统传递函数的测试方法01121241
链接地址:https://www.777doc.com/doc-2102084 .html