当前位置: 首页 > article >正文

DSP实验七 综合实验与考查

目录

一、实验目的

二、需验证的理论

三、实验内容

四、实验指导

五、实验设计报告要求

六、思考题

【实验过程】

1、语音采样、时域波形、频域波形

2、延时

3、混响

4、单回声

5、多重回声

6、无限回声

7、全通结构混响器

8、IIR低通滤波器处理

9、IIR带通滤波器处理

10、IIR高通滤波器处理

11、FIR高通滤波器处理

12、FIR低通滤波器处理

13、FIR带通滤波器处理

14、加噪声、用FIR低通滤去噪声/用IIR低通滤去噪声

15、男性声音分析

16、心得


一、实验目的

综合运用所学数字信号处理理论知识进行语音信号的采集、频谱分析、延时、滤波处理等,通过理论推导得出相应结论并利用MATLAB作为编程工具进行计算机实现,从而对数字信号处理有一个系统的掌握和直观理解。

*注.本部分内容如果全部放在后面做会花费较长时间,要求前面的每一个实验都对实验一采样语音进行分析,包括变换、滤波等,并在每个实验报告里写出来并分析,最后一个实验综合分析。

、需验证的理论

1、语音信号采集与处理

2、信号频谱分析

3、数字滤波器分析与设计

实验内容

录制一段个人的语音信号,然后对语音信号进行时域波形和频谱分析,然后进行滤波处理。

1、将原始信号加入延时和混响回声处理,将处理后信号进行频谱分析及语音信号回放,与原始频谱和原始声音进行比较;

2、对原始语音信号进行FIR和IIR滤波,然后画出滤波后信号的时域波形和频谱,对滤波前后的信号和频谱进行对比;同时回放滤波后信号,与原始声音对比,分析声音的变化。

实验指导

1、语音信号的采集

通过录音软件录制一段语音,说出自己的名字和学号,时长大约1到2秒,在MATLAB中,通过使用wavread函数,对语音进行采样:

[y,fs,nbits]=wavread('xxxxxxx');       %语音信号的采集

采样值放在向量y中,采样频率为fs,采样位数为nbits。

2、语音信号的频谱分析和回放

首先画出采样后语音信号的时域波形,然后对信号进行快速傅里叶变换,得到其频谱图。读取语音文件并绘出波形和频谱的程序:

[y,fs,nbits]=wavread('xxxxxxxx');        %语音信号的采集

sound(y,fs,nbits);                     %语音信号的播放

n=length(y) ; %计算语音信号的长度

Y=fft(y,n);                           %快速傅里叶变换

figure;

subplot(2,1,1); %绘出时域波形

3、原始信号延时、混响和回声的处理

(1) 对原始信号加入延时,并画出延时后信号的时域波形和频谱图,然后分别从时域和频域上分析延时后信号与原始信号的变化,最后再利用sound函数对声音进行回放,对感觉到的延时前后的声音变化作出说明。

(2) 设计如下几种特殊类型滤波器,对原始信号分别进行如下几种回声滤波或混响处理,并画出滤波后信号的时域波形和频谱图,然后分析其变化,最后对声音进行回放,对感觉到的滤波前后的声音变化作出说明。

    回声或者混响滤波器类型:

   

Ps其中a是回声的衰减系数(其绝对值小于1),R是回声的延迟(以样本为单位)

4、原始信号的滤波处理

(1) 分别用FIR和IIR滤波器对采集的语音信号进行滤波。

(2) 对滤波后的信号进行傅里叶变换,分别得到FIR和IIR滤波后信号的频谱特性,同时画出其时域波形,与原始信号进行比较,分析信号的变化。

(3) 对FIR滤波和IIR滤波后的信号进行比较并作出说明。

(4) 对滤波后的声音进行回放并对比分析变化。

根据频谱特征设计FIR和IIR滤波器。在Matlab中,可以利用函数fir1设计FIR滤波器,利用函数butter,cheby1设计IIR滤波器,利用Matlab中的函数freqz画出各步滤波器的频率响应。

①低通滤波器的性能指标:fp=1000Hz,fc=1200Hz,As=100db ,Ap=1dB

这里我设Fs=6000Hz,wp=fp/fs*2*pi=0.33*pi,ws=0.24*pi

②高通滤波器的性能指标:fp=3500Hz,fc=4000Hz,As=100dB,Ap=1dB;

③带通滤波器的性能指标:fp1=1200Hz,fp2=3000hZ,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB

在MATLAB中,利用[N,wc]=butter(N,wc,Rp,As,'s')设计并计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc;[B,A]=cheby1(N,Rp,wpo,'ftypr')设计切比雪夫I型滤波器。

实验设计报告要求

报告每人单独撰写,内容包括:基本原理、设计方案及实现、仿真结果及分析、结论与建议。附参考文献、程序。

六、思考题

1、通过理论分析和回放等说明滤波前后的信号变化

2、换一个与你性别相异的人录制同样一段语音内容,进行上面的过程,分析变化;

3、通过使用randn函数产生随机噪声信号,并加到语音信号中得到被污染的语音信号叠加到原始的语音信号中,分析叠加前后信号频谱的变化,设计一个合适的滤波器,能够把噪声部分滤除。

【实验过程】

1、语音采样、时域波形、频域波形
%%
clear,clc;
[y,fs]=audioread('C:\Users\23321\Desktop\DSP\me.wav');
%语音信号的采集采样值放在向量y
subplot(3,1,1)
plot(y);
title('时域波形');
sound(y,fs);
n=length(y)%计算语音信号长度
Y=fft(y);%快速傅里叶
subplot(3,1,2)
plot(abs(Y));%频域波形
title('幅频特性');
subplot(3,1,3)
plot(angle(Y));
title('相频特性');

可以看出实信号的快速傅里叶变换关于n的一半(59829.5)成圆周偶对称

改变相频坐标轴为axis([0 200 -3 3]),可以更细致观察发现相频很杂。

2、延时
%%
%2.延时
clear,clc;
[y,fs]=audioread('C:\Users\23321\Desktop\DSP\me.wav');
n=length(y)
% 假设我们想要延时D个样本 
D = 120000; % 注意:这个值可能非常大,取决于音频长度和fs 
y1 = [zeros(D, 1); y]; % 只需在y前面插入D个零 
subplot(3,1,1)
plot(y1);
title('延时后时域波形');
sound(y1,fs);%延时后语音信号的播放
n1=length(y1)%计算延时后语音信号的长度
Y1=fft(y1);%对延时后信号进行快速傅里叶变换
subplot(3,1,2)%绘出延时后频域波形
plot(abs(Y1));
title('延时后幅频特性');
subplot(3,1,3)
plot(angle(Y1));
title('延时后相频特性');


http://www.kler.cn/a/518114.html

相关文章:

  • 双层Git管理项目,github托管显示正常
  • 【深度之眼cs231n第七期】笔记(三十一)
  • 炫酷JavaScript文本时钟
  • 《企业应用架构模式》笔记
  • WGCLOUD使用介绍 - 如何监控ActiveMQ和RabbitMQ
  • 通过亚马逊云科技Bedrock打造自定义AI智能体Agent(上)
  • 数据库之PostgreSQL详解
  • 构建基于知识图谱的语义化问答系统
  • ray.rllib 入门实践-2:配置算法
  • Lua 初级教程
  • Android BitmapShader简洁实现马赛克,Kotlin(二)
  • Java设计模式 三十 状态模式 + 策略模式
  • ProfiNet转CANopen应用于汽车总装生产线输送设备ProfiNet与草棚CANopen质量检测系统
  • C++ —— vector 容器
  • 立创开发板入门ESP32C3第八课 修改AI大模型接口为deepseek3接口
  • Redis高阶3-缓存双写一致性
  • 【8】思科IOS AP升级操作
  • 【Flutter】旋转元素(Transform、RotatedBox )
  • 【EI会议推荐】人工智能、电子信息、智能制造、机器人、自动化、控制科学、机械制造等计算机领域多主题可选!
  • STM32 调试小问题记录
  • qsort和std::sort比较函数返回值的说明
  • 《CPython Internals》阅读笔记:p353-p355
  • 正点原子Linux 移植USB Wifi模块MT7601U驱动(上)
  • Android-UI自动化测试环境配置
  • 【C语言算法刷题】第2题 图论 dijkastra
  • PBFT算法