实验四获取滤波器设计做需要的性能指标
要求:为了完成对子作业1中音频信号的滤波,对子作业1中的音频信号进行频谱分析,并获取滤波器设计所需要的性能指标。
这篇文章比较水,一是我现在是个🐏,二是我觉得第四次大作业实在没啥要写的。
一、对语音信号进行频谱分析
语音信号的频谱分析啥的之前都做过了,所以直接调用之前的代码。代码不再列出,图片如下:
二、对滤波器性能指标的判断
由于题目要求获取滤波器设计所需要的性能指标,因此打开fdatool,如下图所示:
可以看到需要获取的性能指标主要就在两个方框内,第一个是频率指标,第二个是幅度指标。频率指标中,由上到下分别为 F s F_s Fs语音信号采样频率, F s t o p F_{stop} Fstop阻带截止频率, F p a s s F_{pass} Fpass通带截止频率;幅度指标中,由上到下分别为阻带和通带内的最大衰减 A s t o p A_{stop} Astop和 A p a s s A_{pass} Apass,单位为dB,对应到数字信号处理教材的169面中的 σ 1 \sigma_1 σ1和 σ 2 \sigma_2 σ2。文章来源:https://www.toymoban.com/news/detail-762186.html
我的小提琴信号在Adobe Audition中设置的是8000Hz,因此 F s F_s Fs设置为8000;阻带截止频率和通带截止频率分别根据需要设置,因为我在Adobe Audition给小提琴的信号叠加的噪声音轨是低频的,且根据前两幅图的频谱分析大概可以看出噪声频率分布在300Hz以下,所以 F s t o p F_{stop} Fstop和 F p a s s F_{pass} Fpass分别设置为200Hz和250Hz;阻带和通带内的最大衰减 A s t o p A_{stop} Astop和 A p a s s A_{pass} Apass的默认值分别为80和1,根据书上的公式可以算出阻带和通带的衰减倍数分别为 10000 10000 10000和 1 0 1 20 10^{\frac 1 {20}} 10201。文章来源地址https://www.toymoban.com/news/detail-762186.html
附录MATLAB代码
clear;
clc;
format long;
close all;
% ==========原始信号========== %
[x, fs] = audioread('./Audio/实验四语音信号/小提琴.wav');
x = x(:, 1);
x = x';
N = length(x); % 整个图由N1个样点构成
dt = 1 / fs;
tscale = dt * N; % X轴显示的时间长度,单位为秒
t = 0 : dt : tscale - tscale / N;
subplot(1, 2, 1);
% subplot(2, 4, 1);
plot(t .* 1000, x);
title('小提琴信号时域图');
xlabel('t/ms', 'FontName', '宋体', 'FontWeight', 'normal', 'FontSize', 14);
ylabel('电压/V', 'FontName', '宋体', 'FontWeight', 'normal', 'FontSize', 14);
grid on;
y = fft(x);
realy = 2 * abs(y(1 : length(x))) / length(x);
realf = (0 : length(x) - 1) * (fs / length(x));
subplot(1, 2, 2);
% subplot(2, 4, 5);
stem(realf, realy, '.');
title('小提琴信号频谱图');
axis([0, 4000, 0, 0.04]);
xlabel('f/Hz', 'FontName', '宋体', 'FontWeight', 'normal', 'FontSize', 14);
ylabel('电压/V', 'FontName', '宋体', 'FontWeight', 'normal', 'FontSize', 14);
grid on;
figure;
% ==========小提琴混杂噪声信号========== %
[Xn, fs1] = audioread('./Audio/实验四语音信号/小提琴混杂声音_缩混.wav');
Xn = Xn(:, 1);
Xn = Xn';
N1 = length(Xn); % 整个图由N1个样点构成
dt1 = 1 / fs1;
tscale1 = dt1 * N1; % X轴显示的时间长度,单位为秒
t1 = 0 : dt1 : tscale1 - tscale1 / N1;
subplot(1, 2, 1);
% subplot(2, 4, 2);
plot(t1 .* 1000, Xn);
title('小提琴混杂噪声信号时域图');
xlabel('t/ms', 'FontName', '宋体', 'FontWeight', 'normal', 'FontSize', 14);
ylabel('电压/V', 'FontName', '宋体', 'FontWeight', 'normal', 'FontSize', 14);
grid on;
Y1 = fft(Xn);
realy = 2 * abs(Y1(1 : length(Xn))) / length(Xn);
realf = (0 : length(Xn) - 1) * (fs1 / length(Xn));
subplot(1, 2, 2);
% subplot(2, 4, 6);
stem(realf, realy, '.');
title('小提琴混杂噪声信号频谱图');
axis([0, 4000, 0, 0.04]);
xlabel('f/Hz', 'FontName', '宋体', 'FontWeight', 'normal', 'FontSize', 14);
ylabel('电压/V', 'FontName', '宋体', 'FontWeight', 'normal', 'FontSize', 14);
grid on;
14);
ylabel('电压/V', 'FontName', '宋体', 'FontWeight', 'normal', 'FontSize', 14);
grid on;
到了这里,关于实验四获取滤波器设计做需要的性能指标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!