• 大小: 4KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-10-24
  • 语言: Matlab
  • 标签: matlab  升降采样  

资源简介

利用matlab数学工具,实现对音频信号的升、降采样,并加入高斯噪声,滤波后分析性能

资源截图

代码片段和文件信息

% wavread(filename) 读取一个WAV文件,并返回采样数据到向量y中,Fs表示采样频率 bits表示采样位数  
Fs=44100;bits=16;
[y Fs bits] = wavread(‘yinpin.wav‘);    
%假设声音文件有两个声道,我们只分析第一个声道,如果要分析第二个声道可以改为:ft=y(:2);  
ft = y(:1);  
sigLengthy = length(ft); %获取声音长度  
sigLengthy;
x=ft(1:7938000);
sigLengthx=length(x);%  截取三分钟的音频点数,180*44100=7938000

%可以使用sound函数来播放声音  
%sound(x Fs bits)    
%定义一个FFT点数
MM=8388608;%2的23次方
%sound(x Fs bits) 
%绘制波形图
 t=(0:sigLengthx-1)/Fs;   
  figure(1);   
  plot(t x);  
  title(‘波形图‘)
  xlabel(‘时间(s)‘);  
  ylabel(‘幅度‘); 
 %幅频曲线
 xFFT=fft(xMM);
 XFFT=abs(xFFT);%取模长
  figure(2);
 n=0:MM-1;
 f=n*Fs/MM;
  plot(fXFFT);
  xlim([0 22050]); 
  title(‘音频频谱‘)
  xlabel(‘频率(Hz)‘);  
  ylabel(‘幅度‘); 
%两种方法产生高斯白噪声
% m=0: sigLengthx-1;
% sigma=mean(x.*x);%噪声方差
% noise = sqrt(sigma)*randn([sigLengthx1]);%噪声生成
% AWGNx = x+noise;%受宽带噪声干扰的音频信号
  
 %加入 高斯白噪声
  AWGNx=awgn(x15);
%   sound(AWGNx Fs bits) 
  AWGNxFFT=fft(AWGNxMM);
 AWGNXFFT=abs(AWGNxFFT);
 figure(3);   
 plot(t AWGNx);  
 title(‘加入高斯白噪声之后波形图‘)
 xlabel(‘时间(s)‘);  
 ylabel(‘幅度‘);  
 figure(4);
 plot(fAWGNXFFT);
 xlim([0 22050]); 
 title(‘加入高斯白噪声之后音频频谱‘)
 xlabel(‘频率(Hz)‘);   
 ylabel(‘幅度‘);


%加入高频噪声
%设置余弦10000Hz 噪声函数
 fn=10000;
 noise=0.05*sin(2*pi*fn/Fs.*(1:sigLengthx)‘);
 highnoise=noise+x;
 highnoiseFFT=fft(highnoiseMM);
 HighnoiseFFT=abs(highnoiseFFT);
%  
 figure(5);   
 plot(t highnoise);  
 title(‘加入高频噪声之后波形图‘)
 xlabel(‘时间(s)‘);  
 ylabel(‘幅度‘);
  
 figure(6);
 plot(fHighnoiseFFT);
 xlim([0 22050]); 
 title(‘加入高频噪声之后音频频谱‘)
 xlabel(‘频率(Hz)‘);  
 ylabel(‘幅度‘);
%  sound( highnoise Fs bits) 


%设置低通滤波器
%设置滤波器的性能参数 通带边界为4000Hz  阻带边界4500Hz   
%通带波纹0.01 阻带波纹0.01
c=firpmord([4000 4500][10][0.01 0.001]Fs‘cell‘);
b=firpm(c{:})‘;
Bfft=fft(bMM);
len

评论

共有 条评论