数字信号处理实验二:数字语音信号与频谱分析

您所在的位置:网站首页 噪声特性分析 数字信号处理实验二:数字语音信号与频谱分析

数字信号处理实验二:数字语音信号与频谱分析

2023-10-09 21:11| 来源: 网络整理| 查看: 265

文章目录 一、实验目的二、实验过程与结果1、数字音频信号的频谱分析2、 数字音频信号的频谱分析3、 数字和弦音频信号的生成 三、结果分析与实验结论1、读数字音频信号的频谱分析2、数字和弦音频信号的生成

一、实验目的

熟悉 MATLAB 编程环境和编程特点;掌握数字音频信号的读取、存储和播放方 法,以及波形绘制和标注方法。

掌握数字音频信号的频谱(包括幅度谱和相位谱)计算方法,以及幅度谱和相 位谱的主要特点。

掌握数字和弦音频信号的基本概念和生成方法;掌握时间延迟对生成数字和弦 音频信号的影响。

二、实验过程与结果 1、数字音频信号的频谱分析

(1)数字音频信号读取 MATLAB 软件提供了数字音频信号的读取函数 audioread(),利用该函数可以读取常 见格式(如 MP3、WAV 格式等)的数字语音信号(包括单声道和双声道),并以数组形 式返回音频序列值及其采样频率。

(2)数字音频信号存储: MATLAB 软件提供了数字音频信号的存储函数 audiowrite(),利用该函数可以将数字 语音信号(包括单声道和双声道)保存为常见格式(如 MP3、WAV 等)的音频文件, 注意:在保存数字语音信号时需要采样频率值。

(3)数字音频信号绘制: 数字语音信号的采样频率比较高,为了显示清晰,可以用绘制连续变量的函数 plot() 替换绘制离散序列的函数 stem();在绘制数字音频信号时需要用函数 xlabel()和 ylabel()标注横坐标和纵坐标。

(4)数字音频信号播放: MATLAB 软件提供了常见数字音频信号的播放函数audioplayer(),它的输入参数包 括数字音频信号和采样频率。另外,可以使用函数 sound()替代 audioplayer(),它的默认 采样频率值为 8192 赫兹。

2、 数字音频信号的频谱分析

(1)读取数字音频信号并绘制频谱 双声道数字音频信号文件为 Hello.wav,在 MATLAB 环境下读取前 16s 的数字音频 数据,绘制其时域波形并播放该数字音频。调用 MATLAB 提供的快速傅里叶变换 fft() 函数,计算数字音频信号的幅度谱和相位谱(使用一个声道的音频序列即可),数字频 率的转换方法见实验原理部分。

(2)翻转数字音频信号并绘制频谱 将第(1)步读取的 16s 单通道数字音频信号的时域波形翻转(下标从 0 到 N −1 转 化为从 N −1 到 0),绘制翻转后的数字音频信号;调用 MATLAB 提供的计算快速傅里 叶变换的函数 fft(),计算翻转数字音频信号的幅度谱和相位谱(使用一个声道的音频序 列即可)。 比较原始数字音频信号和翻转数字音频信号的幅度谱,比较原始数字音频信号和翻 转数字音频信号相位谱。为了使比较结果更加清晰,可以使用函数 unwrap()对相位谱进 行解缠绕处理,已获得连续的相位形式。与此同时,为了使比较结果更加清晰,可以仅 显示数字音频信号的局部频谱,如将频率范围设定为 [0,0.2π] )。

3、 数字和弦音频信号的生成

和弦是指在音程上满足特定先后关系的一组音频信号,由可以由三个或以上的相同 音频在时间轴上依次叠加得到。

(1) 读取数字音频信号并绘制频谱

数字音频信号文件为 Intro.mp3,采集频率为 Fs = 32 kHz。在 MATLAB 环境下读取 数字音频文件 Intro.mp3,并绘制前 12s 的音频波形并播放音频信号。调用计算快速傅里 叶变换 fft()函数,得到数字音频信号的幅度谱及其分贝表示形式(数字频率的转换方法 见实验原理部分)。

(2)生成数字和弦音频信号并绘制频谱 利用第(1)步读取的数字音频信号,构造出包含五个和弦分量的数字和弦音频信 号(第 k 个和弦分量是将原始音频信号延时 F k s ´ − ( 1) /10 个采样单位、对应的序列值变 为原来的 ( 1) 1/ 2 k − ,其中 k = ¼ 1, 2, ,5。绘制数字和弦音频信号的波形,并调用函数 fft() 计算数字音频信号的幅度谱,并用函数 plot()绘制幅度谱及其分贝表示形式。调整延时 时间并再次生成数字和弦音频信号,通过播放来辨别与原来的合成结果的异同。

三、结果分析与实验结论 1、读数字音频信号的频谱分析

(1) 读取数字音频信号并绘制频谱

%% 读取和储存 clear;clc; [y,Fs] = audioread('hello.wav'); figure(1); plot(y); xlabel('n');ylabel('y'); title("读取音频并绘制时域信息"); x = fft(y); k = 0:length(x)-1; wk = 2*pi*k/length(x); figure(2) subplot(3,1,1); plot(wk,abs(x)); xlabel('w/pi');ylabel('angle(y)'); title("幅度"); subplot(3,1,2); unwx = unwrap(angle(x)); plot(wk,unwx); xlabel('w/pi');ylabel('angle(y)'); title("相位"); subplot(3,1,3); plot(wk,angle(x)); suptitle("读取音频并绘制频谱"); xlabel('w/pi');ylabel('angle(y)'); title("未解缠相位");

dsp2_1.1 dsp2_1.2

实验结果分析:

可以发现没有解缠绕之后的图像非常的密集,这是因为解缠绕之前的相位只限制在正负π之间,会导致变化的特别快,所以显得非常地密集,解缠绕可以更好地观察相位情况。

(2) 翻转数字音频信号并绘制频谱

%% 反转分析 figure(3); y = flip(y); plot(y); xlabel('n');ylabel('y'); title("读取音频反转并绘制时域信息"); x = fft(y); k = 0:length(x)-1; wk = 2*pi*k/length(x); figure(4) subplot(2,1,1); suptitle("读取音频反转并绘制频谱"); plot(wk,abs(x)); xlabel('w/pi');ylabel('angle(y)'); title("幅度"); subplot(2,1,2); unwx = unwrap(angle(x)); plot(wk,unwx); xlabel('w/pi');ylabel('angle(y)'); title("相位");

在这里插入图片描述

dsp2_2.2

实验结果分析:

明显发现反转之后的时域图和原来的时域图呈现对称关系,但是幅度图没有发现变换,因为整段信号在频率上的投影关系没有变,正的变换和逆的变换对幅度图影响不大,相位图与原来呈对称关系。

2、数字和弦音频信号的生成

(1)读取数字音频信号并绘制频谱:

%% 读取和弦 clear;clc; [y2,Fs2]=audioread('Intro.mp3',[1,32000*12]); %采前12s的音频 audioplayer(y2,Fs2);audiowrite('work2.wav',y2,Fs2) figure(1);plot(y2) xlabel('n');ylabel('y2') title('Intro原始数字音频信号') x2=fft(y2); n2=length(y2);k2=0:n2-1;wk2=2*pi*k2/n2; ax2=abs(x2); figure(2);subplot(2,1,1);plot(wk2,ax2) xlabel('w/pi');ylabel('|y2|');title('Intro音频幅度谱') subplot(2,1,2);plot(wk2,20*log10(ax2)) %分贝形式表示 xlabel('w/pi');ylabel('20log10|y2|');title('Intro音频幅度谱分贝形式')

dsp2_3.1

dsp3_2.2

(2)生成数字和弦音频信号并绘制频谱

%% 生成和弦 yy=y2; for kk=2:5 z=[zeros((Fs2*(kk-1)/10),1);y2]; yy=[yy;zeros((Fs2/10),1)]; z=z.*((1/2^(kk-1))); yy=yy+z; end figure(3);plot(yy) xlabel('n');ylabel('ychord');title('混响后数字音频信号') xc=fft(yy);nc=length(yy);kc=0:nc-1;wkc=2*pi*kc/nc; axc=abs(xc); figure(4);subplot(2,1,1);plot(wkc,axc) xlabel('w/pi');ylabel('|xchord|') title('Intro混响后音频幅度谱') subplot(2,1,2);plot(wkc,20*log10(axc)) xlabel('w/pi');ylabel('20log10|xchord|') title('Intro混响后音频幅度谱分贝形式') yy=yy./2; %防止写入文件时被裁剪 audiowrite('chord.wav',yy,Fs2)

dsp2_4.1

dsp2_4.2 实验结果分析:

​可以看出由于取的和弦延迟不是很多所以变换不是特别大,但是信号变得平滑了,延迟作用于频域上就相当于整体加了一个斜率为-π/2的直线。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3