matlab_声音信号FFT.zip

  • Ls硕哥
    了解作者
  • matlab
    开发工具
  • 1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 1
    下载次数
  • 2019-07-14 09:37
    上传日期
基于matlab的语音信号处理快速傅里叶变换程序
matlab_声音信号FFT.zip
  • matlab_声音信号FFT
  • FFT_l5.m
    2.4KB
内容介绍
%读取一段录制好的音频信号 [x,fs] = audioread('D:\position\matlab\meiqixielou1.wav'); start_time = 2; %从第2秒开始截取 end_time = 4; %截取出第3秒与第4秒的信号 Y_new=x((fs*start_time+1):fs*end_time,1); %音频数据=采样频率*采样时间 audiowrite('yinpin_new.wav',Y_new,fs); %保存新音频 %读取截取后音频信号 [y,Fs]=audioread('D:\position\matlab\meiqixielou1.wav'); y=y(:,1); %取第一列所有数据 figure(1); subplot(211);plot(y); %排列图像 title('语音信号时域波形图') xlabel('n');ylabel('h(n)'); grid on %添加网格背景 Y=fft(y,10000); %对原始信号进行FFT f=(Fs/1000)*[1:1000]; %计算频率 subplot(212); %将图形排列到第二位 plot(f(1:300),abs(Y(1:300))); %作出频率-幅值图像 title('语音信号频谱图'); xlabel('频率');ylabel('幅度') grid on %样点中间段选取 Y1=y(40000:40500); %取y中第40000至第40500个样点 F=fft(Y1,256); %进行快速傅里叶变换 F1=abs(F); %取F的幅度 f1=(0:1:255)*44100/44100; %规划频率矢量长度 SPL=20*log10(F1/2*10e-5); %将模长转化成声压级 signal(1:256)=SPL(1:256); %读取信号值 figure(2); subplot(211);plot(Y1); title('500个样点时域信号'); xlabel('样点数');ylabel('幅度'); figure(3); subplot(211);plot(f1,F); title('500个样点原始语音信号频谱'); xlabel('频率/Hz');ylabel('幅度/dB'); %设计高通滤波器 [H,W]=freqz([1,-0.98],[1],256,44100); %定义频率响应特性函数 H1=abs(H); %求幅度 phase=angle(H); %求相位 r2(1:256)=F(1:256); u1=r2.*H'; u2=abs(u1); u3=20*log10(u2); filterY1=filter([1,-0.98],[1],Y1); %调用IIR数字滤波器 %高通滤波器的幅频与相频特性 figure(4);subplot(211); plot(W,H1); title('高通滤波器的幅频特性'); xlabel('频率/Hz');ylabel('幅度'); subplot(212);plot(phase); title('高通滤波器的相频特性'); xlabel('频率/Hz');ylabel('角度/rad'); figure(2); subplot(212);plot(filterY1); title('经高通滤波后的500个样点时域信号'); xlabel('样点数');ylabel('幅度'); figure(3); subplot(212);plot(f1,u3); title('经高通滤波后的500个样点语音信号频谱'); xlabel('频率/Hz');ylabel('幅度/dB');
评论
    相关推荐
    • FFT_Matlab.rar
      自写MatlabFFT代码,供分享,仅供参考。
    • 算法导论 多项式FFT Matlab实现
      算法导论第30章多项式乘法 FFT算法 复杂度O(nlgn)
    • FFT实现快速卷积 MATLAB
      基于MAYTLAB实现的利用FFT实现快速卷积,数字信号处理试验。
    • FFT_sysgen_matlab.rar
      FFT matlab 源码资源,使用sysgen可生成需要的IP核。
    • FFT_MATLAB
      FFT_MATLAB
    • FFT_matlab
      这是基于matlabFFT,即快速傅里叶变换的实验,用到了多种实用函数,基本明确了利用matlab进行FFT实验的方法和步骤
    • fft matlab
      ansoft中数据导出到matlab生成谐波分量源代码
    • 8K 点 FFT matlab代码
      采样点数为8K,代码内,默认采样频率为10MHz,输入信号为13.42773438K正弦波,正好落在第11个频点上(13.42773438K =11/8192*10M)。使用hann-window,计算SNR,谐波等。大家可根据实际情况作适当修改...Matlab , 谐波
    • 基四FFT matlab
      matlab 基四的FFT算法仿真 14位输入16位输出 SNR>75dB 模拟VHDL硬件实现
    • matlab实现FFT快速傅里叶变换
      实现了FFT快速傅里叶变换 修改Runner函数中的图片路径然后运行即可 输出FFT傅里叶频谱图和FFT傅里叶图