Matlab语音信号频谱分析代码实现

clear all;
clc;
[filename,filepath]=uigetfile('.wav','Open wav file');
[y,fs,nbits]=wavread([filepath,filename]);  %从电脑文件夹选择wav音频文件

b=menu('请选择选项','原始信号采样后时域图和频谱图','FIR滤波器','IIR滤波器','退出');
while(b~=4)
if b==1
    temp=menu('请选择选项','播放原始语音','原始语音时域图','原始语音做FFT变换后频谱图','返回');
    if temp==1
       %播放语音
       sound(y);
    elseif temp==2
       %画出原始语音时域图
       figure(11) 
       plot(y);
       xlabel('时间(ms)'); 
       ylabel('幅值');    
       title('原始语音时域图');
    elseif temp==3
       %画出原始语音做FFT变换后频谱图
       Y1=fft(y);
       Y=abs(Y1);
       figure(12)
       plot(Y);
       xlabel('频率'); 
       ylabel('幅值');
       title('原始语音做FFT变换后频谱图');
    else
       end
end   
if b==2
    temp=menu('请选择选项','FIR低通滤波器','FIR高通滤波器','FIR带通滤波器','返回');
    if temp==1
        %FIR低通滤波器
        fs=10000;
        wp=2*pi*1000/fs;
        wst=2*pi*1200/fs;
        Rp=1;
        Rs=100;
        wdelta=wst-wp;
        N=ceil(8*pi/wdelta);              %取整
        wn=(wp+wst)/2;
        [b,a]=fir1(N,wn/pi,hamming(N+1));       %选择窗函数,并归一化截止频率
        figure(21)
        freqz(b,a,512);
        title('FIR低通滤波器');
        
        y1=filter(b,a,y);
        figure(22)
        subplot(2,1,1)
        plot(y)
        title('FIR低通滤波器滤波前的时域波形');
        xlabel('时间(ms)'); 
        ylabel('幅值'); 
        subplot(2,1,2)
        plot(y1);
        title('FIR低通滤波器滤波后的时域波形');
        xlabel('时间(ms)'); 
        ylabel('幅值');    
        
        sound(y1,8000);                    %播放滤波后的语音信号
        
        F0=fft(y1,1024);
        f=fs*(0:511)/1024;
        figure(23)
        y2=fft(y,1024);
        subplot(2,1,1);
        plot(f,abs(y2(1:512)));
        title('FIR带通滤波器滤波前的频谱')
        xlabel('频率/Hz');
        
  • 55
    点赞
  • 292
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值