重邮+数字信号处理实验三:z变换及离散LTI系统的z域分析

实验目的:

( 1 )学会运用 Matlab 求离散时间信号的有理函数 z 变换的部分分式展开;
( 2 )学会运用 Matlab 分析离散时间系统的系统函数的零极点;
( 3 )学会运用 Matlab 分析系统函数的零极点分布与其时域特性的关系;
( 4 )学会运用 Matlab 进行离散时间系统的频率特性分析。

实验任务:

1 .试用 MATLAB 的 residuez 函数,求出以下部分分式展开和。


2. 试用 Matlab 画出下列因果系统的系统函数零极点分布图,并判断系统的稳定性。

3.试用 Matlab 绘制如下系统的频率响应曲线。

  1. 编写 Matlab 程序,系统的差分方程为 𝑦(𝑛) − 0.9𝑦(𝑛 − 8) = 𝑥(𝑛) − 𝑥(𝑛 − 8) 。
    ( 1 )画出该系统的零极点分布图,判断系统的稳定性;( 2 )画出系统在 0~2π 范围内的幅频特性曲线和相频特性曲线;(3 )分析该系统是什么类型的滤波器。

思考题

  1. 编写 Matlab 程序,分别采用系统 𝐻 1 (𝑧) = 𝑧/𝑧+0.8 、𝐻 2 (𝑧) = 𝑧/𝑧−1 、𝐻 3 (𝑧) = 𝑧 /𝑧+1.2
    对音频文件 motherland.wav 进行滤波(可采用实验二的 conv 函数)。( 1 )画出滤 波前后该音频文件 1~2s 时间段的连续时域波形图,要求横坐标的单位为秒;( 2 ) 说明滤波后信号幅度变化的原因。
  2. 已知系统函数𝐻(𝑧) =


编写 Matlab 程序实现:( 1 )画出该系统的零极点分布图,判断系统的稳定性;(2 )画出系统在 0~2π 范围内的幅频特性曲线和相频特性曲线;(3 )查找资料说明该系统是什么类型的滤波器,在实际应用中有什么功能?

解答

一定要记得补零,不然会报错

最后一问的最后一小问答案:该系统是一个梳状滤波器,其特征是通过去除低频分量而能够增强特定频率的信号成分。

Matlab 复制代码
%第一题
B1=[2,16,44,56,32];
A1=[3,3,-15,18,-12];
[R,P,K]=residuez(B1,A1);

R
P
K

%第二题
B2=[0,2,-1.6,-0.9];
A2=[1,-2.5,1.96,-0.48];
B3=[0,0,0,1,-1]
A3=[1,-0.9,-0.65,0.873,0];

%画图
figure
subplot(1,2,1);
zplane(B2,A2),grid on
legend('零点','极点');
title("零极点分布图");

subplot(1,2,2);
zplane(B3,A3),grid on
legend('零点','极点');
title("零极点分布图");

%题三
B4=[1,0,0];
A4=[1,-0.75,0.125];
[H,w]=freqz(B4,A4,400,'whole');
Hm=abs(H);
Hp=angle(H);
figure
subplot(2,1,1);
plot(w/pi,Hm),grid on;
xlabel("\omega/pi(rad/s)");
ylabel("Magnitude");
title("第三题的离散系统的幅频特性曲线")

subplot(2,1,2);
plot(w/pi,Hp),grid on;
xlabel("\omega/pi(rad/s)");
ylabel("Phase");
title("第三题的离散系统的相频特性曲线")

%第四题
B5=[1,0,0,0,0,0,0,-1];
A5=[1,0,0,0,0,0,0,-0.9];
[H2,w2]=freqz(B5,A5,400,"whole");
Hm2=abs(H2);
Hp2=angle(H2);

figure
subplot(3,1,1);
zplane(B5,A5),grid on;
legend('零点','极点');
title('零极点分布图');

subplot(3,1,2);
plot(w2/pi,Hm2),grid on;
xlabel("\omega/pi(rad/s)");
ylabel("Magnitude");
title("第四题的离散系统的幅频特性曲线")

subplot(3,1,3);
plot(w2/pi,Hp2),grid on;
xlabel("\omega/pi(rad/s)");
ylabel("Phase");
title("第四题的离散系统的相频特性曲线")

思考题解答

如果要提取1到2s一定要利用好fs框定范围,而不是全部拿出来

针对问答:

针对第二问,解释滤波后信号幅度变化的原因:

信号经过滤波后,幅度变化的原因主要包括:

1. 滤波器特性:不同的滤波器具有不同的频率响应,对某些频率成分的增益和衰减不同。高通滤波器会增强高频成分,而衰减低频成分,反之亦然。

2. 相位延迟:滤波器可能会引入相位延迟,导致频率成分的相位发生变化,从而影响到叠加后的幅度。

3. 增益:如果滤波器设计时增益设置不当,可能会导致输出信号的幅度与输入信号幅度存在明显差异。

4. 噪声和谐波成分:滤波过程中,如果输入信号中含有噪声或者高次谐波,滤波器会调整这些成分的幅度,从而影响输出信号的整体幅度。

5. 信号能量分布:不同频率成分在信号中的能量分布不同,滤波后整体信号能量的变化也会导致幅度变化。

通过这些因素的作用,滤波后信号的幅度就可能发生变化。

思考题二应该是一个带通滤波器。

Matlab 复制代码
%思考题一 
% 读取音频文件 
[audio, fs] = audioread('motherland.wav'); % 加载音频文件 
t = (0:length(audio)-1) / fs; % 时间向量,单位为秒 
startSample = fs * 1; % 对应1秒的样本索引 
endSample = fs * 2; % 对应2秒的样本索引 
audio_segment = audio(startSample:endSample); 
% 原始音频片段的波形 
subplot(4,1,1); 
plot(time_segment, audio_segment); 
title('原始音频片段'); 
xlabel('时间 (秒)'); 
ylabel('幅度'); 

% 对音频片段进行滤波 
% H1(z) = z / (z + 0.8) 
b1 = [1 0]; % 分子系数 
a1 = [1 0.8]; % 分母系数 
filtered_audio1 = filter(b1, a1, audio_segment); 

% 滤波后的音频波形 
subplot(4,1,2); 
plot(time_segment, filtered_audio1); 
title('滤波后音频1 '); 
xlabel('时间 (秒)'); 
ylabel('幅度'); 
% H2(z) = z / (z - 1) 
b2 = [1 0]; 
a2 = [1 -1]; 
filtered_audio2 = filter(b2, a2, audio_segment); 
subplot(4,1,3); 
plot(time_segment, filtered_audio2); 
title('滤波后音频2 )'); 
xlabel('时间 (秒)'); 
ylabel('幅度'); 

% H3(z) = z / (z + 1.2) 
b3 = [1 0]; 
a3 = [1 1.2]; 
filtered_audio3 = filter(b3, a3, audio_segment); 
% 绘制原始和滤波后音频的波形 
time_segment = (0:length(audio_segment)-1) / fs; % 1-2秒片段的时间向量 
subplot(4,1,4); 
plot(time_segment, filtered_audio3); 
title('滤波后音频3'); 
xlabel('时间 (秒)'); 
ylabel('幅度');

%思考题2
Bs=[1,-2,2];
As=[2,-2,1];
[Hs,ws]=freqz(Bs,As,400,'whole');
Hms=abs(Hs);
Hps=angle(Hs);

figure
subplot(3,1,1);
zplane(Bs,As),grid on;
legend('零点','极点');
title('零极点分布图');

subplot(3,1,2);
plot(ws/pi,Hms),grid on;
xlabel("\omega/pi(rad/s)");
ylabel("Magnitude");
title("思考题的离散系统的幅频特性曲线")

subplot(3,1,3);
plot(ws/pi,Hps),grid on;
xlabel("\omega/pi(rad/s)");
ylabel("Phase");
title("思考题的离散系统的相频特性曲线")
%应该是带通滤波器
相关推荐
yugi9878383 小时前
基于MATLAB强化学习的单智能体与多智能体路径规划算法
算法·matlab
DuHz4 小时前
超宽带脉冲无线电(Ultra Wideband Impulse Radio, UWB)简介
论文阅读·算法·汽车·信息与通信·信号处理
IT猿手12 小时前
基于强化学习的多算子差分进化路径规划算法QSMODE的机器人路径规划问题研究,提供MATLAB代码
算法·matlab·机器人
fie888916 小时前
基于MATLAB的转子动力学建模与仿真实现(含碰摩、不平衡激励)
开发语言·算法·matlab
机器学习之心16 小时前
基于GRU门控循环单元的轴承剩余寿命预测MATLAB实现
深度学习·matlab·gru·轴承剩余寿命预测
简简单单做算法17 小时前
基于FFT粗估计和LS最小二乘法精估计的正弦信号参数估计和检测matlab仿真
matlab·最小二乘法·参数估计·fft粗估计·ls最小二乘法
kaikaile199517 小时前
基于MATLAB的滑动轴承弹流润滑仿真程序实现
开发语言·matlab
Not Dr.Wang4221 天前
FIR数字滤波器设计的两种实现
matlab
3GPP仿真实验室1 天前
【MATLAB源码】CORDIC-QR :基于Cordic硬件级矩阵QR分解
开发语言·matlab·矩阵
民乐团扒谱机2 天前
【微实验】机器学习之集成学习 GBDT和XGBoost 附 matlab仿真代码 复制即可运行
人工智能·机器学习·matlab·集成学习·xgboost·gbdt·梯度提升树