数字信号处理实验(二):离散时间信号和线性时不变离散时间系统的频域分析
目录
一、实验目的:
熟悉Mat lab中的信号处理工具箱及相关命令,掌握用Mat lab验证离散时间傅里叶变换相关性质的方法;掌握用Mat lab分析离散时间系统频域特性的方法并能绘制幅频特性和相频特性图。
二、实验内容及要求:
1. 离散时间信号的频域分析:
(1)修改程序P3.1,在范围内计算如下序列的离散时间傅里叶变换并绘制幅频特性和相频特性图。
(2)修改程序P3.2,D=8,验证离散时间傅里叶变换的时移特性并绘图。
(3)修改程序P3.3,,验证离散时间傅里叶变换的频移特性并绘图。
2. 线性时不变离散时间系统的频域分析:
(1)修改程序P3.1,计算并画出如下传输函数的频率响应,它是哪种类型的滤波器?
(2)修改程序P4.2,计算并画出一个长度为6的滑动平均滤波器的增益响应。
(3)用Mat lab画出如下滤波器的零极点图并分析稳定性。
三、实验结果及问题回答:
1. 离散时间信号的频域分析:
(1)实验结果:
clf;
w = 0:pi/511:pi;
num = [0.7 -0.5 0.3 1];%系统频率响应的分子向量
den = [1 0.3 -0.5 0.7];%系统频率响应的分母向量
h = freqz(num, den, w);%求系统的频率响应
subplot(2,1,1)
plot(w/pi,real(h));grid
title('Real part of H(e^{j\omega})')
xlabel('\omega /\pi');
ylabel('Amplitude');
subplot(2,1,2)
plot(w/pi,imag(h));grid
title('Imaginary part of H(e^{j\omega})')
xlabel('\omega /\pi');
ylabel('Amplitude');
pause
subplot(2,1,1)
plot(w/pi,abs(h));grid
title('Magnitude Spectrum |H(e^{j\omega})|')
xlabel('\omega /\pi');
ylabel('Amplitude');
subplot(2,1,2)
plot(w/pi,angle(h));grid
title('Phase Spectrum arg[H(e^{j\omega})]')
xlabel('\omega /\pi');
ylabel('Phase in radians');
(2)实验结果:
clf;
w = -pi:2*pi/255:pi;
wo = 0.4*pi;
D = 8;%设定对原序列时移的大小
num = [1 2 3 4 5 6 7 8 9];
h1 = freqz(num, 1, w);%求原序列的频率响应
h2 = freqz([zeros(1,D) num], 1, w);%在原序列前面加上一定数量的0,以达到对原序列进行时移的操作(时移不改变序列的频率响应,但是改变了相频特性)
subplot(2,2,1)
plot(w/pi,abs(h1));grid
title('Magnitude Spectrum of Original Sequence')
subplot(2,2,2)
plot(w/pi,abs(h2));grid
title('Magnitude Spectrum of Time-Shifted Sequence')
subplot(2,2,3)
plot(w/pi,angle(h1));grid
title('Phase Spectrum of Original Sequence')
subplot(2,2,4)
plot(w/pi,angle(h2));grid
title('Phase Spectrum of Time-Shifted Sequence')
从图可以看出,原信号经过时移之后,系统函数的幅度响应没有发生变化,而相位谱发生了变化,相位谱的谱线比以前变得更密一些。
(3)实验结果:
clf;
w = -pi:2*pi/255:pi;
wo = 0.2*pi;%设定对原序列频移的大小
num1 = [1 3 5 7 9 11 13 15 17];%原序列
L = length(num1);%求原序列的长度
h1 = freqz(num1, 1, w);%求原序列的频率响应
n = 0:L-1;
num2 = exp(wo*i*n).*num1;%直接利用频移的性质公式来计算序列的频移
h2 = freqz(num2, 1, w);%求频移后序列的频率响应(频移会改变序列的频率响应和相频特性)
subplot(2,2,1)
plot(w/pi,abs(h1));grid
title('Magnitude Spectrum of Original Sequence')
subplot(2,2,2)
plot(w/pi,abs(h2));grid
title('Magnitude Spectrum of Frequency-Shifted Sequence')
subplot(2,2,3)
plot(w/pi,angle(h1));grid
title('Phase Spectrum of Original Sequence')
subplot(2,2,4)
plot(w/pi,angle(h2));grid
title('Phase Spectrum of Frequency-Shifted Sequence')
从图可以看出,原信号经过频移之后,系统函数的幅度响应和相位谱都发生了变化,并且幅度响应和相位谱都是仅仅发生了左右移动的变化。
2. 线性时不变离散时间系统的频域分析:
(1)实验结果:
clf;
w = 0:8*pi/511:pi;
num = [0.15 0 -0.15];%传输函数的分子向量
den = [1 -0.5 0.7];%传输函数的分母向量
h = freqz(num, den, w);%求传输函数的频率响应
subplot(2,1,1)
plot(w/pi,real(h));grid
title('Real part of H(e^{j\omega})')
xlabel('\omega /\pi');
ylabel('Amplitude');
subplot(2,1,2)
plot(w/pi,imag(h));grid
title('Imaginary part of H(e^{j\omega})')
xlabel('\omega /\pi');
ylabel('Amplitude');
pause
subplot(2,1,1)
plot(w/pi,abs(h));grid
title('Magnitude Spectrum |H(e^{j\omega})|')
xlabel('\omega /\pi');
ylabel('Amplitude');
subplot(2,1,2)
plot(w/pi,angle(h));grid
title('Phase Spectrum arg[H(e^{j\omega})]')
xlabel('\omega /\pi');
ylabel('Phase in radians');
从频率响应图中可以看出,该滤波器是一个带通滤波器。
(2)实验结果:
clf;
M = 6;%设定滤波器的长度
num = ones(1,M)/M;
[g,w] = gain(num,1);%求增益函数
plot(w/pi,g);grid
axis([0 1 -50 0.5])
xlabel('\omega /\pi');ylabel('Gain in dB');
title(['M = ', num2str(M)])
gain函数:
function [g,w] = gain(num,den)
w = 0:pi/255:pi;
h = freqz(num,den,w);%求频率响应
g = 20*log10(abs(h));%求频率响应h的增益响应
(3)实验结果:
clf;
num=[1];%设定函数的分子向量
den = [1 -1.848 0.85];%设定函数的分母向量
disp(roots(den));%输出零点
zplane(num,den);%绘制系统函数的零极点图
从零极点图可以看出来,该函数的2个极点均在单位圆内,即该系统是一个稳定的系统。