一、实验目的
1、了解确定信号的采样与平稳随机信号的采样之间的关系,掌握信号的采样定理及其应用;
2、掌握随机信号的均值、方差、自相关函数、概率密度、频谱及功率谱密度的特性;
3、掌握随机信号的分析方法;
4、熟悉常用的信号处理仿真软件平台:Matlab或C/C++。
二、实验内容
1、实验原理
若X(t)为平稳随机过程,且具有零均值,它的功率谱密度Sx(w)限于
(wc,wc)之间。当满足条件T1fc时,便可将X(t)将它的振幅样本展开为 2X(t)limNnNNX(nT)sin(wctn)
wctn 上式为平稳随机过程的采样定理,式中T为采样周期。
2、实验内容与要求
(1)通过实验掌握随机信号的抽取与插值的基本原理、方法及其在实际运用中的意义。计算信号的数字特征,理解它们的物理概念。用Matlab或C/C++仿真软件之一编写程序和仿真。系统框图如下
X1(t) X2(t) Y(t) X(t) 抽取 插值 滤波器
(2)输入信号x(t):是在一个波形周期有80个采样点的正弦信号+n(t)。信号的真实频率取决于采样频率。假设采样频率为8000Hz,则输入信号频率就是100Hz。n(t)为高斯白噪声。
要求测试白噪声的均值、均方值、方差、自相关函数、概率密度、频谱及功率谱密度,并用波形图表示。分析实验结果,掌握均值、均方值、方差、自相关函数、频谱及功率谱密度的物理意义。
(3)滤波器设计:要求信号经滤波器后保留有用信号。滤波器结构及参数和所
涉及的采样频率取值根据滤波器在这里所起的作用、输入信号本身的特点所确定。
滤波器设计好之后,要求测试它的频率特性,并将频率特性曲线用波形图表示,以验证是否符合要求。
(4)信号抽取:所谓信号抽取也就是信号采样率的降低。将低通滤波器输出信号作为原始信号,用抽取方法分别以M=2、M=4对原始信号进行抽取。
(5)信号插值:将M=2、M=4抽取信号分别作为原始信号,用插值的方法,分别还原原始信号(滤波后的信号)。
(6)计算x(t),x1(t),x2(t),y(t)的均值、均方值、方差、自相关函数、频谱及功率谱密度。
(7)对采样前后、插值前插值后信号进行比较。观察信号频谱的变化及周期延拓性。
(8)讨论x(t)自相关函数、功率谱密度与y(t)自相关函数、功率谱密度之间关系。
三、实验步骤及结果
1、输入信号x(t):
(1)x(t)时域、频域波形图
Fs=40000;Ns=4096;n=0:Ns-1;t=n/Fs;%t为采样时间,共5000个采样点。 sine=sin(2*pi*100*t);%正弦信号
noise=randn(1,length(t));%高斯白噪声 x=sine+noise;%合成输入信号 plot(t,x);
xlabel('t');ylabel('x');title('输入信号')
x_spectra=fft(x); f=Fs*n/Ns;%频域横坐标
plot(f(1:300),abs(x_spectra(1:300))); xlabel('f'),ylabel('Y');title('输入信号频谱')
(2)高斯白噪声时域、频域波形图 plot(t,noise);title('高斯白噪声')
noise_spectra=fft(noise);plot(f(1:300),abs(noise_spectra(1:300))); xlabel('f'),ylabel('Y');title('高斯白噪声频谱')
高斯白噪声均值、均方值、方差 均值: mean=0.0087 均方值: var=1.0080 方差: fangcha=1.0079
高斯白噪声自相关函数
noise_xcorr=xcorr(noise);
t1=(-Ns+1:Ns-1)/Fs;%相关函数图像横坐标
plot(t1,noise_xcorr); xlabel('t'),ylabel('R'); title('高斯白噪声自相关函数')
高斯白噪声概率密度
[F1,y1]=ksdensity(noise); %y1为噪声信号所有取值,F1为每个值相应概率 plot(y1,F1);
xlabel('y'),ylabel('F');title('高斯白噪声概率密度')
高斯白噪声功率谱密度
P1=noise_spectra.*conj(noise_spectra)/Ns; %频谱函数平方求时间平均 plot(f(1:300),abs(P1(1:300)));xlabel('f'),ylabel('S'); title('高斯白噪声功率谱密度'))
2、滤波器设计: (1)设计代码 fp=1000;fs=2000;
rp=1;rs=35; Fs1=40000;
wp=2*pi*fp/Fs1; ws=2*pi*fs/Fs1; wap=tan(wp/2); was=tan(ws/2); Fs1=Fs1/Fs1;
[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,Fs1/2);
[H,w]=freqz(bz,az,256,Fs1*10000);%特性分析 plot(w,abs(H));
title('低通滤波器的频谱'); xlabel('f/hz');
(2)低通滤波器输出信号x1(t) x1(t)=filter(bz,az,x) 3、信号抽取
对x1(t)抽样,采样频率8000Hz(即fs1) 波形输出程序:
fs1=8000;%采样周期取8000Hz
t2=(0:Fs/fs1:Ns-1)/Fs;%采样信号横坐标 sample=zeros(1,length(t));
for k=1:length(t)
if mod(k,(Fs/fs1))==1 sample(k)=y(k); else
sample(k)=0; end end
sample1=zeros(1,ceil(length(t)/(Fs/fs1))); i=1;
for k=1:length(t)
if mod(k,(Fs/fs1))==1 sample1(i)=x1(t)(k);
i=i+1; end end
stem(t2,sample1)%除去相邻采样点间零点的采样信号 (1)M=2时抽取
fs1=8000;t2=(0:Fs/fs1:Ns-1)/Fs;
sample2=zeros(1,ceil(length(t)/(Fs/fs1))); for k=1:length(t2) if mod(k,3)==1
sample2(k)=sample(k); else
sample2(k)=0; end end
sample3=zeros(1,ceil(length(t)/(Fs/fs1)/3)); i=1;
for k=1:3:length(t2) sample3(i)=sample1(k); i=i+1; end
stem((1:3:length(t2))/8000,sample3);%除去相邻采样点间零点的采样信号 (2)M=4抽取
sample4=zeros(1,ceil(length(t)/(Fs/fs1))); for k=1:length(t2) if mod(k,5)==1
sample4(k)=sample(k); else
sample4(k)=0; end end
sample5=zeros(1,ceil(length(t)/(Fs/fs1)/5));
i=1;
for k=1:5:length(t2) sample5(i)=sample1(k); i=i+1; end
stem((1:length(t2)/5)/300,sample5);%除去相邻采样点间零点的采样信号 4、对抽取后得到的x2(t)信号插值,得到y(t)
(1)对M=2抽取信号进行插值(每间隔插入4个值),还原原始信号 t4=zeros(1,(length(t2)-1)*4+length(t2));%插值信号横坐标 for k=1:length(t4) if mod(k,5)==1
t4(k)=(1/fs1)*fix(k/5); end
if mod(k,5)==2
t4(k)=(1/fs1)*fix(k/5)+(1/fs1)/5; end
if mod(k,5)==3
t4(k)=(1/fs1)*fix(k/5)+(2/fs1)/5; end
if mod(k,5)==4
t4(k)=(1/fs1)*fix(k/5)+(3/fs1)/5; end
if mod(k,5)==0
t4(k)=(1/fs1)*(k/5-1)+(4/fs1)/5; end end
inter4=interp1(t2,sample2,t4,'cubic'); stem(t4,inter);%插值信号
(2)对M=4抽取信号进行插值(每间隔插入4个值),还原原始信号 t8=zeros(1,(length(t2)-1)*4+length(t2));%插值信号横坐标 for k=1:length(t8) if mod(k,5)==1
t8(k)=(1/fs1)*fix(k/5); end
if mod(k,5)==2
t8(k)=(1/fs1)*fix(k/5)+(1/fs1)/5; end
if mod(k,5)==3
t8(k)=(1/fs1)*fix(k/5)+(2/fs1)/5; end
if mod(k,5)==4
t8(k)=(1/fs1)*fix(k/5)+(3/fs1)/5; end
if mod(k,5)==0
t8(k)=(1/fs1)*(k/5-1)+(4/fs1)/5; end end
inter8=interp1(t2,sample4,t8,'cubic'); stem(t8,inter8);%插值信号
5、x(t),x1(t),x2(t),y(t)的均值、均方值、方差、自相关函数、频谱及功率谱密度。
(1)输入信号x(t)
频谱见第4页
均值: mean=0.0342 均方值: var=1.4971 方差: fangcha=1.4959 自相关函数:
x_xcorr=xcorr(x); t1=(-Ns+1:Ns-1)/Fs; plot(t1,x_xcorr);
xlabel('t'),ylabel('R'); title('输入信号相关函数');
功率谱密度:
P1=x_spectra.*conj(x_spectra)/Ns;%频谱函数的平方求时间平均 plot(f(1:300),abs(P1(1:300)));%功率谱密度
xlabel('f'),ylabel('S'); title('输入信号功率谱密度')
(2)低通滤波器输出信号x1(t) 均值: mean=0.0314 均方值: var=0.5416 方差: fangcha=0.5406 自相关函数:
x1_xcorr=xcorr(x1); plot(t1,x1_xcorr);
xlabel('t'),ylabel('R');
title('低通滤波器输出信号相关函数')
频谱:
x1_spectra=fft(x1);
f=Fs*n/Ns;plot(f(1:300),abs(x1_spectra(1:300))); xlabel('f'),ylabel('Y');
title('低通滤波器输出信号频谱')
功率谱密度:
P1=x1_spectra.*conj(x1_spectra)/Ns;%频谱函数的平方求时间平均 plot(f(1:300),abs(P1(1:300)));%功率谱密度 xlabel('f'),ylabel('S');
title('低通滤波器输出信号功率谱密度')
(3)抽取后得到的信号x2(t) 1)M=2时的x2(t)
均值: mean=0.0056 均方值: var=0.0342 方差: fangcha=0.0341 自相关函数:
sample_xcorr4=xcorr(sample2);
t3=(-Ns+1)*fs1/Fs:(Ns-1)*fs1/Fs;%相关函数图像横坐标 plot(t3,sample_xcorr4);%相关函数 xlabel('t'),ylabel('R');
title('M=2采样信号相关函数');
频谱:
sample_spectra4=fft(sample2); f=40000*n/Ns;
plot(f(1:800),abs(sample_spectra4(1:800))); title('M=2采样信号频谱')
功率谱密度;
P2=sample_spectra4.*conj(sample_spectra4)/Ns; plot(f(1:800),abs(P2(1:800))); title('M=2采样信号功率谱密度')
2)M=4时的x2(t)
均值: mean=-0.0077 均方值: var=0.0091 方差: fangcha=0.0099 自相关函数:
sample_xcorr8=xcorr(sample4);
t3=(-Ns+1)*fs1/Fs:(Ns-1)*fs1/Fs;%相关函数图像横坐标 plot(t3,sample_xcorr8);%相关函数 xlabel('t'),ylabel('R');
title('M=4采样信号相关函数');
频谱:
sample_spectra8=fft(sample4); f=40000*n/Ns;
plot(f(1:800),abs(sample_spectra8(1:800))); title('M=4采样信号频谱')
功率谱密度:
P2=sample_spectra8.*conj(sample_spectra8)/Ns; plot(f(1:800),abs(P2(1:800))); title('M=4采样信号功率谱密度')
(4)插值后得到的信号y(t)
1)将M=2抽取信号作为原始信号,用插值方法还原原始信号,得到的y(t) 均值: mean=-0.0026 均方值: var=0.0245 方差: fangcha=0.0244 自相关函数:
t5=(-Ns+1:(Fs/fs1)/5:Ns-1)/Fs; inter4_xcorr=xcorr(inter4); plot(t5,inter4_xcorr)
title('2抽取插值信号相关函数')
频谱:
f1=5*fs1*(0:length(t4)-1)/length(t4); inter4_spectra=fft(inter4);
plot(f1(1:300),abs(inter4_spectra(1:300))); xlabel('f'),ylabel('Y'); title('2抽取插值信号频谱');
功率谱密度:
P5=inter4_spectra.*conj(inter4_spectra)/length(t4); plot(f1(1:300),P5(1:300)); xlabel('f'),ylabel('S');
title('2抽取插值信号功率谱密度');
2)将M=4抽取信号作为原始信号,用插值方法还原原始信号,得到的y(t) 均值: mean=-0.0077 均方值: var=0.0736 方差: fangcha=0.0735 自相关函数:
t5=(-Ns+1:(Fs/fs1)/5:Ns-1)/Fs; inter8_xcorr=xcorr(inter8); plot(t5,inter8_xcorr)
title('4抽取插值信号相关函数')
频谱:
f1=5*fs1*(0:length(t8)-1)/length(t8); inter8_spectra=fft(inter8);
plot(f1(1:300),abs(inter8_spectra(1:300))); xlabel('f'),ylabel('Y'); title('4抽取插值信号频谱');
功率谱密度:
p6=inter8_spectra.*conj(inter8_spectra)/length(t8); plot(f1(1:300),p6(1:300)); xlabel('f'),ylabel('S');
title('4抽取插值信号功率谱密度');
四、试验结果分析
1、对采样前后、插值前插值后信号进行比较。观察信号频谱的变化及周期延拓性。
采样后信号的频谱是以采样角频率为周期延拓的。经滤波器对信号进行8000Hz采样,然后分别以M=2,M=4对信号进行抽取。其抽取后的信号频谱分别减小为抽取前信号频谱周期的1/3,1/5。对插4点后的信号频谱增为插值前信号频谱周期的5倍。 2、讨论x(t)自相关函数、功率谱密度与y(t)自相关函数、功率谱密度之间关系。 自相关函数,是频谱的傅里叶反变换,M=2,M=4抽取后幅度分别为抽取前的1/3、1/5。插值后幅度为插值前的5倍。
功率谱密度是频谱平方的时间平均,M=2,M=4抽取后幅度分别减小为抽取前的1/9,1/25.对插4点后的信号频谱增为插值前信号频谱的5倍,其幅度也增大为插值前信号的25倍。
因篇幅问题不能全部显示,请点此查看更多更全内容