目录
1 设计名称 2
2 实验目的 2
3 设计要求 2
4 程序设计与分析 2
5 步骤分析 4
6 实验总结 11
7 附录 11
信号与系统 2022- mby Page 2 of 11
1 设计名称
去除干扰蜂鸣音
2 实验目的
掌握信号时频域分析方法,正确理解采样定理,准确理解滤波器的概念。
3 设计要求
提供一个包含某人说话语音片段的声音文件(buzz.wav ),但该语音信号被一
个包含有几个谐波分量的蜂鸣信号干扰了。
1. 用 Matlab 的 wavread 命令读取该声音文件。注意,该命令可以同时得到声音
文件的采样率和采样位宽,请查阅 Matlab 的帮助文件。
2. 用快速傅立叶变换(FFT)计算并画出声音信号的频谱,列写出蜂鸣信号的谐
波频率。
3. 思考如何将这些蜂鸣音去除?将去除了蜂鸣音的语音片段播放出来,仔细聆听
并写下语音片段中人物所说的话。注意:由于只能播放实信号,因此记得提取
信号的实部。
4 程序设计与分析
程序由参数定义、原音频信号时-频域分析、滤波器参数、音频信号处理、处理
后音频信号时-频域分析、还原音频并播放 6 个部分组成。
具体程序与说明见下:
1 %%1 : 参 数 定 义
2 clc;
3 clear;
4
5 [sig_t,Fs]=audioread('buzz.wav');% 读 取 音 频 信 息
6 sig_f=fft(sig_t); % 快 速 傅 里 叶 变 换
7 T=1/Fs; % 采 样 间 隔
信号与系统 2022- mby Page 3 of 11
8 L=length(sig_t); % 信 号 长 度
9 t=(0:L‐1)*T; % 时 域 横 坐 标 轴
10
11
12 %%2 : 原 音 频 信 号 时 ‐ 频 域 分 析
13 figure(1);plot(t,sig_t);grid on % 做 时 域 图
14 title(' 未 处 理 音 频 时 域 图 ');xlabel('t');ylabel('y');
15
16 A=abs(sig_f/L); % 频 域 幅 度
17 f=Fs*(1:L)/L; % 频 域 横 坐 标 轴
18 figure(2);plot(f,A);grid on % 做 频 域 图
19 title(' 未 处 理 音 频 频 域 图 ');xlabel('f/(Hz)');ylabel('y');
20
21
22 %% 3 : 滤 波 器 参 数
23 ff0=940; % 下 限 截 至 频 率 [ 观 测 图 像 在 880hz , 稍 提 高]
24 ff_mid=5515; % 中 点 频 率 [ 根 据 音 频 频 域 图 观 测 得]
25 ff1=2*ff_mid‐ff0;% 上 限 截 至 频 率
26
27 NUM1=find(f<ff0);NUM2=find(f>ff1);
28 NUM=[NUM1';NUM2']% 找 到 需 滤 除 频 率 的 索 引
29
30
31 %% 4 : 音 频 信 号 处 理
32 sig_f(find(abs(sig_f/L)>0.000141))=0;
33 % 滤 除 频 域 观 测 得 到 的 噪 声 ;
34 % 数 据 0.000141 未 多 次 更 改 数 值 后 由 处 理 后 音 频 信 号 频 域 观
测 数 据 得 到
35 sig_f(NUM)=0.2*sig_f(NUM)
36 % 第 一 步 处 理 后 听 到 处 理 音 频 仍 伴 随 着 持 续 低 噪 声 , 考 虑 使
用 带 通 滤 波 器 直 接 去 除 双 边 频 域 信 号 ;
37 % 直 接 滤 除 所 有 , 此 时 持 续 低 噪 声 明 显 消 失 , 但 此 时 人 身 听
起 来 ‘ 失 真 ’ ( 与 初 步 处 理 音 频 相 比 更 不 像 真 人 说 话 的
效 果 ) ;
信号与系统 2022- mby Page 4 of 11
38 % 那 么 可 以 知 道 双 边 频 率 信 号 的 存 在 会 带 来 持 续 低 噪 声 , 但
是 会 使 人 声 听 起 来 ‘ 更 饱 和 ’ , 于 是 考 虑 对 该 信 号 进 行
幅 度 调 整 而 非 直 接 滤 除 。 经 过 多 次 尝 试 , 将 幅 度 调 整 0.2
倍 时 , 可 以 保 持 人 声 的 ‘ 饱 和 ’ 同 时 消 减 持 续 低 噪 声。
此 时 , 可 使 得 去 噪 效 果 呈 现 最 佳 状 态 。
39
40
41 %% 5 : 处 理 后 音 频 信 号 时 ‐ 频 域 分 析
42 A=abs(sig_f/L); % 频 域 幅 度
43 f=Fs*(1:L)/L; % 频 域 横 坐 标 轴
44 figure(3);plot(f,A);grid on
45 title(' 处 理 后 音 频 频 域 图 ');xlabel('f/(Hz)');ylabel('y');
46
47
48 %% 6 : 还 原 音 频 并 播 放
49 X=ifft(sig_f); % 傅 里 叶 反 变 换
50 h=10*real(X); % 取 实 部 并 10 倍 放 大 音 量
51 sound(h,Fs) % 播 放
5 步骤分析
• 做音频信号时域图,由于蜂鸣干扰,时域图像如下:
0 0.5 1 1.5 2 2.5 3 3.5 4
t
-1.5
-1
-0.5
0
0.5
1
1.5
y
图 1: 原音频信号时域图