基于matlab处理语音信号

news/2024/11/8 22:19:36/

matlab有处理语音信号的函数wavread,不过已经过时了,现在处理语音信号的函数名称是audioread选取4.wav进行处理(只有4的通道数为1)

利用hamming窗设计滤波器

Ham.m

function [N,h,H,w] = Ham(fp,fs,fc)wp = 2*pi*fp/fc;ws = 2*pi*fs/fc;wc = (ws+wp)/2;dw = ws-wp;N = 8*pi/dw;N = round(N);%向上取整h = fir1(N-1,wc/pi,'low',hann(N));H = fft(h,512);w = 2*(0:511)/512;end

调用函数

clear;clc;[x,Fs] = audioread('4.wav');x = x(1:4096,:);X = fft(x);X = X';
% 设置数字低通滤波器,选汉宁窗fp = 1000;fs =1200;fc = 44100;%抽样频率[N,h,H,w] = Ham(fp,fs,fc);
y = filter(h,1,x);Y = ifft(y);
figure(1)subplot(221)stem(x)title('原信号')subplot(222)stem(y)title('滤波后的信号')subplot(223)stem(abs(X))title('原信号频谱')subplot(224)stem(abs(Y))title('滤波后的信号频谱')
figure(2);stem(0:N-1,h);xlabel('n');ylabel('h(n)');axis([0 N-1 -0.02 0.06]);title('汉宁窗的设计');grid on;
figure(3);subplot(2,1,1);plot(w,20*log10(abs(H)));xlabel('\omega/\pi');ylabel('幅度dB');title('幅度特性');subplot(2,1,2);freqz(h)xlabel('\omega/\pi');ylabel('相位(度)');title('相位特性');
% 播放音频% sound(x,Fs)% sound(y,Fs)
%倒放音频xd=flipud(x);yd=flipud(y);sound(xd,Fs)sound(yd,Fs)

Hamming窗如下

滤波器的频率响应如下

可以看出原波形与处理后的波形(看起来有点怪怪的)


http://www.ppmy.cn/news/1545468.html

相关文章

利用Java easyExcel库实现高效Excel数据处理

在Java应用程序中,处理Excel文件是一项常见任务,尤其是在需要读取、写入或分析大量数据时。easyExcel是一个基于Java的高性能Excel处理库,它提供了简洁的API和优化的性能,以简化Excel文件的处理。本文将指导您如何使用easyExcel库…

(2024最新完整详细版)Docker部署MinIO

对象存储MinIO 对象存储是用于存储非结构化数据的数据存储架构,它将一个数据单元称为一个对象,每个对象都包含数据本身、元数据(描述数据的信息)和一个唯一标识符(通常是一个URL地址)。 MinIO是一个开源的对…

金融系统中事务

金融服务行业需要处理大量的交易和请求,Java的多线程能力可以有效地管理这些并发操作,确保系统的响应性和效率。 在金融服务行业中,例如一个股票交易平台,它需要处理大量的买入和卖出请求,交易逻辑会涉及数据库交互、…

《JavaEE进阶》----20.<基于Spring图书管理系统(登录+添加图书)>

PS:关于接口定义 接口定义,通常由服务器提供方来定义。 1.路径:自己定义 2.参数:根据需求考虑,我们这个接口功能完成需要哪些信息。 3.返回结果:考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…

集合进阶------泛型(JAVA笔记第三十期)

p.s.这是萌新自己自学总结的笔记,如果想学习得更透彻的话还是请去看大佬的讲解 目录 泛型概念泛型类泛型接口泛型接口的实现类泛型方法可变参数的泛型方法 泛型的通配符 泛型概念 泛型,顾名思义,广泛的类型,使用泛型可以帮助我们…

基于springboot+vue实现的任务管理系统(源码+L文)4-103

第4章 系统设计 4.1 总体功能设计 员工,经理,管理员都需要登录才能进入任务管理系统,使用者登录时会在后台判断使用的权限类型,包括一般使用者和管理者,一般使用者为员工和经理,对员工只能提供任务信息显示查询&…

【JAVA】Java基础—Java开发环境搭建:安装JDK与IDE(如IntelliJ IDEA、Eclipse)

Java是一种强大的编程语言,广泛应用于各种领域,包括企业级应用、移动应用(如Android)、Web应用和大数据处理等。Java的“编写一次,到处运行”(Write Once, Run Anywhere, WORA)特性使得它在跨平…

【整理向】c++,Java与Python的面向对象(OOP)之间的异同

C、Java 和 Python 都是支持面向对象编程(OOP)的语言,但它们在实现 OOP 的方式上存在一些相似性和差异。我们可以从类和对象、继承、封装、多态等方面对比它们的异同。 1. 类和对象 相同点:C、Java 和 Python 都使用类作为对象的…