Matlab全倍频程和三分之一倍频程分析

Matlab full octave and one-third octave analysis

我正在尝试在 Matlab 中实现倍频程和 1/3 倍频程滤波器。不幸的是,我无法访问声学工具箱,但我尝试在 Matlab 中使用 fdesign.octave,但我不确定我是否走在正确的道路上 -并感谢任何 help/advice.

以下是我在 70 秒内采集的信号 (Fs=10,000Hz):

Fs = 10000;            % Sampling frequency
T = 1/Fs;             % Sampling period
L = 700000;             % Length of signal
t = (0:L-1)*T;        % Time vector
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
x = S + 2*randn(size(t));

三分之一八度的实现:

d = fdesign.octave(3,'Class 1','N,F0',6,11000,44100);
Hd = design(d);
y= filter(Hd,x);

原始信号和过滤后的信号图:

此时,我有一个问题 - 如何将 fdesign.octave 产生的数据绘制成倍频程或三分之一倍频程?

要获得完整的实现,请使用来自 Matlab 文件交换的 this。无需声学工具箱。包含的演示应该可以解决您的绘图问题。