yEbutNOTthatye 2022-03-21 15:29 采纳率: 50%
浏览 77
已结题

matlab语音预加重滤波器,高通滤波器,共振峰?

请问以下代码算是matlab里的语音预加重滤波器吗?
为什么出来的图像里有蓝色和橙色?
蓝色橙色分别表示什么啊。。
共振峰又在哪里。。
救大命!!

[y,Fs]=audioread('20220320_195842.m4a');%y为样本数据,Fs为采样率
len_y=length(y);%信号长度
t=(0:len_y-1)/Fs;%时域范围
y_hf1=filter(HF1,1,y);
y_2=filter([1,-0.9375],1,y);%高通滤波为s'(n)=s(n)-0.9375s(n-1)
y_3=filter([1,-0.97],1,y);;%高通滤波为s'(n)=s(n)-0.97s(n-1)
subplot(221),plot(t,y),title('y');xlabel('time'),ylabel('amplitude');
subplot(222),plot(t,y_hf1),title('y_hf1');xlabel('time'),ylabel('amplitude');
subplot(223),plot(t,y_2),title('y_2');xlabel('time'),ylabel('amplitude');
subplot(224),plot(t,y_3),title('y_3');xlabel('time'),ylabel('amplitude');

其中HF1是在fdatool里导出的一个高通滤波器,设计页面如下,

img

语音采样频率为48000,Fstop为9600,Fpass为12000

结果是这样的

img

我搞不懂图里为什么有蓝橙两色,共振峰在哪里
为什么HF1和filter([1,0.9375],1,y)、filter([1,0.97],1,y)两种滤波器出来的图差别那么大,哪种滤波器才是真的语音预处理要用的滤波器??
请问哪种高通滤波器是对的

  • 写回答

1条回答 默认 最新

  • 卡尔曼的BD SLAMer 计算机视觉领域新星创作者 2022-03-21 16:41
    关注

    一、语音信号的预加重

    语音信号的预加重,目的是为了对语音的高频部分进行加重,去除口唇辐射的影响,增加语音的高频分辨率。一般通过传递函数为

    一阶FIR高通数字滤波器来实现预加重,其中a为预加重系数,0.9

    预加重实验:

    %预加重程序 2013/9/25
    
    clear all;
    
    [x,sr]=wavread('test2.wav'); %sr为采样频率
    
    ee=x(1500:1755);
    
    r=fft(ee,1024);
    
    r1=abs(r);
    
    pinlv=(0:1:255)*8000/512;
    
    yuanlai=20*log10(r1);
    
    signal(1:256)=yuanlai(1:256);
    
    [h1,f1]=freqz([1,-0.98],[1],256,4000);
    
    pha=angle(h1);
    
    H1=abs(h1);
    
    r2(1:256)=r(1:256);
    
    u=r2.*h1';
    
    u2=abs(u);
    
    u3=20*log10(u2);
    
    un=filter([1,-0.98],[1],ee);
    
    figure(1);subplot(2,1,1);
    
    plot(f1,H1);title('高通滤波器的幅频特性');
    
    xlabel('频率/Hz');ylabel('幅度');
    
    subplot(2,1,2);plot(pha);title('高通滤波器的相频特性');
    
    xlabel('频率/Hz');ylabel('角度/rad');
    
    figure(2);subplot(2,1,1);plot(ee);title('原始语音信号');
    
    %axis([0 256 -3*10^4 2*10^4]);
    
    xlabel('样点数');ylabel('幅度');
    
    subplot(2,1,2);plot(un);title('经高通滤波后的语音信号');
    
    %axis([0 256 -1*10^4 1*10^4]);
    
    xlabel('样点数');ylabel('幅度');
    
    figure(3);subplot(2,1,1);plot(pinlv,signal);title('原始语音信号频谱');
    
    xlabel('频率/Hz');ylabel('幅度/dB');
    
    subplot(2,1,2);plot(pinlv,u3);title('经高通滤波后的语音信号频谱');
    
    xlabel('频率/Hz');ylabel('幅度/dB');
    
    

    可以看出,预加重后的频谱在高频部分的幅度得到了提升。

    二、语音信号的加窗处理

    进行预加重数字滤波处理后,下面就是进行加窗分帧处理,语音信号具有短时平稳性(10--30ms内可以认为语音信号近似不变),这样就可以把语音信号分为一些短段来来进行处理,这就是分帧,语音信号的分帧是采用可移动的有限长度的窗口进行加权的方法来实现的。一般每秒的帧数约为33100帧,视情况而定。一般的分帧方法为交叠分段的方法,前一帧和后一帧的交叠部分称为帧移,帧移与帧长的比值一般为00.5,。

    汉明窗函数如下:

    汉明窗的时域和频域波形,窗长N=61
    
    x=linspace(20,80,61);
    
    h=hamming(61);
    
    figure(1);
    
    subplot(1,2,1);
    
    plot(x,h,'k');title('汉明窗时域波形');
    
    xlabel('样点数');ylabel('幅度');
    
    w1=linspace(0,61,61);
    
    w1(1:61)=hamming(61);
    
    w2=fft(w1,1024);
    
    w3=w2/w2(1);
    
    w4=20*log10(abs(w3));
    
    w=2*[0:1023]/1024;
    
    subplot(1,2,2);
    
    plot(w,w4,'k');
    
    axis([0,1,-100,0]);
    
    title('汉明窗幅度特性');
    
    xlabel('归一化频率');ylabel('幅度/dB');
    
    

    汉明窗的主瓣宽度较宽,是矩形窗的一倍,但是汉明窗的旁瓣衰减较大,具有更平滑的低通特性,能够在较高的程度上反应短时信号的频率特性。

    矩形窗的主瓣宽度小于汉明窗,具有较高的频谱分辨率,但是矩形窗的旁瓣峰值较大,因此其频谱泄露比较严重。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月5日
  • 已采纳回答 3月28日
  • 创建了问题 3月21日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来