wvtool
wvtool()
是 MATLAB 中用于信号处理工具箱(Signal Processing Toolbox)的一个函数,全称为 Waveform Viewer Tool。这个函数提供了一个图形用户界面(GUI),用于可视化和分析一维信号的频谱特性,特别是对于滤波器和信号的频率响应分析非常有用。当有一个数字滤波器或者想要观察某个信号的频谱时,wvtool()
可以帮助以直观地理解这些数据。
主要功能特点:
-
多图展示:
wvtool()
可以同时显示多个图形窗口,包括但不限于:- 幅度响应(Magnitude Response):显示滤波器或信号的幅度随频率变化的情况。
- 相位响应(Phase Response):展示相位随频率变化的图形。
- 群延迟(Group Delay):对于滤波器设计尤为重要,显示信号各频率成分通过系统的时间延迟差异。
- 零极点图(Pole-Zero Plot):提供对系统稳定性及频率响应特性的直观理解,通过展示系统函数在复平面上的零点和极点。
-
交互式操作:用户可以直接在界面上调整频率范围、缩放视图等,以便更细致地分析特定区域。
-
多信号/滤波器比较:可以同时分析和比较多个滤波器或信号的特性,这对于滤波器设计和选择过程非常有帮助。
% 创建一个简单的滤波器示例
b = fir1(20, 0.5); % 创建FIR滤波器
figure;
wvtool(b); % 显示滤波器的幅度响应
title('WVTool Example');
cpsd计算并显示互谱密度
% 创建示例信号
Fs = 1000; % 采样频率
t = 0:1/Fs:10-1/Fs; % 时间向量
x = sin(2*pi*50*t) + randn(size(t)); % 信号
y = sin(2*pi*100*t) + randn(size(t)); % 另一个信号
figure;
cpsd(x, y, [], [], [], Fs); % 计算互谱密度并绘图
title('CPSD Example');
mscohere计算并显示信号的相干函数
% 创建示例信号
Fs = 1000;
t = 0:1/Fs:10-1/Fs;
x = sin(2*pi*50*t) + randn(size(t));
y = sin(2*pi*50*t) + randn(size(t));
figure;
mscohere(x, y, [], [], [], Fs); % 计算相干函数并绘图
title('MSCOHERE Example');