• 大小: 3KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-10-04
  • 语言: Matlab
  • 标签: matlab  

资源简介

基于matlab语音信号的频谱分析,利用添加不同噪声经过滤波再还原出来。

资源截图

代码片段和文件信息

clear
[yfs]=audioread(‘fade.wav‘);%读取音乐信号
y1=y(:1);%取单列                            
N=length(y1);%求信号长度 
Y=fft(y1N);%傅里叶变换
Y1=fftshift(abs(Y));
t=(0:(N-1))/fs;%时间
f=0:fs/N:fs*(N-1)/N;%频率
f1=f-fs/2;
%w=2*f1/fs;%归一化
%原信号时域波形和频谱图
figure(1);
subplot(211);
plot(ty1);
xlabel(‘时间‘);
ylabel(‘幅度‘);
title(‘原信号时域波形‘);
subplot(212);
plot(f1abs(Y1));
%axis([-2500 2500 0 2000]);
%axis([-2000 2000 0 400]);
xlabel(‘频率‘);
ylabel(‘幅度‘);
title(‘原信号频谱图‘);
%加三余弦混合噪声
A0=0.05;%噪声幅度
d1=A0*cos(2*pi*5000*t);%5kHz的余弦噪音
d2=A0*cos(2*pi*8000*t);%8kHz的余弦噪音
d3=A0*cos(2*pi*10000*t);%10kHz的余弦噪音
x1=d1+d2+d3;%噪声叠加
X1=fft(x1);%噪声傅里叶变换
y2=y1+(x1)‘;%加三余弦混合噪声后信号
Y2=fft(y2);%加噪信号傅里叶变换
Y3=fftshift(abs(Y2));
figure(2);
subplot(311);
%axis([-10000 10000 0 400]);
plot(f1abs(X1));
xlabel(‘频率‘);
ylabel(‘幅度‘);
title(‘三余弦噪声频谱‘);
subplot(312);
plot(ty2);
xlabel(‘时间t‘);
ylabel(‘幅度‘);
title(‘加三余弦噪声信号时域波形‘);
subplot(313);
plot(f1abs(Y3));
axis([-10000 10000 0 400]);
xlabel(‘频率‘);
ylabel(‘幅度‘);
title(‘加三余弦噪声信号频谱图‘);



%加随机白噪声
x2=0.5*randn(N1);%噪声
X2=fft(x2);%噪声傅里叶变换
%y3=y1+x2;%加随机噪声后信号       
%Y4=fft(x2);%加噪信号傅里叶变换
%Y5=fftshift(abs(Y4));
figure(3)
plot(f1abs(X2));
xlabel(‘频率‘);
ylabel(‘幅度‘);
title(‘随机白噪声频谱图‘);
%白噪声通过高通滤波器
wp2=0.2;wr2=0.9;Rp2=1.5;Rr2=30;
[n2Wn2]=buttord(wp2wr2Rp2Rr2);
[B2A2]=butter(n2Wn2‘high‘);
[Hff]=freqz(B2A2fsfs);
%figure

评论

共有 条评论