MATLAB去除人声

该博客介绍了如何使用MATLAB去除音频中的人声。通过读取WAV文件,进行FFT变换,设置滤波器参数,然后应用滤波器并保存处理后的音频。涉及的MATLAB函数包括wavread、fft、filter等。
摘要由CSDN通过智能技术生成

clear

clc

close all

&&&&&&&&&&&&&&&&&

上面的几句话意思是清屏,清内存。

&&&&&&&&&&&&&&&&&

%[Original,fs,bits]=wavread('E:\Curriculum\The Fifth Term\数字信号处理\课程设计\DSP Voice Cuter\Love Story.wav');%修改文件路径可以滤除不同歌曲

[Original,fs,bits]=wavread('E:\matlab workspace\视觉机器学习20讲配套仿真代码Code\22 VoiceFilterB1\齐晨 -咱们结婚吧.wav');%修改文件路径可以滤除不同歌曲

%size(Original)


&&&&&&&&&&&&&&&&&&&&&&&


y,Fs,bits] = wavread('filename')

y是自己随意定义的一个输出函数,fs 是采样频率 bits 表示每个样点的位数

[Y,FS,NBITS,OPTS]=wavread(...) returns a structure OPTS of additional
        information contained in the WAV file.  The content of this
        structure differs from file to file.  Typical structure fields
        include '.fmt' (audio format information) and '.info' (text
        which may describe title, author, etc.)
 
    Output Scaling
    The range of values in Y depends on the data format FMT specified.
    Some examples of output scaling based on typical bit-widths found
    in a WAV file are given below for both 'double' and 'native' formats.
    FMT='native'
       #Bits   MATLAB data type          Data range
       -----   ------------------------- -------------------
         8     uint8  (unsigned integer)      0 <= Y <= 255
        16     int16  (signed integer)   -32768 <= Y <= +32767
        24     int32  (signed integer)    -2^23 <= Y <= 2^23-1
        32     single (floating point)     -1.0 <= Y <= +1.0
 
    FMT='double'
       #Bits   MATLAB data type          Data range
       -----   ------------------------- -------------------
        N<32   double                     -1.0 <= Y <  +1.0
        N=32   double                     -1.0 <= Y <= +1.0
       Note: Values in y might exceed -1.0 or +1.0 for the case of
             N=32 bit data samples stored in the WAV file.
 
    Supports multi-channel data, with up to 32 bits per sample.
    Supports Microsoft PCM data format only.

&&&&&&&&&&&&&&&&&&&&&&&&&

ts=1/fs;                            采样时间

N=length(Original)-1;    采样点数

t=0:1/fs:N/fs;                %建立时间向量

Nfft=N;

df=fs/Nfft;                     频分辩率        步长 

%计算频率间隔(Hz/s)

fk=(-Nfft/2:Nfft/2-1)*df;

 

a1=1,a2=-1,b1=1,b2=-1;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

SoundLeft=Original(:,1);

SoundRight=Original(:,2);

SoundLeft_f=ts*fftshift(fft(SoundLeft,N));

SoundRight_f=ts*fftshift(fft(SoundRight,N));  可计算某些频率点上的频谱。

%%%http://wenku.baidu.com/link?url=_9ehkwkZXvfNExDAQvvIjQszVJYtYPv64xl9cBn2DN2m0nRWpjRVnhwJdkiA-zBb0MlzUCShSnOXtC7W6NnvbNwqyH7xzzGFL1yd0NQbGca


 

fftshift的作用正是让正半轴部分和负半轴部分的图像分别关于各自的中心对称。因为直接用fft得出的数据与频率不是对应的,fftshift可以纠正过来
fft是一维的傅里叶变换,是将时域信号转换为频域信号的
fftshift是这针对频域信号的,将fft的
如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) MATLAB(Matrix Laboratory)是一款由美国MathWorks公司开发的高性能商业数学软件,它集成了高级技术计算语言、交互式环境以及丰富的工具箱,被广泛应用于工程计算、数据分析、算法开发和科学可视化等领域。MATLAB的核心功能包括: 1. **数值计算**:支持大规模矩阵和数组运算,对线性代数、微积分、概率统计等数学问题提供高效解决方案。 2. **编程环境**:提供了易于使用的脚本编写与函数定义界面,支持面向对象编程,并可通过M文件实现模块化程序设计。 3. **数据可视化**:内置强大的二维和三维图形绘制功能,能够创建高质量的数据图表,便于数据分析和结果展示。 4. **工具箱扩展**:MathWorks为MATLAB提供了众多领域的专业工具箱,如信号处理、图像处理、通信系统、控制系统、机器学习、深度学习、量化金融、优化算法等,极大地扩展了MATLAB的应用范围。 5. **Simulink仿真**:作为MATLAB的重要组成部分,Simulink是一个动态系统建模、仿真和基于模型的设计环境,特别适用于多域物理系统和嵌入式系统的模拟和实时测试。 6. **集成能力**:MATLAB可以与其他编程语言(如C、C++、Java、Python等)及外部应用程序进行数据交换和联合开发,也可以调用硬件接口进行实时实验和控制。 7. **交互式工作空间**:用户可以在命令窗口中直接输入表达式并立即得到结果,这种交互式的特性使得快速原型设计和调试变得极为便利。 总之,MATLAB是科学家、工程师和技术人员进行科研、教育和工业应用不可或缺的强大工具之一,尤其在需要大量数值计算和复杂系统建模的场景下发挥着重要作用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值