一、实验目的
、熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。
、熟悉离散信号和系统的时域特性;
、熟悉线性卷积的计算编程方法;利用卷积的方法,观察、分析系统响应的时域特性。
、掌握序列傅氏变换的计算实现方法,利用序列的傅氏变换离散信号、系统及系统响应做频域分析。
二、实验原理
(一)连续时间信号的采样
对一个连续时间信号进行理想采样的过程可以表示为该信号的一个周期冲击脉冲的乘积,即
(1-1)
其中是连续信号的理想采样,是周期冲激脉冲
(1-2)
理想信号的傅里叶变换为: (1-3)
(二)有限长序分析
一般来说,在计算机上不可能,也不必要处理连续的曲线,通常我们只要观察。分析在某些频率点上的值。对于长度为N的有限长序列一般只需要在之间均匀的取M个频率点。
(三)信号卷积
一个线性时不变离散系统的响应y(n)可以用它的单位冲激响应h(n和输入信号x(n)的卷积来表示: (1-4)
根据傅里叶变换和Z变换的性质,与其对应应该有:
(1-5)
(1-6)
式(1-3)可知通过对两个序列的移位、相乘、累加计算信号响应;而由式(1-6)可知卷积运算也可以在频域上用乘积实现。
三、实验内容及步结果
1、分析理想采样信号序列的特性。
产生理想采样信号序列,使A=444.128,,。当频率fs=1000hz时,其幅频特性如图1.1所示 :
图1.1
当fs=300hz的时候,其幅频特性如图1.2所示:
图1.2
当fs=200hz的时候,其幅频特性如图1.3所示:
图1.3
经过对比以上三个图形可以看出:当频率分别为1000hz,300hz和200hz的时候均没有出现混叠现象,因为给定的信号序列的频率为,三个抽样频率均满足,因此不会出现频率混叠现象。
、离散信号、系统和系统响应的分析
单位脉冲序列和系统的时域和幅频特性如图1.4和图1.5所示:
图1.4
图1.5
系统响应的时域和幅频特性为图1.6所示:
图1.6
3、卷积定律验证
将理想采样信号和系统的傅氏变换相乘,得到的幅频曲线如图1.7所示:
图1.7
运用卷积定理得出的结果如1.8所示:
图1.8
由图1.7和图1.8的对比可以看出,两幅图的结果基本一致,说明卷积定律是成立的。
四、程序清单
function [magX,angX]=fpres(x,n,k)
X=x*(exp(-j*pi/12.5)).^(n'*k);
magX=abs(X);
angX=angle(X);
%%%%%%理想的采样信号
clc;
clear all;
n=0:50;
A=444.128;
fs=200;
T=1/fs;
a=50*sqrt(2.0)*pi;
w0=50*sqrt(2.0)*pi;
x=A*exp(-a*n*T).*sin(w0*n*T);
k=-25:25;
[magX,angX]=fpres(x,n,k);
figure(1)
subplot(3,1,1);
stem(x);
title('理想采样信号序列(fs=1000hz)');
xlabel('时间');
ylabel('幅值');
subplot(3,1,2);
stem(magX)
title('理想采样信号序列幅度谱')
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
stem(angX)
title('理想采样信号序列相位谱')
xlabel('频率');
ylabel('幅值');
%%%%%%%单位脉冲序列
function xb=unitimp(n)
% n=1:50;
N=length(n);
xb=zeros(1,N);
xb(1)=1;
k=-25:25;
[magX,angX]=fpres(xb,n,k);
subplot(3,1,1);
stem(xb)
title('单位脉冲序列');
subplot(3,1,2);
stem(magX)
title('单位脉冲序列幅度谱')
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
stem(angX)
title('单位脉冲序列相位谱')
xlabel('频率');
ylabel('幅值');
%%%%%%%%%指定序列
function hb=tedingxulie(n)
% n=1:50;
N=length(n);
hb=zeros(1,N);
hb(1)=1;hb(2)=2.5;hb(3)=2.5;hb(4)=1;
k=-25:25;
[magX,angX]=fpres(hb,n,k);
subplot(3,1,1);
stem(hb)
title('指定序列');
subplot(3,1,2);
stem(magX)
title('指定序列幅度谱')
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
stem(angX)
title('指定序列相位谱')
xlabel('频率');
ylabel('幅值');
%%%%%%%%%系统响应
clc;
n=1:50;
k=-25:25;
figure(1)
xb=unitimp(n);
figure(2)
hb=tedingxulie(n);
y=conv(xb,hb);
k1=1:99;
N=length(y);
n1=1:N;
[magX,angX]=fpres(y,n1,k1);
figure(3)
subplot(3,1,1);
stem(y);
title('系统响应');
xlabel('时间');
ylabel('幅值');
subplot(3,1,2);
stem(magX)
title('系统响应幅度谱')
xlabel('时间');
ylabel('幅值');
subplot(3,1,3);
stem(angX)
title('系统响应相位谱')
xlabel('频率');
ylabel('幅值');
%%%%%%%%%卷积定理验证
clc;
clear all;
n=0:50;
A=1;
fs=1;
T=1/fs;
a=0.1;
w0=1.2516;
xa=A*exp(-a*n*T).*sin(w0*n*T); % 理想的采样信号
k=-25:25;
X=xa*(exp(-j*pi/12.5)).^(n'*k);
magX=abs(X);
figure(1)
subplot(3,2,1);
stem(magX);title('输入信号xa的幅度谱');
angX=angle(X);
subplot(3,2,2);
stem(angX);title('输入信号xa的相位谱');
n1=1:10;
ha=sign(sign(10-n1)+1);
k1=-25:25;
Hb=ha*(exp(-j*pi/12.5)).^(n1'*k1);
magHb=abs(Hb);
subplot(3,2,3);
stem(magHb);title('系统响应ha的幅度谱');
angHb=angle(Hb);
subplot(3,2,4);
stem(angX);title('系统响应ha的相位谱');
y=conv(xa,ha);
n2=1:60;k2=1:60;
Y=y*(exp(-j*pi/12.5)).^(n2'*k2);
magY=abs(Y);
subplot(3,2,5);
stem(magY);title('输出信号y的幅度谱');
angY=angle(Y);
subplot(3,2,6);
stem(angY);title('输出信号y的相位谱');
XHb=X.*Hb;
figure(2)
subplot(2,1,1);
stem(magY);title('输出信号y的幅度谱');
subplot(2,1,2);
stem(abs(XHb));title('xa的幅度谱与hb的幅度谱相乘');