实验六、时域信号采样及频谱分析
一、基本目的:
掌握数字信号处理的基本概念、基本理论和基本方法;
学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法;
学会用 MATLAB 对信号进行分析和处理;
信号的各参数需由键盘输入,输入不同参数即可得不同的x(t) x(n)
撰写课程设计论文,用数字信号处理基本理论分析结果。
 二、实验原理
1 、时域抽样定理
令连续信号xa(t)的傅里叶变换为Xa(j),抽样脉冲序列p(t)傅里叶变换为P(j),抽样后的信号x^(t)的傅里叶变换为X^(j)若采用均匀抽样,抽样周期Ts,抽样频率为s=2fs,由前面分析可知:抽样的过程可以通过抽样脉冲序列p(t)与连续信号xa(t)相乘来完成,即满足:x^(t)=xa(t) p(t),又周期信号f(t)傅里叶变换为:
   
故可以推得p(t)的傅里叶变换为:
其中:
根据卷积定理可知:
得到抽样信号x(t)的傅里叶变换为:
其表明:信号在时域被抽样后,他的频谱X(j)是连续信号频谱X(j)的形状以抽样频率为间隔周期重复而得到,在重复过程中幅度被p(t)的傅里叶级数Pn加权。因为Pn只是n的函数,所以X(j)在重复的过程中不会使其形状发生变化。
假定信号x(t)的频谱限制在-m~+m的范围内, 若以间隔Tsxa(t)进行抽样,可知抽样信号X^(t)的频谱X^(j)是以s为周期重复。显然,若在抽样的过程中s<2m,X^(j)将发生频谱混叠现象,只有在抽样的过程中满足s>=2m条件,X^(j)才不会产生频谱的混叠,接收端完全可以由x^(t)恢复原连续信号xa(t),这就是低通信号抽样定理的核心内容。
2、信号的重建
从频域看,设信号最高频率不超过折叠频率:
Xa(j)=Xa(j)  ||<s/2
Xa(j)=0        ||>s/2
则理想取样后的频谱就不会产生混叠,故有:
 
让取样信号x^(t)通过一带宽等于折叠频率的理想低通滤波器:
H(j)=T  ||<s/2
H(j)=0  ||>s/2
滤波器只允许通过基带频谱,即原信号频谱,:
Y(j)=X^(j)H(j)=Xa(j)
因此在滤波器的输出得到了恢复的原模拟信号:
y(t)=xa(t)
从时域上看,上述理想的低通滤波器的脉冲响应为:
根据卷积公式可求得理想低通滤波器的输出为:
由上式显然可得:
   
:
上式表明只要满足取样频率高于两倍信号最高频率,连续时间函数xa(t)就可用他的取样值xa(nT)来表达而不损失任何信息,这时只要把每一个取样瞬时值与内插函数式相乘求和即
可得出xa(t),在每一取样点上,由于只有该取样值所对应的内插函数式不为零,所以各个取样点上的信号值不变。
三、设计方法与步骤:
画出连续时间信号 的时域波形及其幅频特性曲线,其中幅度因子A444.128,衰减因子a222.144,模拟角频率 222.144
对信号 进行采样,得到采样序列 ,其中T 为采样间隔,通过改变采样频率可改变T,画出采样频率分别为200Hz500 Hz1000 Hz时的采样序列波形;
对不同采样频率下的采样序列进行频谱分析,绘制其幅频和相频曲线,对比各频率下采样序列 的幅频曲线有无差别,如有差别说明原因。
设系统单位抽样响应为 ,求解当输入为 时的系统响应 ,画出 , , 的时域波形及幅频特性曲线,并利用结果验证卷积定理的正确性(此内容将参数设置为A1a0.4 2.0734T1)。
FFT 对信号 , , 进行谱分析,观察与④中结果有无差别。
由采样序列 恢复出连续时间信号 ,画出其时域波形,对比 与原连续时间信号 的时域波形,计算并记录两者最大误差。
 三、实验内容
时域采样理论的验证。
四、详细程序及仿真波形分析:
1、连续时间信号x(t)及其200Hz/500Hz/1000Hz频率抽样信号函数x(n)
%绘制信号x(n)的幅度谱和相位谱
n=0:50;                        %定义序列的长度是50
A=input('请输入A的值 A:');    %设置信号的有关参数
a=input('请输入a的值 a:');
w0=input('请输入w0的值 w0:');
T1=0.005;
T2=0.002;
T3=0.001;
T0=0.001;
x=A*exp(-a*n*T0).*sin(w0*n*T0);  %pi MATLAB 定义的π,信号乘可采用“.*”
y1=A*exp(-a*n*T1).*sin(w0*n*T1);  %pi MATLAB 定义的π,信号乘可采用“.*”
y2=A*exp(-a*n*T2).*sin(w0*n*T2);    %pi MATLAB 定义的π,信号乘可采用“.*”
y3=A*exp(-a*n*T3).*sin(w0*n*T3);    %pi MATLAB 定义的π,信号乘可采用“.*”
close all                          %清除已经绘制的x(n)图形
subplot(2,1,1);stem(n,x),grid on  %绘制x(n)的图形
title('离散时间信号')
subplot(2,1,2);plot(n,x),grid on
title('连续时间信号')
figure(2)
subplot(3,1,1);stem(n,y1),grid on
title('200Hz理想采样信号序列');        %设置结果图形的标题
subplot(3,1,2);stem(n,y2),grid on
title('500Hz连续时间信号')
subplot(3,1,3);stem(n,y3),grid on
title('1000Hz连续时间信号')
k=-25:25;
W=(pi/12.5)*k;
w=W/pi;
Y1=y1*(exp(-j*pi/12.5)).^(n'*k);
figure(3)
subplot(2,1,1);plot(w,abs(Y1));grid,xlabel('w'),ylabel('幅度');
title('200Hz理想采样信号序列的幅度谱');
axis([-2 2 0 1000]);
subplot(2,1,2);plot(w,angle(Y1));grid,xlabel('w'),ylabel('幅角');
title ('200Hz理想采样信号序列的相位谱')
Y2=y2*(exp(-j*pi/12.5)).^(n'*k);
figure(4)
subplot(2,1,1);plot(w,abs(Y2));grid,xlabel('w'),ylabel('幅度');
title('500Hz理想采样信号序列的幅度谱');
axis([-2 2 0 1000]);
subplot(2,1,2);plot(w,angle(Y2));grid,xlabel('w'),ylabel('幅角');
title ('500Hz理想采样信号序列的相位谱')
Y3=y3*(exp(-j*pi/12.5)).^(n'*k);
figure(5)
subplot(2,1,1);plot(w,abs(Y3));grid,xlabel('w'),ylabel('幅度');
title('1000Hz理想采样信号序列的幅度谱');
axis([-2 2 0 1000]);
subplot(2,1,2);plot(w,angle(Y3));grid,xlabel('w'),ylabel('幅角');
title ('1000Hz理想采样信号序列的相位谱')
 
分析:采样频率为1000Hz时没有失真,500Hz时有横线,产生失真,200Hz时横线加长,失真增大。说明采样频率越大失真越小。
 
2、设系统单位抽样响应为 ,求解当输入为 时的系统响应 ,画出 , , 的时域波形及幅频特性曲线,并利用结果验证卷积定理的正确性(此内容将参数设置为A1a0.4 2.0734T1)。
n=1:50;                %定义序列的长度是50
hb=zeros(1,50);        %注意:MATLAB 中数组下标从1 开始
hb(1)=1; hb(2)=1; hb(3)=1; hb(4)=1;hb(5)=1;
close all; subplot(3,1,1);stem(hb);title('系统hb[n]');
m=1:50; T=1;%定义序列的长度是和采样率
A=1; a=0.4;T=1;w0=2.0734;
x=A*exp(-a*m*T).*sin(w0*m*T);    %pi MATLAB 定义的π,信号乘可采用“.*”
subplot(3,1,2);stem(x);title('输入信号x[n]');
y=conv(x,hb);
subplot(3,1,3);stem(y);title('输出信号y[n]');
figure(2)
subplot(3,1,1);plot(n,hb),grid on
title('矩形序列时域波形');
subplot(3,1,2);plot(m,x),grid on
title('输入信号x[n]时域波形');
subplot(3,1,3);plot(m+n-1,y),grid on
title('输出信号y[n]时域波形');
 
分析:在数字信号处理中经常要进行卷积运算,MATLAB中有一个内部函数conv可以计算两个有限长序列的卷积,该函数计算的两个序列都是从n=0开始
 
3、用FFT 对信号 , , 进行谱分析,观察与④中结果有无差别。
n=1:50;                %定义序列的长度是50
hb=zeros(1,50);        %注意:MATLAB 中数组下标从1 开始
hb(1)=1; hb(2)=1; hb(3)=1; hb(4)=1;hb(5)=1;
close all; subplot(3,1,1);
m=1:50; T=1;%定义序列的长度是和采样率
A=1; a=0.4;T=1;w0=2.0734;
matlab傅里叶变换的幅度谱和相位谱