MATLAB学习笔记

基于声卡的声音信号采集,声卡采集频率一般为11400,22050,44100。对于使用声卡播放也是如此。

  • 声卡采集声音信号
    audiorecorder(Fs,bit,num);函数中Fs是采样频率,bit为存储字节,num为声道选择。
    FS根据设定采样频率就行,num=1时为单声道,num=2时为双声道。
    audiorecorder函数是定义了一个采样器,设置一个变量x = audiorecorder(Fs,16,2)才可以进行声音采集。
    recordblocking(x,5);中的x即为定义的采样器,5为采样时间为五秒。
x = audiorecorder(Fs,16,2); %设置声音接收变量
recordblocking(x,5); %收取声音五秒
myspeech = getaudiodata(x);%得到以n*2列数字矩阵存储的刚录制的音频信号
  • 傅里叶变换
    调用fft函数,对myspeech进行傅里叶变换。其中参数N必须为2的倍数,一般选取210,即可,当然也可以高一些,我这里选取的是5096,即214
y = fft(myspeech,N);%傅里叶变换
f = linspace(0,Fs/2,N/2);%只需要画出一半的频谱信号
y1 = abs(y)/(N/2);%还原幅值
  • 滤波器
    使用matlab种的filterDesigner来进行设计:
    1.找到matlab中的filterDesigner:如下,

    或者在工作台输入filterDesigner


2.按照对应的参数设置就行了:(人的听觉范围一般是20Hz~20kHz,一般说话的发声频率则一般集中在1kHz以下)
3.将设计的滤波器导入工作台

file–>export->>

B = Num;%滤波器的参数B
A = [1];%滤波器的参数A
myspeech1 = filter(B,A,myspeech);
  • 全部代码:
Fs = 22050; %采集频率
N = 5096;%必须是2的倍数%采集声音信号
x = audiorecorder(Fs,16,2); %设置声音接收变量
recordblocking(x,5); %收取声音五秒
myspeech = getaudiodata(x);%得到以n*2列数字矩阵存储的刚录制的音频信号
subplot(2,1,1);plot(myspeech); %绘制录制的声音信号
title("录制的声音信号");%对原声音信号进行傅里叶变换
y = fft(myspeech,N);
f = linspace(0,Fs/2,N/2);
y1 = abs(y)/(N/2);
subplot(2,1,2);plot(f,y1(1:N/2));
title("声音信号的频谱");%对声音信号进行滤波
B = Num;%滤波器的参数B
A = [1];%滤波器的参数A
myspeech1 = filter(B,A,myspeech);
figure;%打开一个新窗口
subplot(2,1,1);plot(myspeech1);
title("滤波之后的声音信号");%对滤波后的声音信号进行傅里叶变换
data = fft(myspeech1,N);
data1 = abs(data)/(N/2);
subplot(2,1,2);plot(f,data1(1:N/2));
title("滤波后的频谱");
sound(myspeech1,22050);%播放滤波之后的声音信号

一些知识点

  • 采集信号数据,测量特征值
    p1 = max(y);%最大值,峰值
    v = mean(y);%均值
    s1 = std(y);%有效值

  • 关于wavplay函数
    目前使用sound函数来代替wavplay函数;
    1、sound(y):以默认采样率 8192 赫兹向扬声器发送音频信号 y。y为音频信号矩阵。

    2、sound(y, Fs):以采样率 Fs 向扬声器发送音频信号 y。Fs为采样率,即单位时间的样本个数(Hz)。

    3、sound(y, Fs, nBits):对音频信号 y 使用 nBits 的采样位数。nBits表示每个样本点用几个比特表示,即分辨率。
    sound():将信号数据矩阵转换为声音。

  • 一些基本信号函数

%噪声信号
%x = randn(1,2056);%白噪声
%y = rand(1,2056);%均匀噪声
%plot(x);
%hold on;
%plot(y);
%冲激信号
%t = linspace(0,1,101);
%y = [zeros(1,50),1,zeros(1,50)];
%plot(t,y);
%阶跃信号
%t = linspace(0,1,101);
%y = [zeros(1,50),ones(1,51)];
%plot(t,y);
%ylim([0 1.2]); %纵坐标绘图限制
%斜坡信号
%y = linspace(0,10,101);
%plot(y);

基于matlab的简易声音滤波相关推荐

  1. matlab样本序列的时域波形,基于MATLAB的简易声音信号频谱分析仪设计

    基于MATLAB的简易声音信号频谱分析仪设计 汉宁窗时域波形曲线图 汉宁窗频域特性曲线图 在MATLAB中,生成汉宁窗的函数是hanning.使用该函数进行频谱修正时,先生成一个和待修正的样本具有相同 ...

  2. 基于matlab的语音信号滤波处理

    基于matlab的语音信号滤波处理 摘要:本课程设计的主要目的是在MATLAB环境下,使用窗口设计法设计一个滤波器,并对语音信号进行滤波去噪.开发平台为MATLAB,设计方法为窗口设计法.用麦克风采集 ...

  3. 【图像去噪】基于matlab自适应中值滤波图像去噪【含Matlab 1156期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab自适应中值滤波图像去噪[含Matlab 1156期] (https://download.csdn.net/d ...

  4. 【图像去噪】基于matlab多种自适应均值滤波图像去噪【含Matlab 1843期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab多种自适应均值滤波图像去噪[含Matlab 1843期] (https://download.csdn.net ...

  5. 【基带传输】基于matlab的简易无线基带传输系统的仿真

    目录 1.软件版本 2.本算法理论知识点 3.算法具体理论 4.部分核心代码 5.仿真演示 6.本算法写论文思路 7.参考文献 8.相关算法课题及应用 1.软件版本 MATLAB2013b 2.本算法 ...

  6. 【PF三维路径规划】基于matlab改进的粒子滤波无人机三维路径规划【含Matlab源码 1269期】

    ⛄一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水 ...

  7. 基于matlab的LMS自适应滤波仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 LMS(Least Mean Square), 由 Widrow 和 Hoff 于1960年提出,也称Δ规则.该算法与感知器网 ...

  8. 基于matlab的医学成像技术滤波反投影仿真,包括直接反投影,S-L滤波,R-L滤波,Lewitt滤波

    目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 医学成像技术滤波反投影  含R-L滤波,  R-S滤波,Lewitt滤波  重建后图像清晰. ...

  9. 基于MATLAB的简易音乐数字均衡器设计(不采用MATLAB内置函数实现)

    音乐数字均衡器 MATLAB GUI界面 不同MP3播放器的均衡器设置不尽相同,以两个韩系高端品牌iRiver和iAUDIO为例,两者的EQ均衡器同分为5个频段,但是频段的划分并不一样.iRiver的 ...

最新文章

  1. R语言WVPlots包可视化克利夫兰点ClevelandDotPlot、并按照分类变量排序进行可视化克利夫兰点ClevelandDotPlot
  2. Python 程序员最常犯的十个错误
  3. [Spring cloud 一步步实现广告系统] 10. 使用Ribbon 实现微服务调用
  4. 从Java多线程可见性谈Happens-Before原则
  5. (ab)使用Java 8 FunctionalInterfaces作为本地方法
  6. .NET 的 WCF 和 WebService 有什么区别?(转载)
  7. Leetcode 1015. Smallest Integer Divisible by K
  8. LeetCode(557)——反转字符串中的单词 III(JavaScript)
  9. Leetcode 32.最长有效括号
  10. 【转】spring MVC入门示例(hello world demo)
  11. java的swing案例
  12. 《集成电路先进光刻技术与版图设计优化》课程分享之一:典型显微系统的光学成像原理
  13. C语言:梯形面积的求解公式为 S = (a + b) * h / 2。从键盘读入一个梯形的上底a、下底b和高h,请计算表梯形的面积。(结果保留1位小数)
  14. linux 挂载nas网络存储_Linux挂载NAS
  15. linux 脚本 input,Linux 下通过命令行和脚本开关笔记本触控板和其他输入外设
  16. Linux浏览器无法访问网络解决方案
  17. 欧几里得、扩展的欧几里得算法
  18. PHP集群中SESSION共享方案之Redis
  19. 5G 的三大场景:eMBB、URLLC、mMTC
  20. 变量n1和n2是什么关系

热门文章

  1. 山东省教育招生考试院计算机怎么查,山东省教育招生考试院
  2. 【Pytorch】对比CrossEntropyLoss与NLLLoss
  3. 淘宝支持优站(U站)关键词设置代码meta name标签
  4. WP Super Cache 安装与设置详解
  5. python入门函数编程_Python入门——面向函数的编程,过程
  6. 解决卸载虚拟光驱后残留盘符无法删除或弹出,打开时提示位置不可用
  7. LabVIEW数据采集:配套视频教程第5集(2.2.1节—配置前面板实操训练)
  8. xiaoMi推送Android端集成
  9. 分布式服务治理框架Dubbo的前世今生及应用实战
  10. pure android axure组件,Axure组件库