数字信号处理上机实验报告
实验一信号、系统及系统响应
(1)时域离散信号、系统及系统响应分析
h b(n)=δ(n)+2.5δ(n-1)+2.5δ(n-2)+δ(n-3);
单位脉冲序列:x b(n)=δ(n)
h b(n)的时域和频域特性:
信号x b(n)通过系统h b(n)的响应y(n)的时域和频域特性
结论:得到的响应的频谱与h b(n)是相同的,由于输入是单位冲激序列,根据卷积的定义,输出序列为系统函数。
程序:
clc;clear all;
dt = 0.001,tf = 3; t = -tf:dt:tf;
x = x_a(t);
n = 0:length(x)-1;
w = linspace(-3*pi,3*pi,10000);
X = x*exp(-j*n'*w); %对x序列进行DTFT变换
subplot 211
stem(n,x,'.');
subplot 212
plot(w/pi,abs(X));
%gtext('DTFT频域谱');
function [x_b] = x_b;
x_b = [zeros(1,30),1,zeros(1,30)]; function [y] = y
y = conv(x_b,h_b)
(2)分析采样序列的特性
模拟信号x a(t)=Ae-at sin(Ω0t)u(t),
参数取如下值:A = 1; a = 1; omiga = 2*pi
程序:
clc;clear all;
dt = 0.005; tf=3; t=-tf:dt:tf;
xa = x_a(t);
subplot 311
plot(t,xa);
Wmax = 2*pi; K = 500; k = 0:1:K; W = k*Wmax/K;
Xa = xa*exp(-j*t'*W)*dt; Xa = abs(real(Xa));
subplot 312
plot(W,Xa);
Wmax2 = 2*pi; K2 = 30; k2 = 0:1:K2; W2 = k2*Wmax2/K2; Xa2 = xa*exp(-j*t'*W2)*dt; Xa2 = abs(real(Xa2));
subplot 313
plot(W2,Xa2);
gtext('高采样率的频谱');
gtext('发生混叠的频谱');
function [x_a] = x_a(t)
A = 1; a = 1; omiga = 2*pi;
x_a = A*exp(-a*t).*sin(omiga*t);
(3)验证卷积定理
这里给出一个输入任意位置的两个序列,计算并画出卷积后序列的图像。
程序说明:调用函数,给入要卷积的两个序列,并给出第一个非0坐标的位置。
程序:
clc; clear all;
xf = 2; % x序列第一个非0值坐标的位置
yf = -1;
x = [1,1,1,1]; y = [1,1,1];
nx = xf:length(x)-1+xf
ny = yf:length(y)-1+yf
z = conv(x,y)
nz = min(nx)+min(ny) : max(nx)+max(ny); %卷积后坐标位置
subplot 221, stem(nx,x,'.');
subplot 222, stem(ny,y,'.');
subplot 223, stem(nz,z,'.');
实验二、用FFT做频谱分析
给出符合流程图的计算FFT的程序:
进行16点的FFT,如果序列的长度不足16,自动补0到16点。
clc;clear all;
N = 16
x = x_1;
n = length(x);
if (N>n)
x = [x,zeros(1,N-n)]; % 长度小于N,自动补0到长度N
n =N;
end
subplot 211
nx = 0:n-1;
stem(nx,x,'.');
DFT_x = abs(fft(x,16)) % 16点DFT
ny = 0:15;
subplot 212
stem(ny,DFT_x,'.');
(1)对x_1至x_6逐个进行谱分析:
(2) 令x(n)=x4(n)+x5(n),用FFT计算8 点和16 点离散傅里叶变换
(2)令x(n)=x4(n)+jx5(n),重复(2)